diff options
author | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-09 18:27:52 +0000 |
---|---|---|
committer | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-09 18:27:52 +0000 |
commit | 9b9871e8aefed53147b511d1494b584c1b2bef50 (patch) | |
tree | 025b114736caa36ecc36cf596a75cda8cac6d501 /media | |
parent | e5d7b8399240c3bc5fc0fd9d7a65158bbd0d2c6a (diff) | |
download | chromium_src-9b9871e8aefed53147b511d1494b584c1b2bef50.zip chromium_src-9b9871e8aefed53147b511d1494b584c1b2bef50.tar.gz chromium_src-9b9871e8aefed53147b511d1494b584c1b2bef50.tar.bz2 |
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
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/audio_renderer_base.cc | 7 |
1 files changed, 5 insertions, 2 deletions
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> 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 |