Chromium Code Reviews| Index: media/capture/video/fake_video_capture_device_factory.cc |
| diff --git a/media/capture/video/fake_video_capture_device_factory.cc b/media/capture/video/fake_video_capture_device_factory.cc |
| index 49df8e6b962a159f5997396eb98e194e31224032..4d8db9a542a75a7babd6f93fbddb184d9e774ab5 100644 |
| --- a/media/capture/video/fake_video_capture_device_factory.cc |
| +++ b/media/capture/video/fake_video_capture_device_factory.cc |
| @@ -13,19 +13,9 @@ |
| #include "build/build_config.h" |
| #include "media/base/media_switches.h" |
| -namespace { |
| +namespace media { |
| static const size_t kDepthDeviceIndex = 1; |
| -static const char kDepthDeviceId[] = "/dev/video1"; |
| - |
| -media::VideoPixelFormat GetPixelFormatFromDeviceId( |
| - const std::string& device_id) { |
| - return (device_id == kDepthDeviceId) ? media::PIXEL_FORMAT_Y16 |
| - : media::PIXEL_FORMAT_I420; |
| -} |
| -} |
| - |
| -namespace media { |
| // Cap the frame rate command line input to reasonable values. |
| static const float kFakeCaptureMinFrameRate = 5.0f; |
| @@ -42,6 +32,17 @@ FakeVideoCaptureDeviceFactory::FakeVideoCaptureDeviceFactory() |
| USE_DEVICE_INTERNAL_BUFFERS), |
| frame_rate_(kFakeCaptureDefaultFrameRate) {} |
| +// static |
| +media::VideoPixelFormat |
| +FakeVideoCaptureDeviceFactory::GetPixelFormatFromDeviceId( |
| + const std::string& device_id) { |
| + if (device_id == "/dev/video1") |
| + return media::PIXEL_FORMAT_Y16; |
| + if (device_id == "/dev/video2") |
| + return media::PIXEL_FORMAT_MJPEG; |
| + return media::PIXEL_FORMAT_I420; |
| +} |
|
mcasas
2017/02/17 18:35:47
Yeah, make this again file static.
chfremer
2017/02/22 17:28:42
See other comment.
|
| + |
| std::unique_ptr<VideoCaptureDevice> FakeVideoCaptureDeviceFactory::CreateDevice( |
| const VideoCaptureDeviceDescriptor& device_descriptor) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| @@ -51,8 +52,18 @@ std::unique_ptr<VideoCaptureDevice> FakeVideoCaptureDeviceFactory::CreateDevice( |
| for (int n = 0; n < number_of_devices_; ++n) { |
| std::string possible_id = base::StringPrintf("/dev/video%d", n); |
| if (device_descriptor.device_id.compare(possible_id) == 0) { |
| + media::VideoPixelFormat pixel_format = |
| + GetPixelFormatFromDeviceId(possible_id); |
| + FakeVideoCaptureDeviceMaker::DeliveryMode delivery_mode = delivery_mode_; |
| + if (delivery_mode == FakeVideoCaptureDeviceMaker::DeliveryMode:: |
| + USE_CLIENT_PROVIDED_BUFFERS && |
| + pixel_format == media::PIXEL_FORMAT_MJPEG) { |
| + // Incompatible options. Fall back to using internal buffers. |
| + delivery_mode = FakeVideoCaptureDeviceMaker::DeliveryMode:: |
| + USE_DEVICE_INTERNAL_BUFFERS; |
| + } |
| return FakeVideoCaptureDeviceMaker::MakeInstance( |
| - GetPixelFormatFromDeviceId(possible_id), delivery_mode_, frame_rate_); |
| + pixel_format, delivery_mode, frame_rate_); |
| } |
| } |
| return std::unique_ptr<VideoCaptureDevice>(); |