Index: media/filters/audio_renderer_base.cc |
diff --git a/media/filters/audio_renderer_base.cc b/media/filters/audio_renderer_base.cc |
index 2528a70f5a6608d71a4a4e6eca51d66b6ef269ca..7960b07e7db3a5c0e02cb1cb68157c4b2a463752 100644 |
--- a/media/filters/audio_renderer_base.cc |
+++ b/media/filters/audio_renderer_base.cc |
@@ -147,8 +147,11 @@ void AudioRendererBase::ResumeAfterUnderflow(bool buffer_more_audio) { |
void AudioRendererBase::ConsumeAudioSamples(scoped_refptr<Buffer> buffer_in) { |
base::AutoLock auto_lock(lock_); |
DCHECK(state_ == kPaused || state_ == kSeeking || state_ == kPlaying || |
- state_ == kUnderflow || state_ == kRebuffering); |
- DCHECK_GT(pending_reads_, 0u); |
+ state_ == kUnderflow || state_ == kRebuffering || |
+ state_ == kStopped); |
+ if (!pending_reads_) |
+ return; |
+ |
--pending_reads_; |
// TODO(scherkus): this happens due to a race, primarily because Stop() is a |