diff options
author | jbauman <jbauman@chromium.org> | 2015-08-14 19:58:08 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-15 02:59:00 +0000 |
commit | 0e9c64c2f69e105042297f39a299a897c2d15459 (patch) | |
tree | 339bedc9f9b9031a8310df464da3d4458ecedbef /media | |
parent | 49e40cc11f68ffe6ede21f0c3e1db0239d456a7a (diff) | |
download | chromium_src-0e9c64c2f69e105042297f39a299a897c2d15459.zip chromium_src-0e9c64c2f69e105042297f39a299a897c2d15459.tar.gz chromium_src-0e9c64c2f69e105042297f39a299a897c2d15459.tar.bz2 |
Call VideoFrameProviderImpl::DidReceiveFrame when background render completes.
VideoFrameCompositor::OnRendererStateUpdate(true) may run and do a background render after BeginFrame but before the compositor frame is actually drawn. It needs to do DidReceiveFrame so that the layer's update_rect contains the entire video, because UpdateCurrentFrame won't be called and won't modify the update rect until the next BeginFrame.
BUG=515887
Review URL: https://codereview.chromium.org/1299523002
Cr-Commit-Position: refs/heads/master@{#343553}
Diffstat (limited to 'media')
-rw-r--r-- | media/blink/video_frame_compositor.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/media/blink/video_frame_compositor.cc b/media/blink/video_frame_compositor.cc index 1821b4b..87d7971 100644 --- a/media/blink/video_frame_compositor.cc +++ b/media/blink/video_frame_compositor.cc @@ -217,7 +217,9 @@ void VideoFrameCompositor::BackgroundRender() { DCHECK(compositor_task_runner_->BelongsToCurrentThread()); const base::TimeTicks now = tick_clock_->NowTicks(); last_background_render_ = now; - CallRender(now, now + last_interval_, true); + bool new_frame = CallRender(now, now + last_interval_, true); + if (new_frame && client_) + client_->DidReceiveFrame(); } bool VideoFrameCompositor::CallRender(base::TimeTicks deadline_min, |