Index: media/mojo/interfaces/media_types_typemap_traits.h |
diff --git a/media/mojo/interfaces/media_types_typemap_traits.h b/media/mojo/interfaces/media_types_typemap_traits.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..25094d36d8f7411834396613e2003506097e6e0e |
--- /dev/null |
+++ b/media/mojo/interfaces/media_types_typemap_traits.h |
@@ -0,0 +1,168 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MEDIA_MOJO_INTERFACES_MEDIA_TYPES_TYPEMAP_TRAITS_H_ |
+#define MEDIA_MOJO_INTERFACES_MEDIA_TYPES_TYPEMAP_TRAITS_H_ |
+ |
+#include "media/base/video_types.h" |
+#include "media/mojo/interfaces/media_types.mojom.h" |
+ |
+namespace mojo { |
+ |
+template <> |
+struct EnumTraits<media::mojom::VideoPixelFormat, media::VideoPixelFormat> { |
+ static media::mojom::VideoPixelFormat ToMojom(media::VideoPixelFormat input) { |
+ switch (input) { |
+ case media::PIXEL_FORMAT_UNKNOWN: |
+ return media::mojom::VideoPixelFormat::UNKNOWN; |
+ case media::PIXEL_FORMAT_I420: |
+ return media::mojom::VideoPixelFormat::I420; |
+ case media::PIXEL_FORMAT_YV12: |
+ return media::mojom::VideoPixelFormat::YV12; |
+ case media::PIXEL_FORMAT_YV16: |
+ return media::mojom::VideoPixelFormat::YV16; |
+ case media::PIXEL_FORMAT_YV12A: |
+ return media::mojom::VideoPixelFormat::YV12A; |
+ case media::PIXEL_FORMAT_YV24: |
+ return media::mojom::VideoPixelFormat::YV24; |
+ case media::PIXEL_FORMAT_NV12: |
+ return media::mojom::VideoPixelFormat::NV12; |
+ case media::PIXEL_FORMAT_NV21: |
+ return media::mojom::VideoPixelFormat::NV21; |
+ case media::PIXEL_FORMAT_UYVY: |
+ return media::mojom::VideoPixelFormat::UYVY; |
+ case media::PIXEL_FORMAT_YUY2: |
+ return media::mojom::VideoPixelFormat::YUY2; |
+ case media::PIXEL_FORMAT_ARGB: |
+ return media::mojom::VideoPixelFormat::ARGB; |
+ case media::PIXEL_FORMAT_XRGB: |
+ return media::mojom::VideoPixelFormat::XRGB; |
+ case media::PIXEL_FORMAT_RGB24: |
+ return media::mojom::VideoPixelFormat::RGB24; |
+ case media::PIXEL_FORMAT_RGB32: |
+ return media::mojom::VideoPixelFormat::RGB32; |
+ case media::PIXEL_FORMAT_MJPEG: |
+ return media::mojom::VideoPixelFormat::MJPEG; |
+ case media::PIXEL_FORMAT_MT21: |
+ return media::mojom::VideoPixelFormat::MT21; |
+ case media::PIXEL_FORMAT_YUV420P9: |
+ return media::mojom::VideoPixelFormat::YUV420P9; |
+ case media::PIXEL_FORMAT_YUV420P10: |
+ return media::mojom::VideoPixelFormat::YUV420P10; |
+ case media::PIXEL_FORMAT_YUV422P9: |
+ return media::mojom::VideoPixelFormat::YUV422P9; |
+ case media::PIXEL_FORMAT_YUV422P10: |
+ return media::mojom::VideoPixelFormat::YUV422P10; |
+ case media::PIXEL_FORMAT_YUV444P9: |
+ return media::mojom::VideoPixelFormat::YUV444P9; |
+ case media::PIXEL_FORMAT_YUV444P10: |
+ return media::mojom::VideoPixelFormat::YUV444P10; |
+ case media::PIXEL_FORMAT_YUV420P12: |
+ return media::mojom::VideoPixelFormat::YUV420P12; |
+ case media::PIXEL_FORMAT_YUV422P12: |
+ return media::mojom::VideoPixelFormat::YUV422P12; |
+ case media::PIXEL_FORMAT_YUV444P12: |
+ return media::mojom::VideoPixelFormat::YUV444P12; |
+ case media::PIXEL_FORMAT_Y8: |
+ return media::mojom::VideoPixelFormat::Y8; |
+ case media::PIXEL_FORMAT_Y16: |
+ return media::mojom::VideoPixelFormat::Y16; |
+ } |
+ NOTREACHED(); |
+ return media::mojom::VideoPixelFormat::UNKNOWN; |
+ } |
+ |
+ static bool FromMojom(media::mojom::VideoPixelFormat input, |
+ media::VideoPixelFormat* output) { |
+ switch (input) { |
+ case media::mojom::VideoPixelFormat::UNKNOWN: |
+ *output = media::PIXEL_FORMAT_UNKNOWN; |
+ return true; |
+ case media::mojom::VideoPixelFormat::I420: |
+ *output = media::PIXEL_FORMAT_I420; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YV12: |
+ *output = media::PIXEL_FORMAT_YV12; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YV16: |
+ *output = media::PIXEL_FORMAT_YV16; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YV12A: |
+ *output = media::PIXEL_FORMAT_YV12A; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YV24: |
+ *output = media::PIXEL_FORMAT_YV24; |
+ return true; |
+ case media::mojom::VideoPixelFormat::NV12: |
+ *output = media::PIXEL_FORMAT_NV12; |
+ return true; |
+ case media::mojom::VideoPixelFormat::NV21: |
+ *output = media::PIXEL_FORMAT_NV21; |
+ return true; |
+ case media::mojom::VideoPixelFormat::UYVY: |
+ *output = media::PIXEL_FORMAT_UYVY; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUY2: |
+ *output = media::PIXEL_FORMAT_YUY2; |
+ return true; |
+ case media::mojom::VideoPixelFormat::ARGB: |
+ *output = media::PIXEL_FORMAT_ARGB; |
+ return true; |
+ case media::mojom::VideoPixelFormat::XRGB: |
+ *output = media::PIXEL_FORMAT_XRGB; |
+ return true; |
+ case media::mojom::VideoPixelFormat::RGB24: |
+ *output = media::PIXEL_FORMAT_RGB24; |
+ return true; |
+ case media::mojom::VideoPixelFormat::RGB32: |
+ *output = media::PIXEL_FORMAT_RGB32; |
+ return true; |
+ case media::mojom::VideoPixelFormat::MJPEG: |
+ *output = media::PIXEL_FORMAT_MJPEG; |
+ return true; |
+ case media::mojom::VideoPixelFormat::MT21: |
+ *output = media::PIXEL_FORMAT_MT21; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV420P9: |
+ *output = media::PIXEL_FORMAT_YUV420P9; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV420P10: |
+ *output = media::PIXEL_FORMAT_YUV420P10; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV422P9: |
+ *output = media::PIXEL_FORMAT_YUV422P9; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV422P10: |
+ *output = media::PIXEL_FORMAT_YUV422P10; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV444P9: |
+ *output = media::PIXEL_FORMAT_YUV444P9; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV444P10: |
+ *output = media::PIXEL_FORMAT_YUV444P10; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV420P12: |
+ *output = media::PIXEL_FORMAT_YUV420P12; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV422P12: |
+ *output = media::PIXEL_FORMAT_YUV422P12; |
+ return true; |
+ case media::mojom::VideoPixelFormat::YUV444P12: |
+ *output = media::PIXEL_FORMAT_YUV444P12; |
+ return true; |
+ case media::mojom::VideoPixelFormat::Y8: |
+ *output = media::PIXEL_FORMAT_Y8; |
+ return true; |
+ case media::mojom::VideoPixelFormat::Y16: |
+ *output = media::PIXEL_FORMAT_Y16; |
+ return true; |
+ } |
+ NOTREACHED(); |
+ return false; |
+ } |
+}; |
+ |
+} // namespace mojo |
+ |
+#endif // MEDIA_MOJO_INTERFACES_MEDIA_TYPES_TYPEMAP_TRAITS_H_ |