Index: media/blink/video_frame_compositor.cc |
diff --git a/media/blink/video_frame_compositor.cc b/media/blink/video_frame_compositor.cc |
index 90af145c7ed71fb269f1f35731f372d5756d9512..447b6b195bff674d3cb5ca2fd679ba0d59078d46 100644 |
--- a/media/blink/video_frame_compositor.cc |
+++ b/media/blink/video_frame_compositor.cc |
@@ -4,8 +4,6 @@ |
#include "media/blink/video_frame_compositor.h" |
-#include "base/bind.h" |
-#include "base/message_loop/message_loop.h" |
#include "media/base/video_frame.h" |
namespace media { |
@@ -34,112 +32,35 @@ static bool IsOpaque(const scoped_refptr<VideoFrame>& frame) { |
} |
VideoFrameCompositor::VideoFrameCompositor( |
- const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
const base::Callback<void(gfx::Size)>& natural_size_changed_cb, |
const base::Callback<void(bool)>& opacity_changed_cb) |
- : compositor_task_runner_(compositor_task_runner), |
- natural_size_changed_cb_(natural_size_changed_cb), |
+ : natural_size_changed_cb_(natural_size_changed_cb), |
opacity_changed_cb_(opacity_changed_cb), |
- client_(nullptr), |
- rendering_(false), |
- callback_(nullptr) { |
+ client_(NULL) { |
} |
VideoFrameCompositor::~VideoFrameCompositor() { |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
- DCHECK(!callback_); |
- DCHECK(!rendering_); |
if (client_) |
client_->StopUsingProvider(); |
} |
-void VideoFrameCompositor::OnRendererStateUpdate() { |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
- if (!client_) |
- return; |
- |
- base::AutoLock lock(lock_); |
- if (callback_) { |
- if (rendering_) |
- client_->StartRendering(); |
- |
- // TODO(dalecurtis): This will need to request the first frame so we have |
- // something to show, even if playback hasn't started yet. |
- } else if (rendering_) { |
- client_->StopRendering(); |
- } |
-} |
- |
-scoped_refptr<VideoFrame> |
-VideoFrameCompositor::GetCurrentFrameAndUpdateIfStale() { |
- // TODO(dalecurtis): Implement frame refresh when stale. |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
- return GetCurrentFrame(); |
-} |
- |
void VideoFrameCompositor::SetVideoFrameProviderClient( |
cc::VideoFrameProvider::Client* client) { |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
if (client_) |
client_->StopUsingProvider(); |
client_ = client; |
- OnRendererStateUpdate(); |
} |
scoped_refptr<VideoFrame> VideoFrameCompositor::GetCurrentFrame() { |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
return current_frame_; |
} |
-void VideoFrameCompositor::PutCurrentFrame() { |
- DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
- // TODO(dalecurtis): Wire up a flag for RenderCallback::OnFrameDropped(). |
-} |
- |
-bool VideoFrameCompositor::UpdateCurrentFrame(base::TimeTicks deadline_min, |
- base::TimeTicks deadline_max) { |
- // TODO(dalecurtis): Wire this up to RenderCallback::Render(). |
- base::AutoLock lock(lock_); |
- return false; |
-} |
- |
-void VideoFrameCompositor::Start(RenderCallback* callback) { |
- NOTREACHED(); |
- |
- // Called from the media thread, so acquire the callback under lock before |
- // returning in case a Stop() call comes in before the PostTask is processed. |
- base::AutoLock lock(lock_); |
- callback_ = callback; |
- rendering_ = true; |
- compositor_task_runner_->PostTask( |
- FROM_HERE, base::Bind(&VideoFrameCompositor::OnRendererStateUpdate, |
- base::Unretained(this))); |
-} |
- |
-void VideoFrameCompositor::Stop() { |
- NOTREACHED(); |
- |
- // Called from the media thread, so release the callback under lock before |
- // returning to avoid a pending UpdateCurrentFrame() call occurring before |
- // the PostTask is processed. |
- base::AutoLock lock(lock_); |
- callback_ = nullptr; |
- rendering_ = false; |
- compositor_task_runner_->PostTask( |
- FROM_HERE, base::Bind(&VideoFrameCompositor::OnRendererStateUpdate, |
- base::Unretained(this))); |
+void VideoFrameCompositor::PutCurrentFrame( |
+ const scoped_refptr<VideoFrame>& frame) { |
} |
-void VideoFrameCompositor::PaintFrameUsingOldRenderingPath( |
+void VideoFrameCompositor::UpdateCurrentFrame( |
const scoped_refptr<VideoFrame>& frame) { |
- if (!compositor_task_runner_->BelongsToCurrentThread()) { |
- compositor_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&VideoFrameCompositor::PaintFrameUsingOldRenderingPath, |
- base::Unretained(this), frame)); |
- return; |
- } |
- |
if (current_frame_.get() && |
current_frame_->natural_size() != frame->natural_size()) { |
natural_size_changed_cb_.Run(frame->natural_size()); |