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

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

Issue 8980008: Integrate HTMLMediaElement with Web Audio API's MediaElementAudioSourceNode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 years, 12 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/audio_renderer_impl.cc
===================================================================
--- content/renderer/media/audio_renderer_impl.cc (revision 116581)
+++ content/renderer/media/audio_renderer_impl.cc (working copy)
@@ -35,16 +35,12 @@
return kNominalBufferSize * 4;
}
-AudioRendererImpl::AudioRendererImpl()
+AudioRendererImpl::AudioRendererImpl(media::AudioRendererSink* sink)
: AudioRendererBase(),
bytes_per_second_(0),
- stopped_(false) {
- // We create the AudioDevice here because it must be created in the
- // main thread. But we don't yet know the audio format (sample-rate, etc.)
- // at this point. Later, when OnInitialize() is called, we have
- // the audio format information and call the AudioDevice::Initialize()
- // method to fully initialize it.
- audio_device_ = new AudioDevice();
+ stopped_(false),
+ sink_(sink),
+ is_initialized_(false) {
}
AudioRendererImpl::~AudioRendererImpl() {
@@ -90,28 +86,30 @@
bytes_per_second_ = audio_parameters_.GetBytesPerSecond();
- DCHECK(audio_device_.get());
+ DCHECK(sink_.get());
- if (!audio_device_->IsInitialized()) {
- audio_device_->Initialize(
+ if (!is_initialized_) {
+ sink_->Initialize(
GetBufferSizeForSampleRate(sample_rate),
audio_parameters_.channels,
audio_parameters_.sample_rate,
audio_parameters_.format,
this);
- audio_device_->Start();
+ sink_->Start();
+ is_initialized_ = true;
+ return true;
}
- return true;
+ return false;
}
void AudioRendererImpl::OnStop() {
if (stopped_)
return;
- DCHECK(audio_device_.get());
- audio_device_->Stop();
+ DCHECK(sink_.get());
+ sink_->Stop();
stopped_ = true;
}
@@ -169,27 +167,27 @@
void AudioRendererImpl::SetVolume(float volume) {
if (stopped_)
return;
- DCHECK(audio_device_.get());
- audio_device_->SetVolume(volume);
+ DCHECK(sink_.get());
+ sink_->SetVolume(volume);
}
void AudioRendererImpl::DoPlay() {
earliest_end_time_ = base::Time::Now();
- DCHECK(audio_device_.get());
- audio_device_->Play();
+ DCHECK(sink_.get());
+ sink_->Play();
}
void AudioRendererImpl::DoPause() {
- DCHECK(audio_device_.get());
- audio_device_->Pause(false);
+ DCHECK(sink_.get());
+ sink_->Pause(false);
}
void AudioRendererImpl::DoSeek() {
earliest_end_time_ = base::Time::Now();
// Pause and flush the stream when we seek to a new location.
- DCHECK(audio_device_.get());
- audio_device_->Pause(true);
+ DCHECK(sink_.get());
+ sink_->Pause(true);
}
size_t AudioRendererImpl::Render(const std::vector<float*>& audio_data,

Powered by Google App Engine
This is Rietveld 408576698