Index: content/browser/renderer_host/media/media_stream_device_settings.cc |
diff --git a/content/browser/renderer_host/media/media_stream_device_settings.cc b/content/browser/renderer_host/media/media_stream_device_settings.cc |
index 85c634ed0d7d9489f5aaf7cacee8748f56ef7390..b1eb952657d4b539ece3761a36d8ab97f9be49d0 100644 |
--- a/content/browser/renderer_host/media/media_stream_device_settings.cc |
+++ b/content/browser/renderer_host/media/media_stream_device_settings.cc |
@@ -124,6 +124,16 @@ void MediaStreamDeviceSettings::AvailableDevices( |
} |
} |
} |
+ if (num_media_requests != devices_to_use.size()) { |
+ // Not all requested device types were opened. This happens if all |
+ // video capture devices are already opened, |in_use| isn't set for |
+ // audio devices. Allow the first video capture device in the list to be |
+ // opened for this user too. |
+ DCHECK_NE(request->options.video_option, StreamOptions::kNoCamera); |
+ StreamDeviceInfoArray device_array = (request->devices[kVideoCapture]); |
+ devices_to_use.push_back(*(device_array.begin())); |
+ } |
+ |
// Post result and delete request. |
requester_->DevicesAccepted(label, devices_to_use); |
requests_.erase(request_it); |