| 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 14910adcc1f22d2584625a68bd6af0714d597bb2..d5d683694490cf3816578739885e591a7b5318a4 100644
|
| --- a/media/video/gpu_memory_buffer_video_frame_pool.cc
|
| +++ b/media/video/gpu_memory_buffer_video_frame_pool.cc
|
| @@ -602,7 +602,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:
|
| @@ -611,12 +612,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)) {
|
|
|