Index: media/mojo/interfaces/media_types.mojom |
diff --git a/media/mojo/interfaces/media_types.mojom b/media/mojo/interfaces/media_types.mojom |
index a8a85c9793057d980d509b797c58e1c82f312277..aaf6586062958428238afd267630b48af149aa8e 100644 |
--- a/media/mojo/interfaces/media_types.mojom |
+++ b/media/mojo/interfaces/media_types.mojom |
@@ -4,6 +4,8 @@ |
module mojo; |
+import "mojo/services/public/interfaces/geometry/geometry.mojom"; |
+ |
// See media/base/buffering_state.h for descriptions. |
// Kept in sync with media::BufferingState via COMPILE_ASSERTs. |
enum BufferingState { |
@@ -68,7 +70,7 @@ enum ChannelLayout { |
k_OCTAGONAL = 28, |
k_DISCRETE = 29, |
k_STEREO_AND_KEYBOARD_MIC = 30, |
- k_MAX = k_STEREO_AND_KEYBOARD_MIC |
+ k_MAX = k_STEREO_AND_KEYBOARD_MIC, |
}; |
// See media/base/sample_format.h for descriptions. |
@@ -84,6 +86,63 @@ enum SampleFormat { |
Max = PlanarF32, |
}; |
+// See media/base/video_frame.h for descriptions. |
+// Kept in sync with media::VideoFrame::Format via COMPILE_ASSERTs. |
+enum VideoFormat { |
+ UNKNOWN = 0, |
+ YV12, |
+ YV16, |
+ I420, |
+ YV12A, |
+ HOLE, |
+ NATIVE_TEXTURE, |
+ YV12J, |
+ NV12, |
+ YV24, |
+ FORMAT_MAX = YV24, |
+}; |
+ |
+// See media/base/video_decoder_config.h for descriptions. |
+// Kept in sync with media::VideoCodec via COMPILE_ASSERTs. |
+enum VideoCodec { |
+ UNKNOWN = 0, |
+ H264, |
+ VC1, |
+ MPEG2, |
+ MPEG4, |
+ Theora, |
+ VP8, |
+ VP9, |
+ Max = VP9, |
+}; |
+ |
+// See media/base/video_decoder_config.h for descriptions. |
+// Kept in sync with media::VideoCodecProfile via COMPILE_ASSERTs. |
+enum VideoCodecProfile { |
+ VIDEO_CODEC_PROFILE_UNKNOWN = -1, |
+ VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN, |
+ H264PROFILE_MIN = 0, |
+ H264PROFILE_BASELINE = H264PROFILE_MIN, |
+ H264PROFILE_MAIN = 1, |
+ H264PROFILE_EXTENDED = 2, |
+ H264PROFILE_HIGH = 3, |
+ H264PROFILE_HIGH10PROFILE = 4, |
+ H264PROFILE_HIGH422PROFILE = 5, |
+ H264PROFILE_HIGH444PREDICTIVEPROFILE = 6, |
+ H264PROFILE_SCALABLEBASELINE = 7, |
+ H264PROFILE_SCALABLEHIGH = 8, |
+ H264PROFILE_STEREOHIGH = 9, |
+ H264PROFILE_MULTIVIEWHIGH = 10, |
+ H264PROFILE_MAX = H264PROFILE_MULTIVIEWHIGH, |
+ VP8PROFILE_MIN = 11, |
+ VP8PROFILE_ANY = VP8PROFILE_MIN, |
+ VP8PROFILE_MAX = VP8PROFILE_ANY, |
+ VP9PROFILE_MIN = 12, |
+ VP9PROFILE_ANY = VP9PROFILE_MIN, |
+ VP9PROFILE_MAX = VP9PROFILE_ANY, |
+ VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_MAX, |
+}; |
+ |
// This defines a mojo transport format for media::AudioDecoderConfig. |
// See media/base/audio_decoder_config.h for descriptions. |
struct AudioDecoderConfig { |
@@ -96,6 +155,19 @@ struct AudioDecoderConfig { |
int32 codec_delay; |
}; |
+// This defines a mojo transport format for media::VideoDecoderConfig. |
+// See media/base/video_decoder_config.h for descriptions. |
+struct VideoDecoderConfig { |
+ VideoCodec codec; |
+ VideoCodecProfile profile; |
+ VideoFormat format; |
+ Size coded_size; |
+ Rect visible_rect; |
+ Size natural_size; |
+ array<uint8>? extra_data; |
+ bool is_encrypted; |
+}; |
+ |
// This defines a mojo transport format for media::DecoderBuffer. |
struct MediaDecoderBuffer { |
// See media/base/buffers.h for details. |