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

Unified Diff: services/video_capture/mojo_media_conversions.cc

Issue 2378943002: Let clients interact with VideoCaptureDeviceClient instead of VideoCaptureDevice (Closed)
Patch Set: mcasas 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/mojo_media_conversions.cc
diff --git a/services/video_capture/mojo_media_conversions.cc b/services/video_capture/mojo_media_conversions.cc
index 276baf5aac2e4621eed976b69cdd2ca4418ec96a..3c85d7e1604cc9487d5f715dae7ed6cfe237e264 100644
--- a/services/video_capture/mojo_media_conversions.cc
+++ b/services/video_capture/mojo_media_conversions.cc
@@ -65,4 +65,106 @@ media::PowerLineFrequency ConvertFromMojoToMedia(
return media::PowerLineFrequency::FREQUENCY_DEFAULT;
}
+media::VideoCaptureDeviceDescriptor ConvertFromMojoToMedia(
+ mojom::VideoCaptureDeviceDescriptorPtr descriptor) {
+ return media::VideoCaptureDeviceDescriptor(
+ descriptor->display_name, descriptor->device_id, descriptor->model_id,
+ ConvertFromMojoToMedia(descriptor->capture_api),
+ ConvertFromMojoToMedia(descriptor->transport_type));
+}
+
+media::VideoCaptureApi ConvertFromMojoToMedia(mojom::VideoCaptureApi api) {
+ switch (api) {
+ case mojom::VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE:
+ return media::VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
+ case mojom::VideoCaptureApi::WIN_MEDIA_FOUNDATION:
+ return media::VideoCaptureApi::WIN_MEDIA_FOUNDATION;
+ case mojom::VideoCaptureApi::WIN_DIRECT_SHOW:
+ return media::VideoCaptureApi::WIN_DIRECT_SHOW;
+ case mojom::VideoCaptureApi::MACOSX_AVFOUNDATION:
+ return media::VideoCaptureApi::MACOSX_AVFOUNDATION;
+ case mojom::VideoCaptureApi::MACOSX_DECKLINK:
+ return media::VideoCaptureApi::MACOSX_DECKLINK;
+ case mojom::VideoCaptureApi::ANDROID_API1:
+ return media::VideoCaptureApi::ANDROID_API1;
+ case mojom::VideoCaptureApi::ANDROID_API2_LEGACY:
+ return media::VideoCaptureApi::ANDROID_API2_LEGACY;
+ case mojom::VideoCaptureApi::ANDROID_API2_FULL:
+ return media::VideoCaptureApi::ANDROID_API2_FULL;
+ case mojom::VideoCaptureApi::ANDROID_API2_LIMITED:
+ return media::VideoCaptureApi::ANDROID_API2_LIMITED;
+ case mojom::VideoCaptureApi::ANDROID_TANGO:
+ return media::VideoCaptureApi::ANDROID_TANGO;
+ case mojom::VideoCaptureApi::UNKNOWN:
+ return media::VideoCaptureApi::UNKNOWN;
+ }
+ NOTREACHED();
+ return media::VideoCaptureApi::UNKNOWN;
+}
+
+media::VideoCaptureTransportType ConvertFromMojoToMedia(
+ mojom::VideoCaptureTransportType transport_type) {
+ switch (transport_type) {
+ case mojom::VideoCaptureTransportType::MACOSX_USB_OR_BUILT_IN:
+ return media::VideoCaptureTransportType::MACOSX_USB_OR_BUILT_IN;
+ case mojom::VideoCaptureTransportType::OTHER_TRANSPORT:
+ return media::VideoCaptureTransportType::OTHER_TRANSPORT;
+ }
+ NOTREACHED();
+ return media::VideoCaptureTransportType::OTHER_TRANSPORT;
+}
+
+mojom::VideoCaptureDeviceDescriptorPtr ConvertFromMediaToMojo(
+ const media::VideoCaptureDeviceDescriptor& descriptor) {
+ mojom::VideoCaptureDeviceDescriptorPtr result =
+ mojom::VideoCaptureDeviceDescriptor::New();
+ result->display_name = descriptor.display_name;
+ result->device_id = descriptor.device_id;
+ result->model_id = descriptor.model_id;
+ result->capture_api = ConvertFromMediaToMojo(descriptor.capture_api);
+ result->transport_type = ConvertFromMediaToMojo(descriptor.transport_type);
+ return result;
+}
+
+mojom::VideoCaptureApi ConvertFromMediaToMojo(media::VideoCaptureApi api) {
+ switch (api) {
+ case media::VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE:
+ return mojom::VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
+ case media::VideoCaptureApi::WIN_MEDIA_FOUNDATION:
+ return mojom::VideoCaptureApi::WIN_MEDIA_FOUNDATION;
+ case media::VideoCaptureApi::WIN_DIRECT_SHOW:
+ return mojom::VideoCaptureApi::WIN_DIRECT_SHOW;
+ case media::VideoCaptureApi::MACOSX_AVFOUNDATION:
+ return mojom::VideoCaptureApi::MACOSX_AVFOUNDATION;
+ case media::VideoCaptureApi::MACOSX_DECKLINK:
+ return mojom::VideoCaptureApi::MACOSX_DECKLINK;
+ case media::VideoCaptureApi::ANDROID_API1:
+ return mojom::VideoCaptureApi::ANDROID_API1;
+ case media::VideoCaptureApi::ANDROID_API2_LEGACY:
+ return mojom::VideoCaptureApi::ANDROID_API2_LEGACY;
+ case media::VideoCaptureApi::ANDROID_API2_FULL:
+ return mojom::VideoCaptureApi::ANDROID_API2_FULL;
+ case media::VideoCaptureApi::ANDROID_API2_LIMITED:
+ return mojom::VideoCaptureApi::ANDROID_API2_LIMITED;
+ case media::VideoCaptureApi::ANDROID_TANGO:
+ return mojom::VideoCaptureApi::ANDROID_TANGO;
+ case media::VideoCaptureApi::UNKNOWN:
+ return mojom::VideoCaptureApi::UNKNOWN;
+ }
+ NOTREACHED();
+ return mojom::VideoCaptureApi::UNKNOWN;
+}
+
+mojom::VideoCaptureTransportType ConvertFromMediaToMojo(
+ media::VideoCaptureTransportType transport_type) {
+ switch (transport_type) {
+ case media::VideoCaptureTransportType::MACOSX_USB_OR_BUILT_IN:
+ return mojom::VideoCaptureTransportType::MACOSX_USB_OR_BUILT_IN;
+ case media::VideoCaptureTransportType::OTHER_TRANSPORT:
+ return mojom::VideoCaptureTransportType::OTHER_TRANSPORT;
+ }
+ NOTREACHED();
+ return mojom::VideoCaptureTransportType::OTHER_TRANSPORT;
+}
+
} // namespace video_capture

Powered by Google App Engine
This is Rietveld 408576698