Index: media/filters/audio_renderer_impl.cc |
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc |
index e6937fc57834e482064fcd1ee19d1a8d3022dfa1..bbe0d786b98472e2492063e8c35907432d6a9ca4 100644 |
--- a/media/filters/audio_renderer_impl.cc |
+++ b/media/filters/audio_renderer_impl.cc |
@@ -48,9 +48,9 @@ AudioRendererImpl::AudioRendererImpl( |
AudioHardwareConfig* hardware_config) |
: task_runner_(task_runner), |
sink_(sink), |
- audio_buffer_stream_(task_runner, |
- decoders.Pass(), |
- set_decryptor_ready_cb), |
+ audio_buffer_stream_(new AudioBufferStream(task_runner, |
+ decoders.Pass(), |
+ set_decryptor_ready_cb)), |
hardware_config_(hardware_config), |
state_(kUninitialized), |
buffering_state_(BUFFERING_HAVE_NOTHING), |
@@ -60,9 +60,9 @@ AudioRendererImpl::AudioRendererImpl( |
received_end_of_stream_(false), |
rendered_end_of_stream_(false), |
weak_factory_(this) { |
- audio_buffer_stream_.set_splice_observer(base::Bind( |
+ audio_buffer_stream_->set_splice_observer(base::Bind( |
&AudioRendererImpl::OnNewSpliceBuffer, weak_factory_.GetWeakPtr())); |
- audio_buffer_stream_.set_config_change_observer(base::Bind( |
+ audio_buffer_stream_->set_config_change_observer(base::Bind( |
&AudioRendererImpl::OnConfigChange, weak_factory_.GetWeakPtr())); |
} |
@@ -155,8 +155,8 @@ void AudioRendererImpl::DoFlush_Locked() { |
DCHECK(!pending_read_); |
DCHECK_EQ(state_, kFlushed); |
- audio_buffer_stream_.Reset(base::Bind(&AudioRendererImpl::ResetDecoderDone, |
- weak_factory_.GetWeakPtr())); |
+ audio_buffer_stream_->Reset(base::Bind(&AudioRendererImpl::ResetDecoderDone, |
+ weak_factory_.GetWeakPtr())); |
} |
void AudioRendererImpl::ResetDecoderDone() { |
@@ -215,7 +215,8 @@ void AudioRendererImpl::Stop(const base::Closure& callback) { |
sink_ = NULL; |
} |
- audio_buffer_stream_.Stop(callback); |
+ audio_buffer_stream_.reset(); |
+ task_runner_->PostTask(FROM_HERE, callback); |
} |
void AudioRendererImpl::StartPlayingFrom(base::TimeDelta timestamp) { |
@@ -296,7 +297,7 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream, |
audio_clock_.reset(new AudioClock(audio_parameters_.sample_rate())); |
- audio_buffer_stream_.Initialize( |
+ audio_buffer_stream_->Initialize( |
stream, |
false, |
statistics_cb, |
@@ -486,8 +487,8 @@ void AudioRendererImpl::AttemptRead_Locked() { |
return; |
pending_read_ = true; |
- audio_buffer_stream_.Read(base::Bind(&AudioRendererImpl::DecodedAudioReady, |
- weak_factory_.GetWeakPtr())); |
+ audio_buffer_stream_->Read(base::Bind(&AudioRendererImpl::DecodedAudioReady, |
+ weak_factory_.GetWeakPtr())); |
} |
bool AudioRendererImpl::CanRead_Locked() { |