Chromium Code Reviews| 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 4b23aada39c40c49110f39fe84888c67ad34d227..05ae1fb60695461480c674f9890a9ebd4310f800 100644 |
| --- a/media/video/gpu_memory_buffer_video_frame_pool.cc |
| +++ b/media/video/gpu_memory_buffer_video_frame_pool.cc |
| @@ -580,7 +580,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)) |
|
Pawel Osciak
2015/11/26 01:19:03
I'm wondering why this check, I don't think WrapYU
emircan
2015/12/04 04:20:09
It is checking the |video_frame| metadata rather t
|
| frame->metadata()->SetBoolean(VideoFrameMetadata::ALLOW_OVERLAY, true); |
| break; |
| case PIXEL_FORMAT_NV12: |
| @@ -589,12 +590,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)) { |