Index: media/filters/audio_renderer_impl.cc |
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc |
index 1da4d51b4fd38c6ae29a8dcdbe4d555f3f634dee..2dab6018b8982cc9ab31afa29a568ecdeddf47c4 100644 |
--- a/media/filters/audio_renderer_impl.cc |
+++ b/media/filters/audio_renderer_impl.cc |
@@ -43,7 +43,6 @@ AudioRendererImpl::AudioRendererImpl( |
ScopedVector<AudioDecoder> decoders, |
const SetDecryptorReadyCB& set_decryptor_ready_cb) |
: task_runner_(task_runner), |
- weak_factory_(this), |
sink_(sink), |
audio_buffer_stream_(task_runner, |
decoders.Pass(), |
@@ -57,7 +56,8 @@ AudioRendererImpl::AudioRendererImpl( |
audio_time_buffered_(kNoTimestamp()), |
current_time_(kNoTimestamp()), |
underflow_disabled_(false), |
- preroll_aborted_(false) {} |
+ preroll_aborted_(false), |
+ weak_factory_(this) {} |
AudioRendererImpl::~AudioRendererImpl() { |
// Stop() should have been called and |algorithm_| should have been destroyed. |
@@ -146,8 +146,8 @@ void AudioRendererImpl::DoFlush_Locked() { |
DCHECK(!pending_read_); |
DCHECK_EQ(state_, kPaused); |
- audio_buffer_stream_.Reset( |
- base::Bind(&AudioRendererImpl::ResetDecoderDone, weak_this_)); |
+ audio_buffer_stream_.Reset(base::Bind(&AudioRendererImpl::ResetDecoderDone, |
+ weak_factory_.GetWeakPtr())); |
} |
void AudioRendererImpl::ResetDecoderDone() { |
@@ -243,7 +243,6 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream, |
state_ = kInitializing; |
- weak_this_ = weak_factory_.GetWeakPtr(); |
init_cb_ = init_cb; |
underflow_cb_ = underflow_cb; |
time_cb_ = time_cb; |
@@ -255,7 +254,7 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream, |
stream, |
statistics_cb, |
base::Bind(&AudioRendererImpl::OnAudioBufferStreamInitialized, |
- weak_this_)); |
+ weak_factory_.GetWeakPtr())); |
} |
void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) { |
@@ -307,7 +306,7 @@ void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) { |
{ |
base::AutoUnlock auto_unlock(lock_); |
- sink_->Initialize(audio_parameters_, weak_this_.get()); |
+ sink_->Initialize(audio_parameters_, this); |
sink_->Start(); |
// Some sinks play on start... |
@@ -472,8 +471,8 @@ void AudioRendererImpl::AttemptRead_Locked() { |
return; |
pending_read_ = true; |
- audio_buffer_stream_.Read( |
- base::Bind(&AudioRendererImpl::DecodedAudioReady, weak_this_)); |
+ audio_buffer_stream_.Read(base::Bind(&AudioRendererImpl::DecodedAudioReady, |
+ weak_factory_.GetWeakPtr())); |
} |
bool AudioRendererImpl::CanRead_Locked() { |
@@ -585,8 +584,9 @@ int AudioRendererImpl::Render(AudioBus* audio_bus, |
} |
if (CanRead_Locked()) { |
- task_runner_->PostTask(FROM_HERE, base::Bind( |
- &AudioRendererImpl::AttemptRead, weak_this_)); |
+ task_runner_->PostTask(FROM_HERE, |
+ base::Bind(&AudioRendererImpl::AttemptRead, |
+ weak_factory_.GetWeakPtr())); |
} |
// The |audio_time_buffered_| is the ending timestamp of the last frame |