Index: media/video/gpu_memory_buffer_video_frame_pool.cc |
diff --git a/media/video/gpu_memory_buffer_video_frame_pool.cc b/media/video/gpu_memory_buffer_video_frame_pool.cc |
index 76b95352f06d8843f57bf701f96553940689647f..6a04dad72317aa65889efcd3c25f0d0cfb84fc29 100644 |
--- a/media/video/gpu_memory_buffer_video_frame_pool.cc |
+++ b/media/video/gpu_memory_buffer_video_frame_pool.cc |
@@ -583,7 +583,8 @@ void GpuMemoryBufferVideoFramePool::PoolImpl:: |
mailbox_holders[VideoFrame::kVPlane], release_mailbox_callback, |
coded_size, gfx::Rect(visible_size), video_frame->natural_size(), |
video_frame->timestamp()); |
- if (video_frame->metadata()->IsTrue(VideoFrameMetadata::ALLOW_OVERLAY)) |
+ if (frame && |
+ video_frame->metadata()->IsTrue(VideoFrameMetadata::ALLOW_OVERLAY)) |
frame->metadata()->SetBoolean(VideoFrameMetadata::ALLOW_OVERLAY, true); |
break; |
case PIXEL_FORMAT_NV12: |
@@ -592,12 +593,19 @@ void GpuMemoryBufferVideoFramePool::PoolImpl:: |
output_format_, mailbox_holders[VideoFrame::kYPlane], |
release_mailbox_callback, coded_size, gfx::Rect(visible_size), |
video_frame->natural_size(), video_frame->timestamp()); |
- frame->metadata()->SetBoolean(VideoFrameMetadata::ALLOW_OVERLAY, true); |
+ if (frame) |
+ frame->metadata()->SetBoolean(VideoFrameMetadata::ALLOW_OVERLAY, true); |
break; |
default: |
NOTREACHED(); |
} |
+ if (!frame) { |
+ release_mailbox_callback.Run(gpu::SyncToken()); |
+ frame_ready_cb.Run(video_frame); |
+ return; |
+ } |
+ |
base::TimeTicks render_time; |
if (video_frame->metadata()->GetTimeTicks(VideoFrameMetadata::REFERENCE_TIME, |
&render_time)) { |