blob: 5745655cd7d2f3a9847c2b4aa43f599effaa6ee8 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// IPC messages for the Cast Media Acceleration (CMA) pipeline.
// Multiply-included message file, hence no include guard.
#include <stddef.h>
#include "chromecast/common/media/cma_ipc_common.h"
#include "chromecast/common/media/cma_param_traits.h"
#include "chromecast/common/media/cma_param_traits_macros.h"
#include "chromecast/media/cma/pipeline/load_type.h"
#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "media/base/audio_decoder_config.h"
#include "media/base/buffering_state.h"
#include "media/base/pipeline_status.h"
#include "media/base/video_decoder_config.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
#include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_START CastMediaMsgStart
// Messages sent from the renderer to the browser process.
IPC_MESSAGE_CONTROL2(CmaHostMsg_CreateMedia,
int /* Media pipeline ID */,
chromecast::media::LoadType /* Load type */)
IPC_MESSAGE_CONTROL1(CmaHostMsg_DestroyMedia,
int /* Media pipeline ID */)
IPC_MESSAGE_CONTROL3(CmaHostMsg_SetCdm,
int /* Media pipeline ID */,
int /* render_frame_id */,
int /* cdm_id */)
IPC_MESSAGE_CONTROL2(CmaHostMsg_StartPlayingFrom,
int /* Media pipeline ID */,
base::TimeDelta /* Timestamp */)
IPC_MESSAGE_CONTROL1(CmaHostMsg_Flush,
int /* Media pipeline ID */)
IPC_MESSAGE_CONTROL1(CmaHostMsg_Stop,
int /* Media pipeline ID */)
IPC_MESSAGE_CONTROL2(CmaHostMsg_SetPlaybackRate,
int /* Media pipeline ID */,
double /* Playback rate */)
IPC_MESSAGE_CONTROL3(CmaHostMsg_CreateAvPipe,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
size_t /* Fifo size */)
IPC_MESSAGE_CONTROL3(CmaHostMsg_AudioInitialize,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
::media::AudioDecoderConfig /* Audio config */)
IPC_MESSAGE_CONTROL3(CmaHostMsg_VideoInitialize,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
/* Video Config */
std::vector<::media::VideoDecoderConfig>)
IPC_MESSAGE_CONTROL3(CmaHostMsg_SetVolume,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
float /* Volume */)
IPC_MESSAGE_CONTROL2(CmaHostMsg_NotifyPipeWrite,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */)
// Messages from the browser to the renderer process.
IPC_MESSAGE_CONTROL1(CmaMsg_FlushDone, int /* Media pipeline ID */)
IPC_MESSAGE_CONTROL4(CmaMsg_TimeUpdate,
int /* Media pipeline ID */,
base::TimeDelta /* Media time */,
base::TimeDelta /* Max media time */,
base::TimeTicks /* STC */)
IPC_MESSAGE_CONTROL2(CmaMsg_BufferingNotification,
int /* Media pipeline ID */,
media::BufferingState /* Buffering state */)
IPC_MESSAGE_CONTROL5(CmaMsg_AvPipeCreated,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
bool /* Status */,
base::SharedMemoryHandle /* Shared memory */,
base::FileDescriptor /* socket handle */)
IPC_MESSAGE_CONTROL3(CmaMsg_TrackStateChanged,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
media::PipelineStatus /* Status */)
IPC_MESSAGE_CONTROL2(CmaMsg_NotifyPipeRead,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */)
IPC_MESSAGE_CONTROL2(CmaMsg_WaitForKey,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */)
IPC_MESSAGE_CONTROL2(CmaMsg_Eos,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */)
IPC_MESSAGE_CONTROL3(CmaMsg_PlaybackError,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
media::PipelineStatus /* status */)
IPC_MESSAGE_CONTROL3(CmaMsg_PlaybackStatistics,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
media::PipelineStatistics /* status */)
IPC_MESSAGE_CONTROL3(CmaMsg_NaturalSizeChanged,
int /* Media pipeline ID */,
chromecast::media::TrackId /* Track ID */,
gfx::Size /* Size */)