OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. 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 #include "media/remoting/rpc/proto_enum_utils.h" | |
6 | |
7 namespace media { | |
8 namespace remoting { | |
9 | |
10 #define CASE_RETURN_OTHER(x) \ | |
11 case OriginType::x: \ | |
12 return OtherType::x | |
13 | |
14 base::Optional<::media::EncryptionScheme::CipherMode> | |
15 ToMediaEncryptionSchemeCipherMode(pb::EncryptionScheme::CipherMode value) { | |
16 using OriginType = pb::EncryptionScheme; | |
17 using OtherType = ::media::EncryptionScheme; | |
18 switch (value) { | |
19 CASE_RETURN_OTHER(CIPHER_MODE_UNENCRYPTED); | |
20 CASE_RETURN_OTHER(CIPHER_MODE_AES_CTR); | |
21 CASE_RETURN_OTHER(CIPHER_MODE_AES_CBC); | |
22 } | |
23 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
24 } | |
25 | |
26 base::Optional<pb::EncryptionScheme::CipherMode> | |
27 ToProtoEncryptionSchemeCipherMode(::media::EncryptionScheme::CipherMode value) { | |
28 using OriginType = ::media::EncryptionScheme; | |
29 using OtherType = pb::EncryptionScheme; | |
30 switch (value) { | |
31 CASE_RETURN_OTHER(CIPHER_MODE_UNENCRYPTED); | |
32 CASE_RETURN_OTHER(CIPHER_MODE_AES_CTR); | |
33 CASE_RETURN_OTHER(CIPHER_MODE_AES_CBC); | |
34 } | |
35 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
36 } | |
37 | |
38 base::Optional<::media::AudioCodec> ToMediaAudioCodec( | |
39 pb::AudioDecoderConfig::Codec value) { | |
40 using OriginType = pb::AudioDecoderConfig; | |
41 using OtherType = ::media::AudioCodec; | |
42 switch (value) { | |
43 CASE_RETURN_OTHER(kUnknownAudioCodec); | |
44 CASE_RETURN_OTHER(kCodecAAC); | |
45 CASE_RETURN_OTHER(kCodecMP3); | |
46 CASE_RETURN_OTHER(kCodecPCM); | |
47 CASE_RETURN_OTHER(kCodecVorbis); | |
48 CASE_RETURN_OTHER(kCodecFLAC); | |
49 CASE_RETURN_OTHER(kCodecAMR_NB); | |
50 CASE_RETURN_OTHER(kCodecAMR_WB); | |
51 CASE_RETURN_OTHER(kCodecPCM_MULAW); | |
52 CASE_RETURN_OTHER(kCodecGSM_MS); | |
53 CASE_RETURN_OTHER(kCodecPCM_S16BE); | |
54 CASE_RETURN_OTHER(kCodecPCM_S24BE); | |
55 CASE_RETURN_OTHER(kCodecOpus); | |
56 CASE_RETURN_OTHER(kCodecEAC3); | |
57 CASE_RETURN_OTHER(kCodecPCM_ALAW); | |
58 CASE_RETURN_OTHER(kCodecALAC); | |
59 CASE_RETURN_OTHER(kCodecAC3); | |
60 } | |
61 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
62 } | |
63 | |
64 base::Optional<pb::AudioDecoderConfig::Codec> ToProtoAudioDecoderConfigCodec( | |
65 ::media::AudioCodec value) { | |
66 using OriginType = ::media::AudioCodec; | |
67 using OtherType = pb::AudioDecoderConfig; | |
68 switch (value) { | |
69 CASE_RETURN_OTHER(kUnknownAudioCodec); | |
70 CASE_RETURN_OTHER(kCodecAAC); | |
71 CASE_RETURN_OTHER(kCodecMP3); | |
72 CASE_RETURN_OTHER(kCodecPCM); | |
73 CASE_RETURN_OTHER(kCodecVorbis); | |
74 CASE_RETURN_OTHER(kCodecFLAC); | |
75 CASE_RETURN_OTHER(kCodecAMR_NB); | |
76 CASE_RETURN_OTHER(kCodecAMR_WB); | |
77 CASE_RETURN_OTHER(kCodecPCM_MULAW); | |
78 CASE_RETURN_OTHER(kCodecGSM_MS); | |
79 CASE_RETURN_OTHER(kCodecPCM_S16BE); | |
80 CASE_RETURN_OTHER(kCodecPCM_S24BE); | |
81 CASE_RETURN_OTHER(kCodecOpus); | |
82 CASE_RETURN_OTHER(kCodecEAC3); | |
83 CASE_RETURN_OTHER(kCodecPCM_ALAW); | |
84 CASE_RETURN_OTHER(kCodecALAC); | |
85 CASE_RETURN_OTHER(kCodecAC3); | |
86 } | |
87 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
88 } | |
89 | |
90 base::Optional<::media::SampleFormat> ToMediaSampleFormat( | |
91 pb::AudioDecoderConfig::SampleFormat value) { | |
92 using OriginType = pb::AudioDecoderConfig; | |
93 using OtherType = ::media::SampleFormat; | |
94 switch (value) { | |
95 CASE_RETURN_OTHER(kUnknownSampleFormat); | |
96 CASE_RETURN_OTHER(kSampleFormatU8); | |
97 CASE_RETURN_OTHER(kSampleFormatS16); | |
98 CASE_RETURN_OTHER(kSampleFormatS32); | |
99 CASE_RETURN_OTHER(kSampleFormatF32); | |
100 CASE_RETURN_OTHER(kSampleFormatPlanarS16); | |
101 CASE_RETURN_OTHER(kSampleFormatPlanarF32); | |
102 CASE_RETURN_OTHER(kSampleFormatPlanarS32); | |
103 CASE_RETURN_OTHER(kSampleFormatS24); | |
104 CASE_RETURN_OTHER(kSampleFormatAc3); | |
105 CASE_RETURN_OTHER(kSampleFormatEac3); | |
106 } | |
107 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
108 } | |
109 | |
110 base::Optional<pb::AudioDecoderConfig::SampleFormat> | |
111 ToProtoAudioDecoderConfigSampleFormat(::media::SampleFormat value) { | |
112 using OriginType = ::media::SampleFormat; | |
113 using OtherType = pb::AudioDecoderConfig; | |
114 switch (value) { | |
115 CASE_RETURN_OTHER(kUnknownSampleFormat); | |
116 CASE_RETURN_OTHER(kSampleFormatU8); | |
117 CASE_RETURN_OTHER(kSampleFormatS16); | |
118 CASE_RETURN_OTHER(kSampleFormatS32); | |
119 CASE_RETURN_OTHER(kSampleFormatF32); | |
120 CASE_RETURN_OTHER(kSampleFormatPlanarS16); | |
121 CASE_RETURN_OTHER(kSampleFormatPlanarF32); | |
122 CASE_RETURN_OTHER(kSampleFormatPlanarS32); | |
123 CASE_RETURN_OTHER(kSampleFormatS24); | |
124 CASE_RETURN_OTHER(kSampleFormatAc3); | |
125 CASE_RETURN_OTHER(kSampleFormatEac3); | |
126 } | |
127 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
128 } | |
129 | |
130 base::Optional<::media::ChannelLayout> ToMediaChannelLayout( | |
131 pb::AudioDecoderConfig::ChannelLayout value) { | |
132 using OriginType = pb::AudioDecoderConfig; | |
133 using OtherType = ::media::ChannelLayout; | |
134 switch (value) { | |
135 CASE_RETURN_OTHER(CHANNEL_LAYOUT_NONE); | |
136 CASE_RETURN_OTHER(CHANNEL_LAYOUT_UNSUPPORTED); | |
137 CASE_RETURN_OTHER(CHANNEL_LAYOUT_MONO); | |
138 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO); | |
139 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2_1); | |
140 CASE_RETURN_OTHER(CHANNEL_LAYOUT_SURROUND); | |
141 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_0); | |
142 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2_2); | |
143 CASE_RETURN_OTHER(CHANNEL_LAYOUT_QUAD); | |
144 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_0); | |
145 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_1); | |
146 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_0_BACK); | |
147 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_1_BACK); | |
148 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_0); | |
149 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1); | |
150 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1_WIDE); | |
151 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO_DOWNMIX); | |
152 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2POINT1); | |
153 CASE_RETURN_OTHER(CHANNEL_LAYOUT_3_1); | |
154 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_1); | |
155 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_0); | |
156 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_0_FRONT); | |
157 CASE_RETURN_OTHER(CHANNEL_LAYOUT_HEXAGONAL); | |
158 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1); | |
159 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1_BACK); | |
160 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1_FRONT); | |
161 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_0_FRONT); | |
162 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1_WIDE_BACK); | |
163 CASE_RETURN_OTHER(CHANNEL_LAYOUT_OCTAGONAL); | |
164 CASE_RETURN_OTHER(CHANNEL_LAYOUT_DISCRETE); | |
165 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO_AND_KEYBOARD_MIC); | |
166 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_1_QUAD_SIDE); | |
167 } | |
168 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
169 } | |
170 | |
171 base::Optional<pb::AudioDecoderConfig::ChannelLayout> | |
172 ToProtoAudioDecoderConfigChannelLayout(::media::ChannelLayout value) { | |
173 using OriginType = ::media::ChannelLayout; | |
174 using OtherType = pb::AudioDecoderConfig; | |
175 switch (value) { | |
176 CASE_RETURN_OTHER(CHANNEL_LAYOUT_NONE); | |
177 CASE_RETURN_OTHER(CHANNEL_LAYOUT_UNSUPPORTED); | |
178 CASE_RETURN_OTHER(CHANNEL_LAYOUT_MONO); | |
179 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO); | |
180 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2_1); | |
181 CASE_RETURN_OTHER(CHANNEL_LAYOUT_SURROUND); | |
182 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_0); | |
183 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2_2); | |
184 CASE_RETURN_OTHER(CHANNEL_LAYOUT_QUAD); | |
185 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_0); | |
186 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_1); | |
187 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_0_BACK); | |
188 CASE_RETURN_OTHER(CHANNEL_LAYOUT_5_1_BACK); | |
189 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_0); | |
190 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1); | |
191 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1_WIDE); | |
192 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO_DOWNMIX); | |
193 CASE_RETURN_OTHER(CHANNEL_LAYOUT_2POINT1); | |
194 CASE_RETURN_OTHER(CHANNEL_LAYOUT_3_1); | |
195 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_1); | |
196 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_0); | |
197 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_0_FRONT); | |
198 CASE_RETURN_OTHER(CHANNEL_LAYOUT_HEXAGONAL); | |
199 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1); | |
200 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1_BACK); | |
201 CASE_RETURN_OTHER(CHANNEL_LAYOUT_6_1_FRONT); | |
202 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_0_FRONT); | |
203 CASE_RETURN_OTHER(CHANNEL_LAYOUT_7_1_WIDE_BACK); | |
204 CASE_RETURN_OTHER(CHANNEL_LAYOUT_OCTAGONAL); | |
205 CASE_RETURN_OTHER(CHANNEL_LAYOUT_DISCRETE); | |
206 CASE_RETURN_OTHER(CHANNEL_LAYOUT_STEREO_AND_KEYBOARD_MIC); | |
207 CASE_RETURN_OTHER(CHANNEL_LAYOUT_4_1_QUAD_SIDE); | |
208 } | |
209 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
210 } | |
211 | |
212 base::Optional<::media::VideoCodec> ToMediaVideoCodec( | |
213 pb::VideoDecoderConfig::Codec value) { | |
214 using OriginType = pb::VideoDecoderConfig; | |
215 using OtherType = ::media::VideoCodec; | |
216 switch (value) { | |
217 CASE_RETURN_OTHER(kUnknownVideoCodec); | |
218 CASE_RETURN_OTHER(kCodecH264); | |
219 CASE_RETURN_OTHER(kCodecVC1); | |
220 CASE_RETURN_OTHER(kCodecMPEG2); | |
221 CASE_RETURN_OTHER(kCodecMPEG4); | |
222 CASE_RETURN_OTHER(kCodecTheora); | |
223 CASE_RETURN_OTHER(kCodecVP8); | |
224 CASE_RETURN_OTHER(kCodecVP9); | |
225 CASE_RETURN_OTHER(kCodecHEVC); | |
226 } | |
227 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
228 } | |
229 | |
230 base::Optional<pb::VideoDecoderConfig::Codec> ToProtoVideoDecoderConfigCodec( | |
231 ::media::VideoCodec value) { | |
232 using OriginType = ::media::VideoCodec; | |
233 using OtherType = pb::VideoDecoderConfig; | |
234 switch (value) { | |
235 CASE_RETURN_OTHER(kUnknownVideoCodec); | |
236 CASE_RETURN_OTHER(kCodecH264); | |
237 CASE_RETURN_OTHER(kCodecVC1); | |
238 CASE_RETURN_OTHER(kCodecMPEG2); | |
239 CASE_RETURN_OTHER(kCodecMPEG4); | |
240 CASE_RETURN_OTHER(kCodecTheora); | |
241 CASE_RETURN_OTHER(kCodecVP8); | |
242 CASE_RETURN_OTHER(kCodecVP9); | |
243 CASE_RETURN_OTHER(kCodecHEVC); | |
244 } | |
245 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
246 } | |
247 | |
248 base::Optional<::media::VideoCodecProfile> ToMediaVideoCodecProfile( | |
249 pb::VideoDecoderConfig::Profile value) { | |
250 using OriginType = pb::VideoDecoderConfig; | |
251 using OtherType = ::media::VideoCodecProfile; | |
252 switch (value) { | |
253 CASE_RETURN_OTHER(VIDEO_CODEC_PROFILE_UNKNOWN); | |
254 CASE_RETURN_OTHER(H264PROFILE_BASELINE); | |
255 CASE_RETURN_OTHER(H264PROFILE_MAIN); | |
256 CASE_RETURN_OTHER(H264PROFILE_EXTENDED); | |
257 CASE_RETURN_OTHER(H264PROFILE_HIGH); | |
258 CASE_RETURN_OTHER(H264PROFILE_HIGH10PROFILE); | |
259 CASE_RETURN_OTHER(H264PROFILE_HIGH422PROFILE); | |
260 CASE_RETURN_OTHER(H264PROFILE_HIGH444PREDICTIVEPROFILE); | |
261 CASE_RETURN_OTHER(H264PROFILE_SCALABLEBASELINE); | |
262 CASE_RETURN_OTHER(H264PROFILE_SCALABLEHIGH); | |
263 CASE_RETURN_OTHER(H264PROFILE_STEREOHIGH); | |
264 CASE_RETURN_OTHER(H264PROFILE_MULTIVIEWHIGH); | |
265 CASE_RETURN_OTHER(VP8PROFILE_ANY); | |
266 CASE_RETURN_OTHER(VP9PROFILE_PROFILE0); | |
267 CASE_RETURN_OTHER(VP9PROFILE_PROFILE1); | |
268 CASE_RETURN_OTHER(VP9PROFILE_PROFILE2); | |
269 CASE_RETURN_OTHER(VP9PROFILE_PROFILE3); | |
270 CASE_RETURN_OTHER(HEVCPROFILE_MAIN); | |
271 CASE_RETURN_OTHER(HEVCPROFILE_MAIN10); | |
272 CASE_RETURN_OTHER(HEVCPROFILE_MAIN_STILL_PICTURE); | |
273 } | |
274 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
275 } | |
276 | |
277 base::Optional<pb::VideoDecoderConfig::Profile> | |
278 ToProtoVideoDecoderConfigProfile(::media::VideoCodecProfile value) { | |
279 using OriginType = ::media::VideoCodecProfile; | |
280 using OtherType = pb::VideoDecoderConfig; | |
281 switch (value) { | |
282 CASE_RETURN_OTHER(VIDEO_CODEC_PROFILE_UNKNOWN); | |
283 CASE_RETURN_OTHER(H264PROFILE_BASELINE); | |
284 CASE_RETURN_OTHER(H264PROFILE_MAIN); | |
285 CASE_RETURN_OTHER(H264PROFILE_EXTENDED); | |
286 CASE_RETURN_OTHER(H264PROFILE_HIGH); | |
287 CASE_RETURN_OTHER(H264PROFILE_HIGH10PROFILE); | |
288 CASE_RETURN_OTHER(H264PROFILE_HIGH422PROFILE); | |
289 CASE_RETURN_OTHER(H264PROFILE_HIGH444PREDICTIVEPROFILE); | |
290 CASE_RETURN_OTHER(H264PROFILE_SCALABLEBASELINE); | |
291 CASE_RETURN_OTHER(H264PROFILE_SCALABLEHIGH); | |
292 CASE_RETURN_OTHER(H264PROFILE_STEREOHIGH); | |
293 CASE_RETURN_OTHER(H264PROFILE_MULTIVIEWHIGH); | |
294 CASE_RETURN_OTHER(VP8PROFILE_ANY); | |
295 CASE_RETURN_OTHER(VP9PROFILE_PROFILE0); | |
296 CASE_RETURN_OTHER(VP9PROFILE_PROFILE1); | |
297 CASE_RETURN_OTHER(VP9PROFILE_PROFILE2); | |
298 CASE_RETURN_OTHER(VP9PROFILE_PROFILE3); | |
299 CASE_RETURN_OTHER(HEVCPROFILE_MAIN); | |
300 CASE_RETURN_OTHER(HEVCPROFILE_MAIN10); | |
301 CASE_RETURN_OTHER(HEVCPROFILE_MAIN_STILL_PICTURE); | |
302 } | |
303 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
304 } | |
305 | |
306 base::Optional<::media::VideoPixelFormat> ToMediaVideoPixelFormat( | |
307 pb::VideoDecoderConfig::Format value) { | |
308 using OriginType = pb::VideoDecoderConfig; | |
309 using OtherType = ::media::VideoPixelFormat; | |
310 switch (value) { | |
311 CASE_RETURN_OTHER(PIXEL_FORMAT_UNKNOWN); | |
312 CASE_RETURN_OTHER(PIXEL_FORMAT_I420); | |
313 CASE_RETURN_OTHER(PIXEL_FORMAT_YV12); | |
314 CASE_RETURN_OTHER(PIXEL_FORMAT_YV16); | |
315 CASE_RETURN_OTHER(PIXEL_FORMAT_YV12A); | |
316 CASE_RETURN_OTHER(PIXEL_FORMAT_YV24); | |
317 CASE_RETURN_OTHER(PIXEL_FORMAT_NV12); | |
318 CASE_RETURN_OTHER(PIXEL_FORMAT_NV21); | |
319 CASE_RETURN_OTHER(PIXEL_FORMAT_UYVY); | |
320 CASE_RETURN_OTHER(PIXEL_FORMAT_YUY2); | |
321 CASE_RETURN_OTHER(PIXEL_FORMAT_ARGB); | |
322 CASE_RETURN_OTHER(PIXEL_FORMAT_XRGB); | |
323 CASE_RETURN_OTHER(PIXEL_FORMAT_RGB24); | |
324 CASE_RETURN_OTHER(PIXEL_FORMAT_RGB32); | |
325 CASE_RETURN_OTHER(PIXEL_FORMAT_MJPEG); | |
326 CASE_RETURN_OTHER(PIXEL_FORMAT_MT21); | |
327 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P9); | |
328 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P10); | |
329 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P9); | |
330 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P10); | |
331 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P9); | |
332 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P10); | |
333 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P12); | |
334 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P12); | |
335 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P12); | |
336 CASE_RETURN_OTHER(PIXEL_FORMAT_Y8); | |
337 CASE_RETURN_OTHER(PIXEL_FORMAT_Y16); | |
338 CASE_RETURN_OTHER(PIXEL_FORMAT_I422); | |
339 } | |
340 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
341 } | |
342 | |
343 base::Optional<pb::VideoDecoderConfig::Format> ToProtoVideoDecoderConfigFormat( | |
344 ::media::VideoPixelFormat value) { | |
345 using OriginType = ::media::VideoPixelFormat; | |
346 using OtherType = pb::VideoDecoderConfig; | |
347 switch (value) { | |
348 CASE_RETURN_OTHER(PIXEL_FORMAT_UNKNOWN); | |
349 CASE_RETURN_OTHER(PIXEL_FORMAT_I420); | |
350 CASE_RETURN_OTHER(PIXEL_FORMAT_YV12); | |
351 CASE_RETURN_OTHER(PIXEL_FORMAT_YV16); | |
352 CASE_RETURN_OTHER(PIXEL_FORMAT_YV12A); | |
353 CASE_RETURN_OTHER(PIXEL_FORMAT_YV24); | |
354 CASE_RETURN_OTHER(PIXEL_FORMAT_NV12); | |
355 CASE_RETURN_OTHER(PIXEL_FORMAT_NV21); | |
356 CASE_RETURN_OTHER(PIXEL_FORMAT_UYVY); | |
357 CASE_RETURN_OTHER(PIXEL_FORMAT_YUY2); | |
358 CASE_RETURN_OTHER(PIXEL_FORMAT_ARGB); | |
359 CASE_RETURN_OTHER(PIXEL_FORMAT_XRGB); | |
360 CASE_RETURN_OTHER(PIXEL_FORMAT_RGB24); | |
361 CASE_RETURN_OTHER(PIXEL_FORMAT_RGB32); | |
362 CASE_RETURN_OTHER(PIXEL_FORMAT_MJPEG); | |
363 CASE_RETURN_OTHER(PIXEL_FORMAT_MT21); | |
364 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P9); | |
365 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P10); | |
366 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P9); | |
367 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P10); | |
368 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P9); | |
369 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P10); | |
370 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV420P12); | |
371 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV422P12); | |
372 CASE_RETURN_OTHER(PIXEL_FORMAT_YUV444P12); | |
373 CASE_RETURN_OTHER(PIXEL_FORMAT_Y8); | |
374 CASE_RETURN_OTHER(PIXEL_FORMAT_Y16); | |
375 CASE_RETURN_OTHER(PIXEL_FORMAT_I422); | |
376 } | |
377 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
378 } | |
379 | |
380 base::Optional<::media::ColorSpace> ToMediaColorSpace( | |
381 pb::VideoDecoderConfig::ColorSpace value) { | |
382 using OriginType = pb::VideoDecoderConfig; | |
383 using OtherType = ::media::ColorSpace; | |
384 switch (value) { | |
385 CASE_RETURN_OTHER(COLOR_SPACE_UNSPECIFIED); | |
386 CASE_RETURN_OTHER(COLOR_SPACE_JPEG); | |
387 CASE_RETURN_OTHER(COLOR_SPACE_HD_REC709); | |
388 CASE_RETURN_OTHER(COLOR_SPACE_SD_REC601); | |
389 } | |
390 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
391 } | |
392 | |
393 base::Optional<pb::VideoDecoderConfig::ColorSpace> | |
394 ToProtoVideoDecoderConfigColorSpace(::media::ColorSpace value) { | |
395 using OriginType = ::media::ColorSpace; | |
396 using OtherType = pb::VideoDecoderConfig; | |
397 switch (value) { | |
398 CASE_RETURN_OTHER(COLOR_SPACE_UNSPECIFIED); | |
399 CASE_RETURN_OTHER(COLOR_SPACE_JPEG); | |
400 CASE_RETURN_OTHER(COLOR_SPACE_HD_REC709); | |
401 CASE_RETURN_OTHER(COLOR_SPACE_SD_REC601); | |
402 } | |
403 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
404 } | |
405 | |
406 base::Optional<::media::BufferingState> ToMediaBufferingState( | |
407 pb::RendererClientOnBufferingStateChange::State value) { | |
408 using OriginType = pb::RendererClientOnBufferingStateChange; | |
409 using OtherType = ::media::BufferingState; | |
410 switch (value) { | |
411 CASE_RETURN_OTHER(BUFFERING_HAVE_NOTHING); | |
412 CASE_RETURN_OTHER(BUFFERING_HAVE_ENOUGH); | |
413 } | |
414 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
415 } | |
416 | |
417 base::Optional<pb::RendererClientOnBufferingStateChange::State> | |
418 ToProtoMediaBufferingState(::media::BufferingState value) { | |
419 using OriginType = ::media::BufferingState; | |
420 using OtherType = pb::RendererClientOnBufferingStateChange; | |
421 switch (value) { | |
422 CASE_RETURN_OTHER(BUFFERING_HAVE_NOTHING); | |
423 CASE_RETURN_OTHER(BUFFERING_HAVE_ENOUGH); | |
424 } | |
425 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
426 } | |
427 | |
428 base::Optional<::media::CdmKeyInformation::KeyStatus> | |
429 ToMediaCdmKeyInformationKeyStatus(pb::CdmKeyInformation::KeyStatus value) { | |
430 using OriginType = pb::CdmKeyInformation; | |
431 using OtherType = ::media::CdmKeyInformation; | |
432 switch (value) { | |
433 CASE_RETURN_OTHER(USABLE); | |
434 CASE_RETURN_OTHER(INTERNAL_ERROR); | |
435 CASE_RETURN_OTHER(EXPIRED); | |
436 CASE_RETURN_OTHER(OUTPUT_RESTRICTED); | |
437 CASE_RETURN_OTHER(OUTPUT_DOWNSCALED); | |
438 CASE_RETURN_OTHER(KEY_STATUS_PENDING); | |
439 CASE_RETURN_OTHER(RELEASED); | |
440 } | |
441 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
442 } | |
443 | |
444 base::Optional<pb::CdmKeyInformation::KeyStatus> ToProtoCdmKeyInformation( | |
445 ::media::CdmKeyInformation::KeyStatus value) { | |
446 using OriginType = ::media::CdmKeyInformation; | |
447 using OtherType = pb::CdmKeyInformation; | |
448 switch (value) { | |
449 CASE_RETURN_OTHER(USABLE); | |
450 CASE_RETURN_OTHER(INTERNAL_ERROR); | |
451 CASE_RETURN_OTHER(EXPIRED); | |
452 CASE_RETURN_OTHER(OUTPUT_RESTRICTED); | |
453 CASE_RETURN_OTHER(OUTPUT_DOWNSCALED); | |
454 CASE_RETURN_OTHER(KEY_STATUS_PENDING); | |
455 CASE_RETURN_OTHER(RELEASED); | |
456 } | |
457 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
458 } | |
459 | |
460 base::Optional<::media::CdmPromise::Exception> ToCdmPromiseException( | |
461 pb::CdmException value) { | |
462 using OriginType = pb::CdmException; | |
463 using OtherType = ::media::CdmPromise; | |
464 switch (value) { | |
465 CASE_RETURN_OTHER(NOT_SUPPORTED_ERROR); | |
466 CASE_RETURN_OTHER(INVALID_STATE_ERROR); | |
467 CASE_RETURN_OTHER(INVALID_ACCESS_ERROR); | |
468 CASE_RETURN_OTHER(QUOTA_EXCEEDED_ERROR); | |
469 CASE_RETURN_OTHER(UNKNOWN_ERROR); | |
470 CASE_RETURN_OTHER(CLIENT_ERROR); | |
471 CASE_RETURN_OTHER(OUTPUT_ERROR); | |
472 } | |
473 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
474 } | |
475 | |
476 base::Optional<pb::CdmException> ToProtoCdmException( | |
477 ::media::CdmPromise::Exception value) { | |
478 using OriginType = ::media::CdmPromise; | |
479 using OtherType = pb::CdmException; | |
480 switch (value) { | |
481 CASE_RETURN_OTHER(NOT_SUPPORTED_ERROR); | |
482 CASE_RETURN_OTHER(INVALID_STATE_ERROR); | |
483 CASE_RETURN_OTHER(INVALID_ACCESS_ERROR); | |
484 CASE_RETURN_OTHER(QUOTA_EXCEEDED_ERROR); | |
485 CASE_RETURN_OTHER(UNKNOWN_ERROR); | |
486 CASE_RETURN_OTHER(CLIENT_ERROR); | |
487 CASE_RETURN_OTHER(OUTPUT_ERROR); | |
488 } | |
489 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
490 } | |
491 | |
492 base::Optional<::media::ContentDecryptionModule::MessageType> | |
493 ToMediaCdmMessageType(pb::CdmMessageType value) { | |
494 using OriginType = pb::CdmMessageType; | |
495 using OtherType = ::media::ContentDecryptionModule; | |
496 switch (value) { | |
497 CASE_RETURN_OTHER(LICENSE_REQUEST); | |
498 CASE_RETURN_OTHER(LICENSE_RENEWAL); | |
499 CASE_RETURN_OTHER(LICENSE_RELEASE); | |
500 } | |
501 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
502 } | |
503 | |
504 base::Optional<pb::CdmMessageType> ToProtoCdmMessageType( | |
505 ::media::ContentDecryptionModule::MessageType value) { | |
506 using OriginType = ::media::ContentDecryptionModule; | |
507 using OtherType = pb::CdmMessageType; | |
508 switch (value) { | |
509 CASE_RETURN_OTHER(LICENSE_REQUEST); | |
510 CASE_RETURN_OTHER(LICENSE_RENEWAL); | |
511 CASE_RETURN_OTHER(LICENSE_RELEASE); | |
512 } | |
513 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
514 } | |
515 | |
516 base::Optional<::media::CdmSessionType> ToCdmSessionType( | |
517 pb::CdmSessionType value) { | |
518 using OriginType = pb::CdmSessionType; | |
519 using OtherType = ::media::CdmSessionType; | |
520 switch (value) { | |
521 CASE_RETURN_OTHER(TEMPORARY_SESSION); | |
522 CASE_RETURN_OTHER(PERSISTENT_LICENSE_SESSION); | |
523 CASE_RETURN_OTHER(PERSISTENT_RELEASE_MESSAGE_SESSION); | |
524 } | |
525 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
526 } | |
527 | |
528 base::Optional<pb::CdmSessionType> ToProtoCdmSessionType( | |
529 ::media::CdmSessionType value) { | |
530 using OriginType = ::media::CdmSessionType; | |
531 using OtherType = pb::CdmSessionType; | |
532 switch (value) { | |
533 CASE_RETURN_OTHER(TEMPORARY_SESSION); | |
534 CASE_RETURN_OTHER(PERSISTENT_LICENSE_SESSION); | |
535 CASE_RETURN_OTHER(PERSISTENT_RELEASE_MESSAGE_SESSION); | |
536 } | |
537 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
538 } | |
539 | |
540 base::Optional<::media::EmeInitDataType> ToMediaEmeInitDataType( | |
541 pb::CdmCreateSessionAndGenerateRequest::EmeInitDataType value) { | |
542 using OriginType = pb::CdmCreateSessionAndGenerateRequest; | |
543 using OtherType = ::media::EmeInitDataType; | |
544 switch (value) { | |
545 CASE_RETURN_OTHER(UNKNOWN); | |
546 CASE_RETURN_OTHER(WEBM); | |
547 CASE_RETURN_OTHER(CENC); | |
548 CASE_RETURN_OTHER(KEYIDS); | |
549 } | |
550 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
551 } | |
552 | |
553 base::Optional<pb::CdmCreateSessionAndGenerateRequest::EmeInitDataType> | |
554 ToProtoMediaEmeInitDataType(::media::EmeInitDataType value) { | |
555 using OriginType = ::media::EmeInitDataType; | |
556 using OtherType = pb::CdmCreateSessionAndGenerateRequest; | |
557 switch (value) { | |
558 CASE_RETURN_OTHER(UNKNOWN); | |
559 CASE_RETURN_OTHER(WEBM); | |
560 CASE_RETURN_OTHER(CENC); | |
561 CASE_RETURN_OTHER(KEYIDS); | |
562 } | |
563 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
564 } | |
565 | |
566 base::Optional<::media::DemuxerStream::Status> ToDemuxerStreamStatus( | |
567 pb::DemuxerStreamReadUntilCallback::Status value) { | |
568 using OriginType = pb::DemuxerStreamReadUntilCallback; | |
569 using OtherType = ::media::DemuxerStream; | |
570 switch (value) { | |
571 CASE_RETURN_OTHER(kOk); | |
572 CASE_RETURN_OTHER(kAborted); | |
573 CASE_RETURN_OTHER(kConfigChanged); | |
574 } | |
575 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
576 } | |
577 | |
578 base::Optional<pb::DemuxerStreamReadUntilCallback::Status> | |
579 ToProtoDemuxerStreamStatus(::media::DemuxerStream::Status value) { | |
580 using OriginType = ::media::DemuxerStream; | |
581 using OtherType = pb::DemuxerStreamReadUntilCallback; | |
582 switch (value) { | |
583 CASE_RETURN_OTHER(kOk); | |
584 CASE_RETURN_OTHER(kAborted); | |
585 CASE_RETURN_OTHER(kConfigChanged); | |
586 } | |
587 return base::nullopt; // Not a 'default' to ensure compile-time checks. | |
588 } | |
589 | |
590 } // namespace remoting | |
591 } // namespace media | |
OLD | NEW |