| 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 23f8c91c1b331a6f64154a3117eb3cb8995b9ed6..91ea5b916394cb870b4520750619ef946e9b97ff 100644
|
| --- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| +++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| @@ -11,6 +11,7 @@
|
| #include "content/browser/renderer_host/media/audio_input_device_manager.h"
|
| #include "content/browser/renderer_host/media/audio_input_sync_writer.h"
|
| #include "content/browser/renderer_host/media/media_stream_manager.h"
|
| +#include "content/browser/renderer_host/media/web_contents_audio_input_stream.h"
|
| #include "content/browser/renderer_host/media/web_contents_capture_util.h"
|
| #include "content/common/media/audio_messages.h"
|
|
|
| @@ -194,6 +195,7 @@ bool AudioInputRendererHost::OnMessageReceived(const IPC::Message& message,
|
|
|
| return handled;
|
| }
|
| +
|
| void AudioInputRendererHost::OnStartDevice(int stream_id, int session_id) {
|
| VLOG(1) << "AudioInputRendererHost::OnStartDevice(stream_id="
|
| << stream_id << ", session_id = " << session_id << ")";
|
| @@ -225,10 +227,6 @@ void AudioInputRendererHost::OnCreateStream(
|
| audio_params.Reset(media::AudioParameters::AUDIO_FAKE,
|
| params.channel_layout(), params.sample_rate(),
|
| params.bits_per_sample(), params.frames_per_buffer());
|
| - } else if (WebContentsCaptureUtil::IsWebContentsDeviceId(device_id)) {
|
| - audio_params.Reset(media::AudioParameters::AUDIO_VIRTUAL,
|
| - params.channel_layout(), params.sample_rate(),
|
| - params.bits_per_sample(), params.frames_per_buffer());
|
| }
|
|
|
| uint32 buffer_size = audio_params.GetBytesPerBuffer();
|
| @@ -256,16 +254,25 @@ void AudioInputRendererHost::OnCreateStream(
|
|
|
| // If we have successfully created the SyncWriter then assign it to the
|
| // entry and construct an AudioInputController.
|
| - // TODO(henrika): replace CreateLowLatency() with Create() as soon
|
| - // as satish has ensured that Speech Input also uses the default low-
|
| - // latency path. See crbug.com/112472 for details.
|
| entry->writer.reset(writer.release());
|
| - entry->controller = media::AudioInputController::CreateLowLatency(
|
| - audio_manager_,
|
| - this,
|
| - audio_params,
|
| - device_id,
|
| - entry->writer.get());
|
| + if (WebContentsCaptureUtil::IsWebContentsDeviceId(device_id)) {
|
| + entry->controller = media::AudioInputController::CreateForStream(
|
| + audio_manager_,
|
| + this,
|
| + WebContentsAudioInputStream::Create(
|
| + device_id, audio_params, audio_manager_->GetMessageLoop()),
|
| + entry->writer.get());
|
| + } else {
|
| + // TODO(henrika): replace CreateLowLatency() with Create() as soon
|
| + // as satish has ensured that Speech Input also uses the default low-
|
| + // latency path. See crbug.com/112472 for details.
|
| + entry->controller = media::AudioInputController::CreateLowLatency(
|
| + audio_manager_,
|
| + this,
|
| + audio_params,
|
| + device_id,
|
| + entry->writer.get());
|
| + }
|
|
|
| if (!entry->controller) {
|
| SendErrorMessage(stream_id);
|
|
|