Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1519)

Unified Diff: content/browser/renderer_host/media/audio_input_renderer_host.cc

Issue 229573003: Adds more logging for audio input issues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/renderer/media/webrtc_audio_capturer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/media/audio_input_renderer_host.cc
diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.cc b/content/browser/renderer_host/media/audio_input_renderer_host.cc
index ca5d0683d209a56a187430639fc1a85b811f2fd4..efddd6ec1cae8cd09ea9aaec7b1db63af6a5152f 100644
--- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
@@ -182,9 +182,20 @@ void AudioInputRendererHost::DoHandleError(
media::AudioInputController* controller,
media::AudioInputController::ErrorCode error_code) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ // Log all errors even it is ignored later.
MediaStreamManager::SendMessageToNativeLog(
base::StringPrintf("AudioInputController error: %d", error_code));
+ // This is a fix for crbug.com/357501. The error can be triggered when closing
+ // the lid on Macs, which causes more problems than it fixes.
+ // Also, in crbug.com/357569, the goal is to remove usage of the error since
+ // it was added to solve a crash on Windows that no longer can be reproduced.
+ if (error_code == media::AudioInputController::NO_DATA_ERROR) {
+ DVLOG(1) << "AudioInputRendererHost@" << this << "::DoHandleError: "
+ << "NO_DATA_ERROR ignored.";
+ return;
+ }
+
AudioEntry* entry = LookupByController(controller);
if (!entry)
return;
@@ -237,7 +248,9 @@ void AudioInputRendererHost::OnCreateStream(
}
// Check if we have the permission to open the device and which device to use.
- std::string device_id = media::AudioManagerBase::kDefaultDeviceId;
+ media::AudioDeviceName device_name(
+ media::AudioManagerBase::kDefaultDeviceName,
+ media::AudioManagerBase::kDefaultDeviceId);
if (audio_params.format() != media::AudioParameters::AUDIO_FAKE) {
const StreamDeviceInfo* info = media_stream_manager_->
audio_input_device_manager()->GetOpenedDeviceInfoById(session_id);
@@ -248,7 +261,8 @@ void AudioInputRendererHost::OnCreateStream(
return;
}
- device_id = info->device.id;
+ device_name.unique_id = info->device.id;
tommi (sloooow) - chröme 2014/04/10 20:04:30 ah, I thought that |device| was of type AudioDevic
+ device_name.device_name = info->device.name;
}
// Create a new AudioEntry structure.
@@ -281,12 +295,12 @@ void AudioInputRendererHost::OnCreateStream(
// If we have successfully created the SyncWriter then assign it to the
// entry and construct an AudioInputController.
entry->writer.reset(writer.release());
- if (WebContentsCaptureUtil::IsWebContentsDeviceId(device_id)) {
+ if (WebContentsCaptureUtil::IsWebContentsDeviceId(device_name.unique_id)) {
entry->controller = media::AudioInputController::CreateForStream(
audio_manager_->GetTaskRunner(),
this,
WebContentsAudioInputStream::Create(
- device_id,
+ device_name.unique_id,
audio_params,
audio_manager_->GetWorkerTaskRunner(),
audio_mirroring_manager_),
@@ -300,7 +314,7 @@ void AudioInputRendererHost::OnCreateStream(
media::AudioInputController::CreateLowLatency(audio_manager_,
this,
audio_params,
- device_id,
+ device_name.unique_id,
entry->writer.get(),
user_input_monitor_);
}
@@ -321,8 +335,9 @@ void AudioInputRendererHost::OnCreateStream(
audio_entries_.insert(std::make_pair(stream_id, entry.release()));
MediaStreamManager::SendMessageToNativeLog(
- "Audio input stream created successfully.");
- audio_log_->OnCreated(stream_id, audio_params, device_id);
+ "Audio input stream created successfully. Device name: " +
+ device_name.device_name);
+ audio_log_->OnCreated(stream_id, audio_params, device_name.unique_id);
}
void AudioInputRendererHost::OnRecordStream(int stream_id) {
« no previous file with comments | « no previous file | content/renderer/media/webrtc_audio_capturer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698