summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-17 23:31:22 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-17 23:31:22 +0000
commit7f0456ca7021279b242754c59e519dda4e4604e8 (patch)
tree6d7fbf7c0a182b910589a0fc6bd857292842510f /media
parent16288a49157aaff1791762f2ea87f72e09b677b4 (diff)
downloadchromium_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.cc25
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() {