Index: media/filters/audio_renderer_impl.cc |
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc |
index b4a4b4125aeb1271069cc71f51d4f5745bfb58e8..4ce76cc21a83ec40f45b1c6349b94c552a2c9a3e 100644 |
--- a/media/filters/audio_renderer_impl.cc |
+++ b/media/filters/audio_renderer_impl.cc |
@@ -255,7 +255,10 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream, |
state_ = kInitializing; |
- init_cb_ = init_cb; |
+ // Always post |init_cb_| because |this| could be destroyed if initialization |
+ // failed. |
+ init_cb_ = BindToCurrentLoop(init_cb); |
+ |
time_cb_ = time_cb; |
buffering_state_cb_ = buffering_state_cb; |
ended_cb_ = ended_cb; |
@@ -344,7 +347,6 @@ void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) { |
} |
DCHECK(!sink_playing_); |
- |
base::ResetAndReturn(&init_cb_).Run(PIPELINE_OK); |
} |