Index: media/filters/video_renderer_base.cc |
diff --git a/media/filters/video_renderer_base.cc b/media/filters/video_renderer_base.cc |
index df7350c23d6b640df37cb2101c18a0fe12b30b52..f2edff1cefe63ddde0e915ca2e3ada978cbd6e37 100644 |
--- a/media/filters/video_renderer_base.cc |
+++ b/media/filters/video_renderer_base.cc |
@@ -336,8 +336,6 @@ void VideoRendererBase::PutCurrentFrame(scoped_refptr<VideoFrame> frame) { |
} |
void VideoRendererBase::FrameReady(scoped_refptr<VideoFrame> frame) { |
- DCHECK(frame); |
- |
base::AutoLock auto_lock(lock_); |
DCHECK_NE(state_, kUninitialized); |
DCHECK_NE(state_, kStopped); |
@@ -352,6 +350,15 @@ void VideoRendererBase::FrameReady(scoped_refptr<VideoFrame> frame) { |
return; |
} |
+ if (!frame) { |
Ami GONE FROM CHROMIUM
2012/01/29 22:12:38
I thought this test encompassed the entire remaind
acolwell GONE FROM CHROMIUM
2012/01/30 00:14:14
I believe so. Getting a NULL frame means that the
|
+ if (state_ != kSeeking) |
+ return; |
+ |
+ state_ = kPrerolled; |
+ ResetAndRunCB(&seek_cb_, PIPELINE_OK); |
+ return; |
+ } |
+ |
// Discard frames until we reach our desired seek timestamp. |
if (state_ == kSeeking && !frame->IsEndOfStream() && |
(frame->GetTimestamp() + frame->GetDuration()) <= seek_timestamp_) { |