Index: content/renderer/media/webrtc_audio_renderer.cc |
diff --git a/content/renderer/media/webrtc_audio_renderer.cc b/content/renderer/media/webrtc_audio_renderer.cc |
index 4c3427e459a2955a1c82af823a794c2924b5dabd..f533586e08167cc8f7e7b0fe97f5981041570ed2 100644 |
--- a/content/renderer/media/webrtc_audio_renderer.cc |
+++ b/content/renderer/media/webrtc_audio_renderer.cc |
@@ -7,9 +7,11 @@ |
#include "base/logging.h" |
#include "base/metrics/histogram.h" |
#include "base/string_util.h" |
-#include "content/renderer/media/audio_device_factory.h" |
#include "content/renderer/media/audio_hardware.h" |
+#include "content/renderer/media/audio_message_filter.h" |
#include "content/renderer/media/webrtc_audio_device_impl.h" |
+#include "content/renderer/render_thread_impl.h" |
+#include "media/audio/audio_output_device.h" |
#include "media/audio/audio_util.h" |
#include "media/audio/sample_rates.h" |
#if defined(OS_WIN) |
@@ -80,8 +82,9 @@ void AddHistogramFramesPerBuffer(int param) { |
} // namespace |
-WebRtcAudioRenderer::WebRtcAudioRenderer() |
+WebRtcAudioRenderer::WebRtcAudioRenderer(int source_render_view_id) |
: state_(UNINITIALIZED), |
+ source_render_view_id_(source_render_view_id), |
source_(NULL) { |
} |
@@ -97,9 +100,6 @@ bool WebRtcAudioRenderer::Initialize(WebRtcAudioRendererSource* source) { |
DCHECK(!sink_); |
DCHECK(!source_); |
- sink_ = AudioDeviceFactory::NewOutputDevice(); |
- DCHECK(sink_); |
- |
// Ask the browser for the default audio output hardware sample-rate. |
// This request is based on a synchronous IPC message. |
int sample_rate = GetAudioOutputSampleRate(); |
@@ -190,8 +190,14 @@ bool WebRtcAudioRenderer::Initialize(WebRtcAudioRendererSource* source) { |
source->SetRenderFormat(params_); |
// Configure the audio rendering client and start the rendering. |
+ scoped_refptr<content::AudioMessageFilter> audio_message_filter = |
+ RenderThreadImpl::current()->audio_message_filter(); |
+ sink_ = new media::AudioOutputDevice( |
+ audio_message_filter, |
+ RenderThreadImpl::current()->GetIOMessageLoopProxy()); |
sink_->Initialize(params_, this); |
- |
+ audio_message_filter->AssociateStreamWithProducer(sink_->stream_id(), |
+ source_render_view_id_); |
sink_->Start(); |
state_ = PAUSED; |