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..4c98218904c0ea8bb169226633ea043c77a07f58 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. |
+ if (media_format.pixel_format != media::PIXEL_FORMAT_I420 && |
+ media_format.pixel_format != media::PIXEL_FORMAT_MJPEG) |
mcasas
2016/11/10 01:21:25
nit: {} here.
chfremer
2016/11/10 04:41:35
Done.
|
+ continue; |
+ VideoCaptureFormat format; |
+ format.frame_size = media_format.frame_size; |
+ format.frame_rate = media_format.frame_rate; |
+ if (std::find(std::begin(result), std::end(result), format) != |
+ std::end(result)) { |
mcasas
2016/11/10 01:21:25
Oops, I missed that here you could use
base::Cont
chfremer
2016/11/10 04:41:35
Done.
|
+ continue; // Result already contains this format |
+ } |
+ result.push_back(format); |
+ } |
callback.Run(std::move(result)); |
} |