Index: content/renderer/media/user_media_client_impl.cc |
diff --git a/content/renderer/media/user_media_client_impl.cc b/content/renderer/media/user_media_client_impl.cc |
index 100cb5368675761e28b8168000a964df5c0f47ee..cb5d7bea7d4721eac62b9bff3df0c7986ece2f9f 100644 |
--- a/content/renderer/media/user_media_client_impl.cc |
+++ b/content/renderer/media/user_media_client_impl.cc |
@@ -31,6 +31,7 @@ |
#include "content/renderer/media/webrtc_logging.h" |
#include "content/renderer/media/webrtc_uma_histograms.h" |
#include "content/renderer/render_thread_impl.h" |
+#include "media/audio/audio_device_description.h" |
#include "media/capture/video_capture_types.h" |
#include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
#include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" |
@@ -85,7 +86,7 @@ bool PickDeviceId(const blink::WebMediaConstraints& constraints, |
const MediaDeviceInfoArray& device_infos, |
std::string* device_id) { |
DCHECK(!constraints.IsNull()); |
- DCHECK(device_id->empty()); |
+ DCHECK(media::AudioDeviceDescription::IsDefaultDevice(*device_id)); |
if (constraints.Basic().device_id.Exact().size() > 1) { |
LOG(ERROR) << "Only one required device ID is supported"; |
@@ -398,6 +399,12 @@ void UserMediaClientImpl::MaybeProcessNextRequestInfo() { |
current_request_info_->request().AudioConstraints(), |
¤t_request_info_->stream_controls()->audio, |
&request_audio_input_devices); |
+ // Explicitly initialize the requested device ID to the default. |
+ if (IsDeviceSource( |
+ current_request_info_->stream_controls()->audio.stream_source)) { |
+ current_request_info_->stream_controls()->audio.device_id = |
+ std::string(media::AudioDeviceDescription::kDefaultDeviceId); |
+ } |
CopyHotwordAndLocalEchoToStreamControls( |
current_request_info_->request().AudioConstraints(), |
current_request_info_->stream_controls()); |