Index: media/capture/video/linux/video_capture_device_factory_linux.cc |
diff --git a/media/capture/video/linux/video_capture_device_factory_linux.cc b/media/capture/video/linux/video_capture_device_factory_linux.cc |
index abe433706718f047473a27d28e46c72a93d7887b..14a1ca12e6b4c5679e1ed4efd5fc3df4b9aae3a2 100644 |
--- a/media/capture/video/linux/video_capture_device_factory_linux.cc |
+++ b/media/capture/video/linux/video_capture_device_factory_linux.cc |
@@ -22,12 +22,22 @@ |
#endif |
#if defined(OS_CHROMEOS) |
+#include "base/lazy_instance.h" |
+#include "media/capture/video/linux/camera_facing_chromeos.h" |
#include "media/capture/video/linux/video_capture_device_chromeos.h" |
#endif |
#include "media/capture/video/linux/video_capture_device_linux.h" |
namespace media { |
+namespace { |
+ |
+#if defined(OS_CHROMEOS) |
+base::LazyInstance<media::CameraFacingChromeOS>::Leaky g_camera_facing_helper = |
+ LAZY_INSTANCE_INITIALIZER; |
+#endif |
+} |
+ |
// USB VID and PID are both 4 bytes long. |
static const size_t kVidPidSize = 4; |
@@ -205,9 +215,17 @@ void VideoCaptureDeviceFactoryLinux::GetDeviceDescriptors( |
!(cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)) && |
HasUsableFormats(fd.get(), cap.capabilities)) { |
const std::string model_id = GetDeviceModelId(unique_id); |
+#if defined(OS_CHROMEOS) |
+ device_descriptors->emplace_back( |
+ reinterpret_cast<char*>(cap.card), unique_id, model_id, |
+ VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE, |
+ VideoCaptureTransportType::OTHER_TRANSPORT, |
+ g_camera_facing_helper.Get().GetCameraFacing(unique_id, model_id)); |
+#else |
device_descriptors->emplace_back( |
reinterpret_cast<char*>(cap.card), unique_id, model_id, |
VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE); |
+#endif |
} |
} |
} |