diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-17 23:31:22 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-17 23:31:22 +0000 |
commit | 7f0456ca7021279b242754c59e519dda4e4604e8 (patch) | |
tree | 6d7fbf7c0a182b910589a0fc6bd857292842510f /media | |
parent | 16288a49157aaff1791762f2ea87f72e09b677b4 (diff) | |
download | chromium_src-7f0456ca7021279b242754c59e519dda4e4604e8.zip chromium_src-7f0456ca7021279b242754c59e519dda4e4604e8.tar.gz chromium_src-7f0456ca7021279b242754c59e519dda4e4604e8.tar.bz2 |
Make VideoRendererBase use a whitelist instead of a blacklist when inspecting the current state.
BUG=166440
Review URL: https://chromiumcodereview.appspot.com/11608003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173567 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/video_renderer_base.cc | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/media/filters/video_renderer_base.cc b/media/filters/video_renderer_base.cc index 863c117..ea10a99 100644 --- a/media/filters/video_renderer_base.cc +++ b/media/filters/video_renderer_base.cc @@ -596,15 +596,28 @@ void VideoRendererBase::AttemptRead_Locked() { if (pending_read_ || NumFrames_Locked() == limits::kMaxVideoFrames || - (!ready_frames_.empty() && ready_frames_.back()->IsEndOfStream()) || - state_ == kFlushingDecoder || - state_ == kFlushing || - state_ == kEnded) { + (!ready_frames_.empty() && ready_frames_.back()->IsEndOfStream())) { return; } - pending_read_ = true; - decoder_->Read(base::Bind(&VideoRendererBase::FrameReady, this)); + switch (state_) { + case kPaused: + case kFlushing: + case kPrerolling: + case kPlaying: + pending_read_ = true; + decoder_->Read(base::Bind(&VideoRendererBase::FrameReady, this)); + return; + + case kUninitialized: + case kPrerolled: + case kFlushingDecoder: + case kFlushed: + case kEnded: + case kStopped: + case kError: + return; + } } void VideoRendererBase::OnDecoderResetDone() { |