Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3277)

Unified Diff: cc/layers/video_frame_provider_client_impl.cc

Issue 1039533002: cc: Add support for sending BeginFrames for video. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@misc_video_refactoring
Patch Set: Remove visibility updates. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/layers/video_frame_provider_client_impl.cc
diff --git a/cc/layers/video_frame_provider_client_impl.cc b/cc/layers/video_frame_provider_client_impl.cc
index 68e10dc58edfbffaa3d53cf4466a2a675aad305d..55dc23fbbe51a6d833f2314f8faf7752163ca992 100644
--- a/cc/layers/video_frame_provider_client_impl.cc
+++ b/cc/layers/video_frame_provider_client_impl.cc
@@ -13,13 +13,18 @@ namespace cc {
// static
scoped_refptr<VideoFrameProviderClientImpl>
-VideoFrameProviderClientImpl::Create(VideoFrameProvider* provider) {
- return make_scoped_refptr(new VideoFrameProviderClientImpl(provider));
+VideoFrameProviderClientImpl::Create(VideoFrameProvider* provider,
+ VideoFrameControllerClient* client) {
+ return make_scoped_refptr(new VideoFrameProviderClientImpl(provider, client));
}
VideoFrameProviderClientImpl::VideoFrameProviderClientImpl(
- VideoFrameProvider* provider)
- : provider_(provider), active_video_layer_(nullptr), stopped_(false) {
+ VideoFrameProvider* provider,
+ VideoFrameControllerClient* client)
+ : provider_(provider),
+ client_(client),
+ active_video_layer_(nullptr),
+ stopped_(false) {
// This only happens during a commit on the compositor thread while the main
// thread is blocked. That makes this a thread-safe call to set the video
// frame provider client that does not require a lock. The same is true of
@@ -59,6 +64,7 @@ void VideoFrameProviderClientImpl::Stop() {
provider_->SetVideoFrameProviderClient(nullptr);
provider_ = nullptr;
}
+ client_->RemoveVideoFrameController(this);
active_video_layer_ = nullptr;
stopped_ = true;
}
@@ -125,4 +131,9 @@ void VideoFrameProviderClientImpl::DidUpdateMatrix(const float* matrix) {
active_video_layer_->SetNeedsRedraw();
}
+void VideoFrameProviderClientImpl::OnBeginFrame(const BeginFrameArgs& args) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ NOTIMPLEMENTED();
+}
+
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698