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

Unified Diff: content/renderer/media/renderer_webaudiodevice_impl.cc

Issue 1666363005: Switching audio clients to using RestartableAudioRendererSink interface as a sink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removing RestartableAudioOutputDevice interface Created 4 years, 10 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
Index: content/renderer/media/renderer_webaudiodevice_impl.cc
diff --git a/content/renderer/media/renderer_webaudiodevice_impl.cc b/content/renderer/media/renderer_webaudiodevice_impl.cc
index 6c366c1f71777690f71c0becb3ec59d80d402f92..b69114b8a88bb3b85d17e2095bd956048dc95f8b 100644
--- a/content/renderer/media/renderer_webaudiodevice_impl.cc
+++ b/content/renderer/media/renderer_webaudiodevice_impl.cc
@@ -14,9 +14,8 @@
#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "build/build_config.h"
-#include "content/renderer/media/audio_device_factory.h"
+#include "content/renderer/media/restartable_audio_output_device_factory.h"
#include "content/renderer/render_frame_impl.h"
-#include "media/audio/audio_output_device.h"
#include "media/audio/null_audio_sink.h"
#include "media/base/media_switches.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h"
@@ -53,13 +52,13 @@ RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl(
}
RendererWebAudioDeviceImpl::~RendererWebAudioDeviceImpl() {
- DCHECK(!output_device_);
+ DCHECK(!sink_);
}
void RendererWebAudioDeviceImpl::start() {
DCHECK(thread_checker_.CalledOnValidThread());
- if (output_device_)
+ if (sink_)
return; // Already started.
// Assumption: This method is being invoked within a V8 call stack. CHECKs
@@ -72,11 +71,13 @@ void RendererWebAudioDeviceImpl::start() {
WebLocalFrame* const web_frame = WebLocalFrame::frameForCurrentContext();
RenderFrame* const render_frame =
web_frame ? RenderFrame::FromWebFrame(web_frame) : NULL;
- output_device_ = AudioDeviceFactory::NewOutputDevice(
+ sink_ = RestartableAudioOutputDeviceFactory::NewOutputDevice(
+ RestartableAudioOutputDeviceFactory::kSourceWebAudio,
render_frame ? render_frame->GetRoutingID() : MSG_ROUTING_NONE,
session_id_, std::string(), security_origin_);
- output_device_->Initialize(params_, this);
- output_device_->Start();
+ sink_->Initialize(params_, this);
+ sink_->Start();
+ sink_->Play();
DaleCurtis 2016/02/08 19:10:25 Why Play()? Does this preserve the play on start b
o1ka 2016/02/09 14:15:38 Yes, for mixer inputs
start_null_audio_sink_callback_.Reset(
base::Bind(&media::NullAudioSink::Play, null_audio_sink_));
// Note: Default behavior is to auto-play on start.
@@ -85,9 +86,9 @@ void RendererWebAudioDeviceImpl::start() {
void RendererWebAudioDeviceImpl::stop() {
DCHECK(thread_checker_.CalledOnValidThread());
- if (output_device_) {
- output_device_->Stop();
- output_device_ = NULL;
+ if (sink_) {
+ sink_->Stop();
+ sink_ = NULL;
}
null_audio_sink_->Stop();
is_using_null_audio_sink_ = false;
@@ -136,9 +137,9 @@ int RendererWebAudioDeviceImpl::Render(media::AudioBus* dest,
task_runner_->PostTask(
FROM_HERE,
base::Bind(&media::NullAudioSink::Pause, null_audio_sink_));
- // Calling output_device_->Play() may trigger reentrancy into this
+ // Calling sink_->Play() may trigger reentrancy into this
// function, so this should be called at the end.
- output_device_->Play();
+ sink_->Play();
return dest->frames();
}
} else if (!is_using_null_audio_sink_) {
@@ -148,7 +149,7 @@ int RendererWebAudioDeviceImpl::Render(media::AudioBus* dest,
first_silence_time_ = now;
if (now - first_silence_time_
> base::TimeDelta::FromSeconds(kSilenceInSecondsToEnterIdleMode)) {
- output_device_->Pause();
+ sink_->Pause();
is_using_null_audio_sink_ = true;
// If Stop() is called right after the task is posted, need to cancel
// this task.

Powered by Google App Engine
This is Rietveld 408576698