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 bd2a4a3c5e8576f98778b1e180b68ffcb8a394c5..13eb07ae079973b48d61dcf4d241af0f6f29df99 100644 |
--- a/content/renderer/media/webrtc_audio_renderer.cc |
+++ b/content/renderer/media/webrtc_audio_renderer.cc |
@@ -11,16 +11,16 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
#include "build/build_config.h" |
-#include "content/renderer/media/audio_device_factory.h" |
#include "content/renderer/media/media_stream_audio_track.h" |
#include "content/renderer/media/media_stream_dispatcher.h" |
#include "content/renderer/media/media_stream_track.h" |
+#include "content/renderer/media/restartable_audio_output_device_factory.h" |
#include "content/renderer/media/webrtc_audio_device_impl.h" |
#include "content/renderer/media/webrtc_logging.h" |
#include "content/renderer/render_frame_impl.h" |
-#include "media/audio/audio_output_device.h" |
#include "media/audio/audio_parameters.h" |
#include "media/audio/sample_rates.h" |
+#include "media/base/restartable_audio_output_device.h" |
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
#include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
#include "third_party/libjingle/source/talk/media/base/audiorenderer.h" |
@@ -221,9 +221,11 @@ bool WebRtcAudioRenderer::Initialize(WebRtcAudioRendererSource* source) { |
DCHECK(!source_); |
} |
- sink_ = |
- AudioDeviceFactory::NewOutputDevice(source_render_frame_id_, session_id_, |
- output_device_id_, security_origin_); |
+ sink_ = RestartableAudioOutputDeviceFactory::NewOutputDevice( |
+ RestartableAudioOutputDeviceFactory::kSourceWebRTC, |
+ source_render_frame_id_, session_id_, output_device_id_, |
+ security_origin_); |
+ |
if (sink_->GetDeviceStatus() != media::OUTPUT_DEVICE_STATUS_OK) |
return false; |
@@ -238,6 +240,7 @@ bool WebRtcAudioRenderer::Initialize(WebRtcAudioRendererSource* source) { |
state_ = PAUSED; |
} |
sink_->Start(); |
+ sink_->Play(); // RestartableAudioOutputDevice does not play on start. |
return true; |
} |
@@ -380,9 +383,10 @@ void WebRtcAudioRenderer::SwitchOutputDevice( |
DCHECK_NE(state_, UNINITIALIZED); |
} |
- scoped_refptr<media::AudioOutputDevice> new_sink = |
- AudioDeviceFactory::NewOutputDevice(source_render_frame_id_, session_id_, |
- device_id, security_origin); |
+ scoped_refptr<media::RestartableAudioOutputDevice> new_sink = |
+ RestartableAudioOutputDeviceFactory::NewOutputDevice( |
+ RestartableAudioOutputDeviceFactory::kSourceWebRTC, |
+ source_render_frame_id_, session_id_, device_id, security_origin); |
if (new_sink->GetDeviceStatus() != media::OUTPUT_DEVICE_STATUS_OK) { |
callback.Run(new_sink->GetDeviceStatus()); |
return; |