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 339d4fcf847ff367b63daec742811b10011ae0ef..3ca39efda389cb4c2b00092b5872f3c8094d3524 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; |
} |
@@ -134,4 +140,9 @@ void VideoFrameProviderClientImpl::DidUpdateMatrix(const float* matrix) { |
active_video_layer_->SetNeedsRedraw(); |
} |
+void VideoFrameProviderClientImpl::OnBeginFrame(const BeginFrameArgs& args) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ NOTIMPLEMENTED(); |
+} |
+ |
} // namespace cc |