Index: media/filters/gpu_video_decoder.cc |
diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc |
index 193ccd837f7b07ec6731f5cc8c55b1a07a2eab0c..c839d0435946a0ad1ffe2bc172721759d5281ca8 100644 |
--- a/media/filters/gpu_video_decoder.cc |
+++ b/media/filters/gpu_video_decoder.cc |
@@ -224,6 +224,16 @@ void GpuVideoDecoder::RequestBufferDecode(const scoped_refptr<Buffer>& buffer) { |
} |
demuxer_read_in_progress_ = false; |
+ if (!buffer) { |
+ if (pending_read_cb_.is_null()) |
+ return; |
+ |
+ gvd_loop_proxy_->PostTask(FROM_HERE, base::Bind( |
+ pending_read_cb_, scoped_refptr<VideoFrame>())); |
+ pending_read_cb_.Reset(); |
+ return; |
+ } |
+ |
if (!vda_) { |
EnqueueFrameAndTriggerFrameDelivery(VideoFrame::CreateEmptyFrame()); |
return; |