Index: media/filters/audio_renderer_impl.cc |
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc |
index 52258426ee1ed3cb6559f9a6a3666e8e3e693a3b..d5aecffa41a6cd4f3c74ee7f7d38c93a3d0fd436 100644 |
--- a/media/filters/audio_renderer_impl.cc |
+++ b/media/filters/audio_renderer_impl.cc |
@@ -216,14 +216,26 @@ void AudioRendererImpl::Stop(const base::Closure& callback) { |
sink_ = NULL; |
} |
+ if (decrypting_demuxer_stream_) { |
+ DCHECK(decoder_); |
+ decrypting_demuxer_stream_->Stop( |
+ base::Bind(&AudioRendererImpl::StopDecoder, weak_this_)); |
+ return; |
+ } |
+ |
if (decoder_) { |
ddorwin
2014/02/14 04:30:51
I wonder if it makes sense to just call StopDecode
xhwang
2014/02/14 18:48:06
Done.
|
- decoder_->Stop(base::ResetAndReturn(&stop_cb_)); |
+ StopDecoder(); |
return; |
} |
task_runner_->PostTask(FROM_HERE, base::ResetAndReturn(&stop_cb_)); |
} |
+void AudioRendererImpl::StopDecoder() { |
+ DCHECK(!stop_cb_.is_null()); |
+ decoder_->Stop(base::ResetAndReturn(&stop_cb_)); |
+} |
+ |
void AudioRendererImpl::Preroll(base::TimeDelta time, |
const PipelineStatusCB& cb) { |
DCHECK(task_runner_->BelongsToCurrentThread()); |