Index: media/base/pipeline.cc |
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc |
index e1af61130aa392b5c7d4f00cb5821a4afe861b0d..289db4ed53f0c3f3d117914ff7455e6b6b06d9e6 100644 |
--- a/media/base/pipeline.cc |
+++ b/media/base/pipeline.cc |
@@ -489,6 +489,9 @@ void Pipeline::DoSeek( |
void Pipeline::DoStop(const PipelineStatusCB& done_cb) { |
DCHECK(task_runner_->BelongsToCurrentThread()); |
DCHECK(!pending_callbacks_.get()); |
+ |
+ audio_renderer_.reset(); |
+ |
SerialRunner::Queue bound_fns; |
if (demuxer_) { |
@@ -496,11 +499,6 @@ void Pipeline::DoStop(const PipelineStatusCB& done_cb) { |
&Demuxer::Stop, base::Unretained(demuxer_))); |
} |
- if (audio_renderer_) { |
- bound_fns.Push(base::Bind( |
- &AudioRenderer::Stop, base::Unretained(audio_renderer_.get()))); |
- } |
- |
if (video_renderer_) { |
bound_fns.Push(base::Bind( |
&VideoRenderer::Stop, base::Unretained(video_renderer_.get()))); |
@@ -517,6 +515,7 @@ void Pipeline::DoStop(const PipelineStatusCB& done_cb) { |
void Pipeline::OnStopCompleted(PipelineStatus status) { |
DCHECK(task_runner_->BelongsToCurrentThread()); |
DCHECK_EQ(state_, kStopping); |
+ DCHECK(!audio_renderer_); |
{ |
base::AutoLock l(lock_); |
running_ = false; |
@@ -525,7 +524,6 @@ void Pipeline::OnStopCompleted(PipelineStatus status) { |
SetState(kStopped); |
pending_callbacks_.reset(); |
filter_collection_.reset(); |
- audio_renderer_.reset(); |
video_renderer_.reset(); |
text_renderer_.reset(); |
demuxer_ = NULL; |