Chromium Code Reviews| Index: content/browser/renderer_host/media/media_stream_manager.cc |
| diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc |
| index 029b0638c4e3ced5da47532ccb1c32e5b6504b51..f69ea75ace0173281c57161328cd94745a13e741 100644 |
| --- a/content/browser/renderer_host/media/media_stream_manager.cc |
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc |
| @@ -218,6 +218,27 @@ MediaStreamDevices ConvertToMediaStreamDevices( |
| return devices; |
| } |
| +bool FindFirstDeviceIdForVideoKind(const MediaDeviceInfoArray& devices, |
| + VideoKind video_kind, |
| + VideoCaptureManager* video_capture_manager, |
| + std::string* device_id) { |
| + for (const auto& device : devices) { |
| + media::VideoCaptureFormats formats; |
| + video_capture_manager->GetDeviceSupportedFormats(device.device_id, |
| + &formats); |
| + for (const auto& format : formats) { |
| + if ((video_kind == VIDEO_KIND_DEPTH && |
| + format.pixel_format == media::PIXEL_FORMAT_Y16) || |
| + (video_kind == VIDEO_KIND_COLOR && |
| + format.pixel_format != media::PIXEL_FORMAT_Y16)) { |
| + *device_id = device.device_id; |
| + return true; |
| + } |
| + } |
| + } |
| + return false; |
| +} |
| + |
| } // namespace |
| @@ -808,11 +829,17 @@ bool MediaStreamManager::GetRequestedDeviceCaptureId( |
| const DeviceRequest* request, |
| MediaStreamType type, |
| const MediaDeviceInfoArray& devices, |
| - std::string* device_id) const { |
| + std::string* device_id) { |
| if (type == MEDIA_DEVICE_AUDIO_CAPTURE) { |
| return PickDeviceId(request->salt, request->security_origin, |
| request->controls.audio, devices, device_id); |
| } else if (type == MEDIA_DEVICE_VIDEO_CAPTURE) { |
| + if (request->controls.video.device_id.empty() && |
|
Guido Urdaneta
2017/02/07 10:26:03
There is a CL (http://crrev.com/2669243004/) close
aleksandar.stojiljkovic
2017/02/07 11:33:49
Thanks. Looks good.
|
| + request->controls.video_kind != VIDEO_KIND_NO_CONSTRAINT) { |
| + return FindFirstDeviceIdForVideoKind(devices, |
| + request->controls.video_kind, |
| + video_capture_manager(), device_id); |
| + } |
| return PickDeviceId(request->salt, request->security_origin, |
| request->controls.video, devices, device_id); |
| } else { |