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

Unified Diff: services/video_capture/public/interfaces/video_capture_format_traits.cc

Issue 2379253003: Video Capture Service: typemap video_capture's and media's VideoCaptureFormat (Closed)
Patch Set: dcheng@s comments Created 4 years, 2 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
Index: services/video_capture/public/interfaces/video_capture_format_traits.cc
diff --git a/services/video_capture/public/interfaces/video_capture_format_traits.cc b/services/video_capture/public/interfaces/video_capture_format_traits.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7ab8a9e65763e9e55be1986ab525b7ec3a17e25a
--- /dev/null
+++ b/services/video_capture/public/interfaces/video_capture_format_traits.cc
@@ -0,0 +1,84 @@
+// 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.
+
+#include "services/video_capture/public/interfaces/video_capture_format_traits.h"
+
+#include "ui/gfx/geometry/mojo/geometry.mojom.h"
+#include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
+
+namespace mojo {
+
+// static
+gfx::Size StructTraits<
+ video_capture::mojom::VideoCaptureFormatDataView,
+ media::VideoCaptureFormat>::frame_size(const media::VideoCaptureFormat& r) {
chfremer 2016/10/03 16:26:59 Why "r"? Even though this may come from one of the
mcasas 2016/10/03 21:19:07 Done.
+ return gfx::Size(r.frame_size.width(), r.frame_size.height());
+}
+
+// static
+float StructTraits<
+ video_capture::mojom::VideoCaptureFormatDataView,
+ media::VideoCaptureFormat>::frame_rate(const media::VideoCaptureFormat& r) {
+ return r.frame_rate;
+}
+
+// static
+media::mojom::VideoFormat StructTraits<
+ video_capture::mojom::VideoCaptureFormatDataView,
+ media::VideoCaptureFormat>::pixel_format(const media::VideoCaptureFormat&
+ r) {
+ return media::mojom::VideoFormat(r.pixel_format);
+}
+
+// static
+bool StructTraits<video_capture::mojom::VideoCaptureFormatDataView,
+ media::VideoCaptureFormat>::
+ Read(video_capture::mojom::VideoCaptureFormatDataView data,
+ media::VideoCaptureFormat* out) {
+ if (!data.ReadFrameSize(&out->frame_size))
+ return false;
+ out->frame_rate = data.frame_rate();
+
+ // Since there are static_asserts in place in
+ // media/mojo/common/media_type_converters.cc to guarantee equality of the
+ // underlying representations, we can simply static_cast to convert.
+ out->pixel_format =
+ static_cast<media::VideoPixelFormat>(data.pixel_format());
+ if (!data.ReadPixelStorage(&out->pixel_storage))
+ return false;
+ return true;
+}
+
+//static
+video_capture::mojom::VideoPixelStorage
+EnumTraits<video_capture::mojom::VideoPixelStorage, media::VideoPixelStorage>::
+ ToMojom(media::VideoPixelStorage video_pixel_storage) {
+ switch (video_pixel_storage) {
+ case media::PIXEL_STORAGE_CPU:
+ return video_capture::mojom::VideoPixelStorage::CPU;
+ case media::PIXEL_STORAGE_GPUMEMORYBUFFER:
+ return video_capture::mojom::VideoPixelStorage::GPUMEMORYBUFFER;
+ }
+ NOTREACHED();
+ return video_capture::mojom::VideoPixelStorage::CPU;
+}
+
+//static
+bool EnumTraits<video_capture::mojom::VideoPixelStorage,
+ media::VideoPixelStorage>::
+ FromMojom(video_capture::mojom::VideoPixelStorage input,
+ media::VideoPixelStorage* out) {
+ switch (input) {
+ case video_capture::mojom::VideoPixelStorage::CPU:
+ *out = media::PIXEL_STORAGE_CPU;
+ return true;
+ case video_capture::mojom::VideoPixelStorage::GPUMEMORYBUFFER:
+ *out = media::PIXEL_STORAGE_GPUMEMORYBUFFER;
+ return true;
+ }
+ NOTREACHED();
+ return false;
+}
+
+} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698