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 import "mojo/services/public/interfaces/geometry/geometry.mojom" | |
6 | |
5 module mojo { | 7 module mojo { |
6 | 8 |
7 // See media/base/buffering_state.h for descriptions. | 9 // See media/base/buffering_state.h for descriptions. |
8 // Kept in sync with media::BufferingState via COMPILE_ASSERTs. | 10 // Kept in sync with media::BufferingState via COMPILE_ASSERTs. |
9 enum BufferingState { | 11 enum BufferingState { |
10 HAVE_NOTHING, | 12 HAVE_NOTHING, |
11 HAVE_ENOUGH, | 13 HAVE_ENOUGH, |
12 }; | 14 }; |
13 | 15 |
14 // See media/base/audio_decoder_config.h for descriptions. | 16 // See media/base/audio_decoder_config.h for descriptions. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
77 UNKNOWN = 0, | 79 UNKNOWN = 0, |
78 U8, | 80 U8, |
79 S16, | 81 S16, |
80 S32, | 82 S32, |
81 F32, | 83 F32, |
82 PlanarS16, | 84 PlanarS16, |
83 PlanarF32, | 85 PlanarF32, |
84 Max = PlanarF32, | 86 Max = PlanarF32, |
85 }; | 87 }; |
86 | 88 |
89 enum VideoFormat { | |
90 UNKNOWN = 0, // Unknown format value. | |
91 YV12 = 1, // 12bpp YVU planar 1x1 Y, 2x2 VU samples | |
92 YV16 = 2, // 16bpp YVU planar 1x1 Y, 2x1 VU samples | |
93 I420 = 3, // 12bpp YVU planar 1x1 Y, 2x2 UV samples. | |
94 YV12A = 4, // 20bpp YUVA planar 1x1 Y, 2x2 VU, 1x1 A samples. | |
95 HOLE = 5, // Hole frame. | |
96 NATIVE_TEXTURE = 6, // Native texture. Pixel-format agnostic. | |
97 YV12J = 7, // JPEG color range version of YV12 | |
98 NV12 = 8, // 12bpp 1x1 Y plane followed by an interleaved 2x2 UV plane. | |
99 YV24 = 9, // 24bpp YUV planar, no subsampling. | |
100 FORMAT_MAX = YV24, // Must always be equal to largest entry logged. | |
101 }; | |
102 | |
103 enum VideoCodec { | |
104 UNKNOWN = 0, | |
105 H264, | |
106 VC1, | |
107 MPEG2, | |
108 MPEG4, | |
109 THEORA, | |
110 VP8, | |
111 VP9, | |
112 Max = VP9 | |
113 }; | |
114 | |
115 // Video stream profile. This *must* match PP_VideoDecoder_Profile. | |
116 // (enforced in webkit/plugins/ppapi/ppb_video_decoder_impl.cc) and | |
117 // gpu::VideoCodecProfile. | |
xhwang
2014/10/29 00:22:13
Update: needs to match media::VideoCodecProfile.
DaleCurtis
2014/10/30 23:16:56
Done.
| |
118 enum VideoCodecProfile { | |
119 // Keep the values in this enum unique, as they imply format (h.264 vs. VP8, | |
120 // for example), and keep the values for a particular format grouped | |
121 // together for clarity. | |
122 VIDEO_CODEC_PROFILE_UNKNOWN = -1, | |
123 VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN, | |
124 H264PROFILE_MIN = 0, | |
125 H264PROFILE_BASELINE = H264PROFILE_MIN, | |
126 H264PROFILE_MAIN = 1, | |
127 H264PROFILE_EXTENDED = 2, | |
128 H264PROFILE_HIGH = 3, | |
129 H264PROFILE_HIGH10PROFILE = 4, | |
130 H264PROFILE_HIGH422PROFILE = 5, | |
131 H264PROFILE_HIGH444PREDICTIVEPROFILE = 6, | |
132 H264PROFILE_SCALABLEBASELINE = 7, | |
133 H264PROFILE_SCALABLEHIGH = 8, | |
134 H264PROFILE_STEREOHIGH = 9, | |
135 H264PROFILE_MULTIVIEWHIGH = 10, | |
136 H264PROFILE_MAX = H264PROFILE_MULTIVIEWHIGH, | |
137 VP8PROFILE_MIN = 11, | |
138 VP8PROFILE_ANY = VP8PROFILE_MIN, | |
139 VP8PROFILE_MAX = VP8PROFILE_ANY, | |
140 VP9PROFILE_MIN = 12, | |
141 VP9PROFILE_ANY = VP9PROFILE_MIN, | |
142 VP9PROFILE_MAX = VP9PROFILE_ANY, | |
143 VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_MAX, | |
144 }; | |
145 | |
87 // This defines a mojo transport format for media::AudioDecoderConfig. | 146 // This defines a mojo transport format for media::AudioDecoderConfig. |
88 // See media/base/audio_decoder_config.h for descriptions. | 147 // See media/base/audio_decoder_config.h for descriptions. |
89 struct AudioDecoderConfig { | 148 struct AudioDecoderConfig { |
90 AudioCodec codec; | 149 AudioCodec codec; |
91 SampleFormat sample_format; | 150 SampleFormat sample_format; |
92 ChannelLayout channel_layout; | 151 ChannelLayout channel_layout; |
93 int32 samples_per_second; | 152 int32 samples_per_second; |
94 array<uint8>? extra_data; | 153 array<uint8>? extra_data; |
95 int64 seek_preroll_usec; | 154 int64 seek_preroll_usec; |
96 int32 codec_delay; | 155 int32 codec_delay; |
97 }; | 156 }; |
98 | 157 |
158 struct VideoDecoderConfig { | |
159 VideoCodec codec; | |
160 VideoCodecProfile profile; | |
161 VideoFormat format; | |
162 Size coded_size; | |
163 Rect visible_rect; | |
164 Size natural_size; | |
165 array<uint8>? extra_data; | |
166 bool is_encrypted; | |
167 }; | |
168 | |
99 // This defines a mojo transport format for media::DecoderBuffer. | 169 // This defines a mojo transport format for media::DecoderBuffer. |
100 struct MediaDecoderBuffer { | 170 struct MediaDecoderBuffer { |
101 // See media/base/buffers.h for details. | 171 // See media/base/buffers.h for details. |
102 int64 timestamp_usec; | 172 int64 timestamp_usec; |
103 int64 duration_usec; | 173 int64 duration_usec; |
104 | 174 |
105 // The number of bytes in |data|. | 175 // The number of bytes in |data|. |
106 uint32 data_size; | 176 uint32 data_size; |
107 | 177 |
108 // This is backed by an std::vector and results in a few copies. | 178 // This is backed by an std::vector and results in a few copies. |
109 // Into the vector, onto and off the MessagePipe, back into a vector. | 179 // Into the vector, onto and off the MessagePipe, back into a vector. |
110 array<uint8>? side_data; | 180 array<uint8>? side_data; |
111 uint32 side_data_size; | 181 uint32 side_data_size; |
112 | 182 |
113 // These fields indicate the amount of data to discard after decoding. | 183 // These fields indicate the amount of data to discard after decoding. |
114 int64 front_discard_usec; | 184 int64 front_discard_usec; |
115 int64 back_discard_usec; | 185 int64 back_discard_usec; |
116 | 186 |
117 // Indicates this buffer is part of a splice around |splice_timestamp_usec|. | 187 // Indicates this buffer is part of a splice around |splice_timestamp_usec|. |
118 int64 splice_timestamp_usec; | 188 int64 splice_timestamp_usec; |
119 | 189 |
120 // The payload. Invalid handle indicates an end-of-stream (EOS) buffer. | 190 // The payload. Invalid handle indicates an end-of-stream (EOS) buffer. |
121 // TODO(tim): This currently results in allocating a new, largeish DataPipe | 191 // TODO(tim): This currently results in allocating a new, largeish DataPipe |
122 // for each buffer. Remove this once framed data pipes exist, but using this | 192 // for each buffer. Remove this once framed data pipes exist, but using this |
123 // for now for prototyping audio. | 193 // for now for prototyping audio. |
124 handle<data_pipe_consumer>? data; | 194 handle<data_pipe_consumer>? data; |
125 }; | 195 }; |
126 | 196 |
127 } // module mojo | 197 } // module mojo |
OLD | NEW |