| Index: services/video_capture/device_factory_media_to_mojo_adapter.cc
|
| diff --git a/services/video_capture/device_factory_media_to_mojo_adapter.cc b/services/video_capture/device_factory_media_to_mojo_adapter.cc
|
| index c39f5c90743dc4b026daad77763c847242d048a4..719df9dfd62fa55cfec38d814f669dee9461d8d7 100644
|
| --- a/services/video_capture/device_factory_media_to_mojo_adapter.cc
|
| +++ b/services/video_capture/device_factory_media_to_mojo_adapter.cc
|
| @@ -48,7 +48,23 @@ void DeviceFactoryMediaToMojoAdapter::GetSupportedFormats(
|
| const media::VideoCaptureDeviceDescriptor& device_descriptor,
|
| const GetSupportedFormatsCallback& callback) {
|
| std::vector<VideoCaptureFormat> result;
|
| - NOTIMPLEMENTED();
|
| + std::vector<media::VideoCaptureFormat> media_formats;
|
| + device_factory_->GetSupportedFormats(device_descriptor, &media_formats);
|
| + for (const auto& media_format : media_formats) {
|
| + // The Video Capture Service requires devices to deliver frames either in
|
| + // I420 or MJPEG formats.
|
| + // TODO(chfremer): Add support for Y16 format. See crbug.com/624436.
|
| + if (media_format.pixel_format != media::PIXEL_FORMAT_I420 &&
|
| + media_format.pixel_format != media::PIXEL_FORMAT_MJPEG) {
|
| + continue;
|
| + }
|
| + VideoCaptureFormat format;
|
| + format.frame_size = media_format.frame_size;
|
| + format.frame_rate = media_format.frame_rate;
|
| + if (base::ContainsValue(result, format))
|
| + continue; // Result already contains this format
|
| + result.push_back(format);
|
| + }
|
| callback.Run(std::move(result));
|
| }
|
|
|
|
|