| 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 d9734d097e8a55044d527e770b15d04790330c7b..f2c5eb2627a9140831b433939e3a21268deb5416 100644
|
| --- a/cc/layers/video_frame_provider_client_impl.cc
|
| +++ b/cc/layers/video_frame_provider_client_impl.cc
|
| @@ -32,6 +32,14 @@
|
| // frame provider client that does not require a lock. The same is true of
|
| // the call to Stop().
|
| provider_->SetVideoFrameProviderClient(this);
|
| +
|
| + // This matrix is the default transformation for stream textures, and flips
|
| + // on the Y axis.
|
| + stream_texture_matrix_ = gfx::Transform(
|
| + 1.0, 0.0, 0.0, 0.0,
|
| + 0.0, -1.0, 0.0, 1.0,
|
| + 0.0, 0.0, 1.0, 0.0,
|
| + 0.0, 0.0, 0.0, 1.0);
|
| }
|
|
|
| VideoFrameProviderClientImpl::~VideoFrameProviderClientImpl() {
|
| @@ -97,6 +105,12 @@
|
| return provider_ && provider_->HasCurrentFrame();
|
| }
|
|
|
| +const gfx::Transform& VideoFrameProviderClientImpl::StreamTextureMatrix()
|
| + const {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + return stream_texture_matrix_;
|
| +}
|
| +
|
| void VideoFrameProviderClientImpl::StopUsingProvider() {
|
| {
|
| // Block the provider from shutting down until this client is done
|
| @@ -137,6 +151,17 @@
|
| active_video_layer_->SetNeedsRedraw();
|
| }
|
|
|
| +void VideoFrameProviderClientImpl::DidUpdateMatrix(const float* matrix) {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + stream_texture_matrix_ = gfx::Transform(
|
| + matrix[0], matrix[4], matrix[8], matrix[12],
|
| + matrix[1], matrix[5], matrix[9], matrix[13],
|
| + matrix[2], matrix[6], matrix[10], matrix[14],
|
| + matrix[3], matrix[7], matrix[11], matrix[15]);
|
| + if (active_video_layer_)
|
| + active_video_layer_->SetNeedsRedraw();
|
| +}
|
| +
|
| void VideoFrameProviderClientImpl::OnBeginFrame(const BeginFrameArgs& args) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(rendering_);
|
|
|