47cb75734311f539d1793701394f073c96f724b4
[platform/framework/web/crosswalk-tizen.git] /
1 // Copyright 2014 Samsung Electronics Inc. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // IPC messages for efl media player.
6 // Multiply-included message file, hence no include guard.
7
8 #include "content/common/content_export.h"
9 #include "content/common/media/media_player_messages_enums_efl.h"
10 #include "ipc/ipc_message_macros.h"
11 #include "media/base/media_keys.h"
12 #include "media/base/tizen/demuxer_stream_player_params_efl.h"
13 #include "media/base/tizen/media_player_manager_efl.h"
14 #include "media/base/ipc/media_param_traits_macros.h"
15 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
16 #include "ui/gfx/geometry/rect_f.h"
17
18 #undef IPC_MESSAGE_EXPORT
19 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
20 #define IPC_MESSAGE_START MediaPlayerMsgStart
21
22 IPC_ENUM_TRAITS(blink::WebMediaPlayer::ReadyState)
23 IPC_ENUM_TRAITS(blink::WebMediaPlayer::NetworkState)
24 IPC_ENUM_TRAITS(MediaPlayerHostMsg_Initialize_Type)
25
26 IPC_STRUCT_TRAITS_BEGIN(media::DemuxerConfigs)
27 IPC_STRUCT_TRAITS_MEMBER(audio_codec)
28 IPC_STRUCT_TRAITS_MEMBER(audio_channels)
29 IPC_STRUCT_TRAITS_MEMBER(audio_sampling_rate)
30 IPC_STRUCT_TRAITS_MEMBER(audio_bit_rate)
31 IPC_STRUCT_TRAITS_MEMBER(is_audio_encrypted)
32 IPC_STRUCT_TRAITS_MEMBER(audio_extra_data)
33
34 IPC_STRUCT_TRAITS_MEMBER(video_codec)
35 IPC_STRUCT_TRAITS_MEMBER(video_size)
36 IPC_STRUCT_TRAITS_MEMBER(is_video_encrypted)
37 IPC_STRUCT_TRAITS_MEMBER(video_extra_data)
38 #if defined(OS_TIZEN_TV_PRODUCT)
39 IPC_STRUCT_TRAITS_MEMBER(framerate_num)
40 IPC_STRUCT_TRAITS_MEMBER(framerate_den)
41 IPC_STRUCT_TRAITS_MEMBER(is_framerate_changed)
42 #endif
43
44 #if defined(OS_TIZEN_TV_PRODUCT)
45 IPC_STRUCT_TRAITS_MEMBER(webm_hdr_info)
46 #endif
47
48 IPC_STRUCT_TRAITS_MEMBER(duration_ms)
49 IPC_STRUCT_TRAITS_END()
50
51 IPC_STRUCT_TRAITS_BEGIN(media::DemuxedBufferMetaData)
52 IPC_STRUCT_TRAITS_MEMBER(size)
53 IPC_STRUCT_TRAITS_MEMBER(end_of_stream)
54 IPC_STRUCT_TRAITS_MEMBER(timestamp)
55 IPC_STRUCT_TRAITS_MEMBER(time_duration)
56 IPC_STRUCT_TRAITS_MEMBER(type)
57 IPC_STRUCT_TRAITS_MEMBER(status)
58 #if defined(OS_TIZEN_TV_PRODUCT)
59 IPC_STRUCT_TRAITS_MEMBER(tz_handle)
60 #endif
61 IPC_STRUCT_TRAITS_END()
62
63 #if defined(TIZEN_TBM_SUPPORT)
64 IPC_STRUCT_TRAITS_BEGIN(gfx::TbmBufferHandle)
65 IPC_STRUCT_TRAITS_MEMBER(tbm_surface)
66 IPC_STRUCT_TRAITS_MEMBER(media_packet)
67 IPC_STRUCT_TRAITS_END()
68 #endif
69
70 // Initialize Efl player.
71 IPC_MESSAGE_ROUTED5(MediaPlayerEflHostMsg_Init,
72                     int /* player_id */,
73                     MediaPlayerHostMsg_Initialize_Type /* type */,
74                     GURL /* URL */,
75                     std::string /*mime_type*/,
76                     int /* demuxer client id */)
77
78 // Requests the player to enter fullscreen.
79 IPC_MESSAGE_ROUTED1(MediaPlayerHostMsg_EnteredFullscreen, int /* player_id */)
80
81 // Requests the player to exit fullscreen.
82 IPC_MESSAGE_ROUTED1(MediaPlayerHostMsg_ExitedFullscreen, int /* player_id */)
83
84 // Deinitialize Gst player.
85 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_DeInit, int /* player_id */)
86
87 // Start playback.
88 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_Play, int /* player_id */)
89
90 // Pause playback.
91 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_Pause,
92                     int /* player_id */,
93                     bool /* is_media_related_action */)
94
95 // Suspend media player.
96 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_Suspend, int /* player_id */)
97
98 // Resume media player.
99 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_Resume,
100                     int /* player_id*/,
101                     bool /* is_last_played_player*/)
102
103 // Player was activated by an user or an app.
104 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_Activate, int /* player_id*/)
105
106 // Player should deactivate (ex. save power).
107 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_Deactivate, int /* player_id*/)
108
109 #if defined(TIZEN_VIDEO_HOLE)
110 // Set geometry.
111 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_SetGeometry,
112                     int /* player_id */,
113                     gfx::RectF /* position and size */)
114 #endif
115
116 #if defined(OS_TIZEN_TV_PRODUCT)
117 // Requests to add audio track.
118 IPC_MESSAGE_ROUTED5(MediaPlayerEflMsg_AddAudioTrack,
119                     int /* player_id */,
120                     std::string /* kind */,
121                     std::string /* language */,
122                     std::string /* id */,
123                     bool /* selected */)
124 // Requests to add video track.
125 IPC_MESSAGE_ROUTED5(MediaPlayerEflMsg_AddVideoTrack,
126                     int /* player_id */,
127                     std::string /* label */,
128                     std::string /* language */,
129                     std::string /* id */,
130                     bool /* selected */)
131 // Requests to add text track.
132 IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_AddTextTrack,
133                     int /* player_id */,
134                     std::string /* label */,
135                     std::string /* language */,
136                     std::string /* id */)
137 // Playback seekable time change.
138 IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SeekableTimeChanged,
139                     int /* player_id */,
140                     base::TimeDelta /* min time */,
141                     base::TimeDelta /* max time */)
142
143 // Report drm error.
144 IPC_MESSAGE_ROUTED1(MediaPlayerEflMsg_DrmError, int /* player_id */)
145
146 #if defined(TIZEN_TBM_SUPPORT)
147 // Notify video texturing mode.
148 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_NotifyVideoTexturing,
149                     int /* player_id */)
150 #endif
151
152 // Text Track
153 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_InbandEventTextTrack,
154                     int /* player_id */,
155                     std::string /* info */)
156 // Text Track Cue
157 IPC_MESSAGE_ROUTED5(MediaPlayerEflMsg_InbandEventTextCue,
158                     int /* player_id */,
159                     std::string /* info */,
160                     unsigned int /*id*/,
161                     long long int /*startTimeMs*/,
162                     long long int /*endTimeMs*/)
163 #endif
164
165 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
166 // Launch native system volume controller.
167 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_LaunchSystemVolumeController,
168                     int /* player_id */)
169
170 // System volume changed.
171 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_SystemVolumeChanged,
172                     int /* player_id */,
173                     int /* system volume */)
174 #endif
175
176 // Set volume.
177 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_SetVolume,
178                     int /* player_id */,
179                     double /* volume */)
180
181 // Set playback rate.
182 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_SetRate,
183                     int /* player_id */,
184                     double /* rate */)
185
186 // Playback duration.
187 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_DurationChanged,
188                     int /* player_id */,
189                     base::TimeDelta /* time */)
190
191 // Current  duration.
192 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_TimeUpdate,
193                     int /* player_id */,
194                     base::TimeDelta /* time */)
195
196 // Pause state.
197 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_PauseStateChanged,
198                     int /* player_id */,
199                     bool /* state */)
200
201 // Seek state.
202 IPC_MESSAGE_ROUTED1(MediaPlayerEflMsg_OnSeekComplete, int /* player_id */)
203
204 // Current buffer range.
205 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_BufferUpdate,
206                     int /* player_id */,
207                     int /* buffering_percentage */)
208
209 // Playback completed.
210 IPC_MESSAGE_ROUTED1(MediaPlayerEflMsg_TimeChanged, int /* player_id */)
211
212 // Ready state change.
213 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_ReadyStateChange,
214                     int /* player_id */,
215                     blink::WebMediaPlayer::ReadyState /* state */)
216
217 // Network state change.
218 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_NetworkStateChange,
219                     int /* player_id */,
220                     blink::WebMediaPlayer::NetworkState /* state */)
221
222 // Gst media data has changed.
223 IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_MediaDataChanged,
224                     int /* player_id */,
225                     int /* width */,
226                     int /* height */,
227                     int /* media */)
228
229 // On new frame available.
230 IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_NewFrameAvailable,
231                     int /* player_id */,
232                     base::SharedMemoryHandle /* Handle */,
233                     uint32_t /* length */,
234                     base::TimeDelta /* time stamp */)
235
236 #if defined(TIZEN_TBM_SUPPORT)
237 IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_NewTbmBufferAvailable,
238                     int /* player_id */,
239                     gfx::TbmBufferHandle /* Handle */,
240                     base::TimeDelta /* time stamp */)
241
242 // Requests to release tbm buffer.
243 IPC_MESSAGE_CONTROL1(MediaPlayerEflHostMsg_ReleaseTbmBuffer,
244                      gfx::TbmBufferHandle /* Handle */)
245 #endif
246
247 // Seek.
248 IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_Seek,
249                     int /* player_id */,
250                     base::TimeDelta /* time */)
251
252 // For MSE internal seek request.
253 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_SeekRequest,
254                     int /* player_id */,
255                     base::TimeDelta /* time_to_seek */)
256
257 // Player has begun suspend procedure
258 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_PlayerSuspend,
259                     int /* player_id */,
260                     bool /* is_preempted */)
261
262 // Player has resumed
263 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_PlayerResumed,
264                     int /* player_id */,
265                     bool /* is_preempted */)
266
267 // Sent after the renderer demuxer has seeked.
268 IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerSeekDone,
269                      int /* demuxer_client_id */,
270                      base::TimeDelta /* actual_browser_seek_time */)
271
272 // Inform the media source player that the demuxer is ready.
273 IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerReady,
274                      int /* demuxer_client_id */,
275                      media::DemuxerConfigs /* configs */)
276
277 #if defined(OS_TIZEN_TV_PRODUCT)
278 // Inform the media source player that the demuxer data and state change.
279 IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerStateChanged,
280                      int /* demuxer_client_id */,
281                      media::DemuxerConfigs /* configs */)
282 #endif
283
284 // Sent when the data was read from the ChunkDemuxer.
285 IPC_MESSAGE_CONTROL3(MediaPlayerEflHostMsg_ReadFromDemuxerAck,
286                      int /* demuxer_client_id */,
287                      base::SharedMemoryHandle /* Handle */,
288                      media::DemuxedBufferMetaData /* meta data of buffer*/)
289
290 // Inform the media source player of changed media duration from demuxer.
291 IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DurationChanged,
292                      int /* demuxer_client_id */,
293                      base::TimeDelta /* duration */)
294
295 // The media source player reads data from demuxer
296 IPC_MESSAGE_CONTROL2(MediaPlayerEflMsg_ReadFromDemuxer,
297                      int /* demuxer_client_id */,
298                      media::DemuxerStream::Type /* type */)
299
300 // Requests renderer demuxer seek.
301 IPC_MESSAGE_CONTROL2(MediaPlayerEflMsg_DemuxerSeekRequest,
302                      int /* demuxer_client_id */,
303                      base::TimeDelta /* time_to_seek */)
304
305 // Use sync ipc message to get start date of current media.
306 IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetStartDate,
307                            int /* player_id */,
308                            double /* start date */)