OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 module media.mojom; | 5 module media.mojom; |
6 | 6 |
7 import "ui/gfx/geometry/mojo/geometry.mojom"; | 7 import "ui/gfx/geometry/mojo/geometry.mojom"; |
| 8 import "mojo/common/common_custom_types.mojom"; |
8 | 9 |
9 // See media/base/buffering_state.h for descriptions. | 10 // See media/base/buffering_state.h for descriptions. |
10 // Kept in sync with media::BufferingState via static_asserts. | 11 // Kept in sync with media::BufferingState via static_asserts. |
11 enum BufferingState { | 12 enum BufferingState { |
12 HAVE_NOTHING, | 13 HAVE_NOTHING, |
13 HAVE_ENOUGH, | 14 HAVE_ENOUGH, |
14 }; | 15 }; |
15 | 16 |
16 // See media/base/decode_status.h for descriptions. | 17 // See media/base/decode_status.h for descriptions. |
17 // Kept in sync with media::DecodeStatus via static_asserts. | 18 // Kept in sync with media::DecodeStatus via static_asserts. |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 }; | 209 }; |
209 | 210 |
210 // This defines a mojo transport format for media::AudioDecoderConfig. | 211 // This defines a mojo transport format for media::AudioDecoderConfig. |
211 // See media/base/audio_decoder_config.h for descriptions. | 212 // See media/base/audio_decoder_config.h for descriptions. |
212 struct AudioDecoderConfig { | 213 struct AudioDecoderConfig { |
213 AudioCodec codec; | 214 AudioCodec codec; |
214 SampleFormat sample_format; | 215 SampleFormat sample_format; |
215 ChannelLayout channel_layout; | 216 ChannelLayout channel_layout; |
216 int32 samples_per_second; | 217 int32 samples_per_second; |
217 array<uint8>? extra_data; | 218 array<uint8>? extra_data; |
218 int64 seek_preroll_usec; | 219 mojo.common.mojom.TimeDelta seek_preroll; |
219 int32 codec_delay; | 220 int32 codec_delay; |
220 EncryptionScheme encryption_scheme; | 221 EncryptionScheme encryption_scheme; |
221 }; | 222 }; |
222 | 223 |
223 // This defines a mojo transport format for media::VideoDecoderConfig. | 224 // This defines a mojo transport format for media::VideoDecoderConfig. |
224 // See media/base/video_decoder_config.h for descriptions. | 225 // See media/base/video_decoder_config.h for descriptions. |
225 struct VideoDecoderConfig { | 226 struct VideoDecoderConfig { |
226 VideoCodec codec; | 227 VideoCodec codec; |
227 VideoCodecProfile profile; | 228 VideoCodecProfile profile; |
228 VideoFormat format; | 229 VideoFormat format; |
(...skipping 15 matching lines...) Expand all Loading... |
244 // This defines a mojo transport format for media::DecryptConfig. | 245 // This defines a mojo transport format for media::DecryptConfig. |
245 // See media/base/decrypt_config.h for descriptions. | 246 // See media/base/decrypt_config.h for descriptions. |
246 struct DecryptConfig { | 247 struct DecryptConfig { |
247 string key_id; | 248 string key_id; |
248 string iv; | 249 string iv; |
249 array<SubsampleEntry> subsamples; | 250 array<SubsampleEntry> subsamples; |
250 }; | 251 }; |
251 | 252 |
252 // This defines a mojo transport format for media::DecoderBuffer. | 253 // This defines a mojo transport format for media::DecoderBuffer. |
253 struct DecoderBuffer { | 254 struct DecoderBuffer { |
254 int64 timestamp_usec; | 255 mojo.common.mojom.TimeDelta timestamp; |
255 int64 duration_usec; | 256 mojo.common.mojom.TimeDelta duration; |
256 | 257 |
257 // The number of bytes present in this buffer. The data is not serialized | 258 // The number of bytes present in this buffer. The data is not serialized |
258 // along with this structure and must be read from a separate DataPipe. | 259 // along with this structure and must be read from a separate DataPipe. |
259 uint32 data_size; | 260 uint32 data_size; |
260 | 261 |
261 // Indicates whether or not this buffer is a random access point. | 262 // Indicates whether or not this buffer is a random access point. |
262 bool is_key_frame; | 263 bool is_key_frame; |
263 | 264 |
264 // This is backed by an std::vector and results in a few copies. | 265 // This is backed by an std::vector and results in a few copies. |
265 // Into the vector, onto and off the MessagePipe, back into a vector. | 266 // Into the vector, onto and off the MessagePipe, back into a vector. |
266 array<uint8>? side_data; | 267 array<uint8>? side_data; |
267 | 268 |
268 // DecryptConfig for a encrypted buffer. NULL if the buffer is not encrypted. | 269 // DecryptConfig for a encrypted buffer. NULL if the buffer is not encrypted. |
269 DecryptConfig? decrypt_config; | 270 DecryptConfig? decrypt_config; |
270 | 271 |
271 // These fields indicate the amount of data to discard after decoding. | 272 // These fields indicate the amount of data to discard after decoding. |
272 int64 front_discard_usec; | 273 mojo.common.mojom.TimeDelta front_discard; |
273 int64 back_discard_usec; | 274 mojo.common.mojom.TimeDelta back_discard; |
274 | 275 |
275 // Indicates this buffer is part of a splice around |splice_timestamp_usec|. | 276 // Indicates this buffer is part of a splice around |splice_timestamp|. |
276 int64 splice_timestamp_usec; | 277 mojo.common.mojom.TimeDelta splice_timestamp; |
277 }; | 278 }; |
278 | 279 |
279 // This defines a mojo transport format for media::AudioBuffer. | 280 // This defines a mojo transport format for media::AudioBuffer. |
280 struct AudioBuffer { | 281 struct AudioBuffer { |
281 // Format of the audio. | 282 // Format of the audio. |
282 SampleFormat sample_format; | 283 SampleFormat sample_format; |
283 | 284 |
284 // How the channels are laid out. | 285 // How the channels are laid out. |
285 ChannelLayout channel_layout; | 286 ChannelLayout channel_layout; |
286 | 287 |
287 // Number of channels. | 288 // Number of channels. |
288 int32 channel_count; | 289 int32 channel_count; |
289 | 290 |
290 // Sample rate of the buffer. | 291 // Sample rate of the buffer. |
291 int32 sample_rate; | 292 int32 sample_rate; |
292 | 293 |
293 // Number of frames in the buffer. | 294 // Number of frames in the buffer. |
294 int32 frame_count; | 295 int32 frame_count; |
295 | 296 |
296 // True if end of stream. | 297 // True if end of stream. |
297 bool end_of_stream; | 298 bool end_of_stream; |
298 | 299 |
299 // Timestamp in microseconds of the first frame. | 300 // Timestamp in microseconds of the first frame. |
300 int64 timestamp_usec; | 301 mojo.common.mojom.TimeDelta timestamp; |
301 | 302 |
302 // Channel data. Will be null for EOS buffers. | 303 // Channel data. Will be null for EOS buffers. |
303 array<uint8>? data; | 304 array<uint8>? data; |
304 }; | 305 }; |
305 | 306 |
306 // This defines a mojo transport format for media::VideoFrame. | 307 // This defines a mojo transport format for media::VideoFrame. |
307 struct VideoFrame { | 308 struct VideoFrame { |
308 // Format of the frame. | 309 // Format of the frame. |
309 VideoFormat format; | 310 VideoFormat format; |
310 | 311 |
311 // Width and height of the video frame, in pixels. | 312 // Width and height of the video frame, in pixels. |
312 gfx.mojom.Size coded_size; | 313 gfx.mojom.Size coded_size; |
313 | 314 |
314 // Visible size of the frame. | 315 // Visible size of the frame. |
315 gfx.mojom.Rect visible_rect; | 316 gfx.mojom.Rect visible_rect; |
316 | 317 |
317 // Natural size of the frame. | 318 // Natural size of the frame. |
318 gfx.mojom.Size natural_size; | 319 gfx.mojom.Size natural_size; |
319 | 320 |
320 // True if end of stream. | 321 // True if end of stream. |
321 bool end_of_stream; | 322 bool end_of_stream; |
322 | 323 |
323 // Timestamp in microseconds of the associated frame. | 324 // Timestamp in microseconds of the associated frame. |
324 int64 timestamp_usec; | 325 mojo.common.mojom.TimeDelta timestamp; |
325 | 326 |
326 // Reference to the shared memory containing the frame's data. | 327 // Reference to the shared memory containing the frame's data. |
327 handle<shared_buffer> frame_data; | 328 handle<shared_buffer> frame_data; |
328 uint64 frame_data_size; | 329 uint64 frame_data_size; |
329 | 330 |
330 // Stride and offsets for each plane. Offsets are relative to the start | 331 // Stride and offsets for each plane. Offsets are relative to the start |
331 // of |frame_data|. | 332 // of |frame_data|. |
332 int32 y_stride; | 333 int32 y_stride; |
333 int32 u_stride; | 334 int32 u_stride; |
334 int32 v_stride; | 335 int32 v_stride; |
335 uint64 y_offset; | 336 uint64 y_offset; |
336 uint64 u_offset; | 337 uint64 u_offset; |
337 uint64 v_offset; | 338 uint64 v_offset; |
338 }; | 339 }; |
339 | 340 |
340 struct PipelineStatistics { | 341 struct PipelineStatistics { |
341 uint64 audio_bytes_decoded; | 342 uint64 audio_bytes_decoded; |
342 uint64 video_bytes_decoded; | 343 uint64 video_bytes_decoded; |
343 uint32 video_frames_decoded; | 344 uint32 video_frames_decoded; |
344 uint32 video_frames_dropped; | 345 uint32 video_frames_dropped; |
345 int64 audio_memory_usage; | 346 int64 audio_memory_usage; |
346 int64 video_memory_usage; | 347 int64 video_memory_usage; |
347 }; | 348 }; |
OLD | NEW |