From 9b9871e8aefed53147b511d1494b584c1b2bef50 Mon Sep 17 00:00:00 2001 From: "vrk@google.com" Date: Fri, 9 Dec 2011 18:27:52 +0000 Subject: Simplify AudioRendererImpl by using AudioDevice. This helps us move closer to being able to do renderer-side mixing, for improved performance. See original CL for discussion: http://codereview.chromium.org/8477037/ BUG=none TEST=audio_renderer_impl_unittest (also verified that the media layout tests all pass, and did manual testing with several audio files and YouTube videos) Review URL: http://codereview.chromium.org/8785008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113821 0039d316-1c4b-4281-b951-d872f2087c98 --- media/filters/audio_renderer_base.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'media') diff --git a/media/filters/audio_renderer_base.cc b/media/filters/audio_renderer_base.cc index 2528a70..7960b07 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_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 -- cgit v1.1