Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Unified Diff: components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc

Issue 2892863002: ArcBridge: Add VideoEncodeAccelerator implementation. (Closed)
Patch Set: add missing public_dep to the typemap file. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/arc/video_accelerator/video_encode_accelerator_struct_traits.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc
diff --git a/components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc b/components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc
new file mode 100644
index 0000000000000000000000000000000000000000..32a573739fa8acc5ecac69c3a12c0c485059cbf3
--- /dev/null
+++ b/components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc
@@ -0,0 +1,163 @@
+// Copyright 2017 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.
+
+#include "components/arc/video_accelerator/video_encode_accelerator_struct_traits.h"
+
+namespace mojo {
+
+// Make sure values in arc::mojom::VideoEncodeAccelerator::Error and
+// media::VideoEncodeAccelerator::Error match.
+#define CHECK_ERROR_ENUM(value) \
+ static_assert( \
+ static_cast<int>(arc::mojom::VideoEncodeAccelerator::Error::value) == \
+ media::VideoEncodeAccelerator::Error::value, \
+ "enum ##value mismatch")
+
+CHECK_ERROR_ENUM(kIllegalStateError);
+CHECK_ERROR_ENUM(kInvalidArgumentError);
+CHECK_ERROR_ENUM(kPlatformFailureError);
+CHECK_ERROR_ENUM(kErrorMax);
+
+#undef CHECK_ERROR_ENUM
+
+// static
+arc::mojom::VideoEncodeAccelerator::Error
+EnumTraits<arc::mojom::VideoEncodeAccelerator::Error,
+ media::VideoEncodeAccelerator::Error>::
+ ToMojom(media::VideoEncodeAccelerator::Error input) {
+ return static_cast<arc::mojom::VideoEncodeAccelerator::Error>(input);
+}
+
+// static
+bool EnumTraits<arc::mojom::VideoEncodeAccelerator::Error,
+ media::VideoEncodeAccelerator::Error>::
+ FromMojom(arc::mojom::VideoEncodeAccelerator::Error input,
+ media::VideoEncodeAccelerator::Error* output) {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+// Make sure values in arc::mojom::VideoPixelFormat match to the values in
+// media::VideoPixelFormat. The former is a subset of the later.
+#define CHECK_PIXEL_FORMAT_ENUM(value) \
+ static_assert( \
+ static_cast<int>(arc::mojom::VideoPixelFormat::value) == media::value, \
+ "enum ##value mismatch")
+
+CHECK_PIXEL_FORMAT_ENUM(PIXEL_FORMAT_I420);
+
+#undef CHECK_PXIEL_FORMAT_ENUM
+
+// static
+arc::mojom::VideoPixelFormat
+EnumTraits<arc::mojom::VideoPixelFormat, media::VideoPixelFormat>::ToMojom(
+ media::VideoPixelFormat input) {
+ NOTIMPLEMENTED();
+ return arc::mojom::VideoPixelFormat::PIXEL_FORMAT_I420;
+}
+
+// static
+bool EnumTraits<arc::mojom::VideoPixelFormat, media::VideoPixelFormat>::
+ FromMojom(arc::mojom::VideoPixelFormat input,
+ media::VideoPixelFormat* output) {
+ switch (input) {
+ case arc::mojom::VideoPixelFormat::PIXEL_FORMAT_I420:
+ *output = static_cast<media::VideoPixelFormat>(input);
+ return true;
+ default:
+ DLOG(ERROR) << "Unknown VideoPixelFormat: " << input;
+ return false;
+ }
+}
+
+// Make sure values in arc::mojom::VideoCodecProfile match to the values in
+// media::VideoCodecProfile.
+#define CHECK_PROFILE_ENUM(value) \
+ static_assert( \
+ static_cast<int>(arc::mojom::VideoCodecProfile::value) == media::value, \
+ "enum ##value mismatch")
+
+CHECK_PROFILE_ENUM(VIDEO_CODEC_PROFILE_UNKNOWN);
+CHECK_PROFILE_ENUM(VIDEO_CODEC_PROFILE_MIN);
+CHECK_PROFILE_ENUM(H264PROFILE_MIN);
+CHECK_PROFILE_ENUM(H264PROFILE_BASELINE);
+CHECK_PROFILE_ENUM(H264PROFILE_MAIN);
+CHECK_PROFILE_ENUM(H264PROFILE_EXTENDED);
+CHECK_PROFILE_ENUM(H264PROFILE_HIGH);
+CHECK_PROFILE_ENUM(H264PROFILE_HIGH10PROFILE);
+CHECK_PROFILE_ENUM(H264PROFILE_HIGH422PROFILE);
+CHECK_PROFILE_ENUM(H264PROFILE_HIGH444PREDICTIVEPROFILE);
+CHECK_PROFILE_ENUM(H264PROFILE_SCALABLEBASELINE);
+CHECK_PROFILE_ENUM(H264PROFILE_SCALABLEHIGH);
+CHECK_PROFILE_ENUM(H264PROFILE_STEREOHIGH);
+CHECK_PROFILE_ENUM(H264PROFILE_MULTIVIEWHIGH);
+CHECK_PROFILE_ENUM(H264PROFILE_MAX);
+CHECK_PROFILE_ENUM(VP8PROFILE_MIN);
+CHECK_PROFILE_ENUM(VP8PROFILE_ANY);
+CHECK_PROFILE_ENUM(VP8PROFILE_MAX);
+CHECK_PROFILE_ENUM(VP9PROFILE_MIN);
+CHECK_PROFILE_ENUM(VP9PROFILE_PROFILE0);
+CHECK_PROFILE_ENUM(VP9PROFILE_PROFILE1);
+CHECK_PROFILE_ENUM(VP9PROFILE_PROFILE2);
+CHECK_PROFILE_ENUM(VP9PROFILE_PROFILE3);
+CHECK_PROFILE_ENUM(VP9PROFILE_MAX);
+CHECK_PROFILE_ENUM(HEVCPROFILE_MIN);
+CHECK_PROFILE_ENUM(HEVCPROFILE_MAIN);
+CHECK_PROFILE_ENUM(HEVCPROFILE_MAIN10);
+CHECK_PROFILE_ENUM(HEVCPROFILE_MAIN_STILL_PICTURE);
+CHECK_PROFILE_ENUM(HEVCPROFILE_MAX);
+CHECK_PROFILE_ENUM(DOLBYVISION_MIN);
+CHECK_PROFILE_ENUM(DOLBYVISION_PROFILE0);
+CHECK_PROFILE_ENUM(DOLBYVISION_PROFILE4);
+CHECK_PROFILE_ENUM(DOLBYVISION_PROFILE5);
+CHECK_PROFILE_ENUM(DOLBYVISION_PROFILE7);
+CHECK_PROFILE_ENUM(DOLBYVISION_MAX);
+CHECK_PROFILE_ENUM(VIDEO_CODEC_PROFILE_MAX);
+
+#undef CHECK_PROFILE_ENUM
+
+// static
+arc::mojom::VideoCodecProfile
+EnumTraits<arc::mojom::VideoCodecProfile, media::VideoCodecProfile>::ToMojom(
+ media::VideoCodecProfile input) {
+ return static_cast<arc::mojom::VideoCodecProfile>(input);
+}
+
+// static
+bool EnumTraits<arc::mojom::VideoCodecProfile, media::VideoCodecProfile>::
+ FromMojom(arc::mojom::VideoCodecProfile input,
+ media::VideoCodecProfile* output) {
+ switch (input) {
+ case arc::mojom::VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_BASELINE:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_MAIN:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_EXTENDED:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_HIGH:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_HIGH10PROFILE:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_HIGH422PROFILE:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_HIGH444PREDICTIVEPROFILE:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_SCALABLEBASELINE:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_SCALABLEHIGH:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_STEREOHIGH:
+ case arc::mojom::VideoCodecProfile::H264PROFILE_MULTIVIEWHIGH:
+ case arc::mojom::VideoCodecProfile::VP8PROFILE_ANY:
+ case arc::mojom::VideoCodecProfile::VP9PROFILE_PROFILE0:
+ case arc::mojom::VideoCodecProfile::VP9PROFILE_PROFILE1:
+ case arc::mojom::VideoCodecProfile::VP9PROFILE_PROFILE2:
+ case arc::mojom::VideoCodecProfile::VP9PROFILE_PROFILE3:
+ case arc::mojom::VideoCodecProfile::HEVCPROFILE_MAIN:
+ case arc::mojom::VideoCodecProfile::HEVCPROFILE_MAIN10:
+ case arc::mojom::VideoCodecProfile::HEVCPROFILE_MAIN_STILL_PICTURE:
+ case arc::mojom::VideoCodecProfile::DOLBYVISION_PROFILE0:
+ case arc::mojom::VideoCodecProfile::DOLBYVISION_PROFILE4:
+ case arc::mojom::VideoCodecProfile::DOLBYVISION_PROFILE5:
+ case arc::mojom::VideoCodecProfile::DOLBYVISION_PROFILE7:
+ *output = static_cast<media::VideoCodecProfile>(input);
+ return true;
+ }
+ DLOG(ERROR) << "unknown profile: " << input;
+ return false;
+}
+
+} // namespace mojo
« no previous file with comments | « components/arc/video_accelerator/video_encode_accelerator_struct_traits.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698