| Index: cc/output/gl_renderer.cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| index 2b20d25d39f18f17a362c4b0d88c4efa9d506731..c02d51f4886f7f28faeeb6b26f78d62d80d46fdc 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -2192,14 +2192,23 @@ void GLRenderer::DrawStreamVideoQuad(const DrawingFrame* frame,
|
| SetUseProgram(program->program());
|
|
|
| ToGLMatrix(&gl_matrix[0], quad->matrix);
|
| - gl_->UniformMatrix4fv(program->vertex_shader().tex_matrix_location(), 1,
|
| - false, gl_matrix);
|
|
|
| ResourceProvider::ScopedReadLockGL lock(resource_provider_,
|
| quad->resource_id());
|
| +
|
| DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
|
| gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id());
|
|
|
| + // TODO(liberato): stream_texture_android should stop sending |gl_matrix| to
|
| + // the video frame provider with this change (and to us), but it should
|
| + // start reporting the current matrix via GLImage::GetCustomMatrix. Until
|
| + // then, though, this will use the matrix that we provide to it, unless the
|
| + // GLImage overrides it. This lets it also work with AVDACodecImage, which
|
| + // provides the correct custom matrix and supplies a default one to us.
|
| + gl_->UniformMatrix4fvWithCustomMatrixCHROMIUM(
|
| + program->vertex_shader().tex_matrix_location(),
|
| + GL_CUSTOM_MATRIX_STREAM_TEXTURE_CHROMIUM, false, gl_matrix);
|
| +
|
| gl_->Uniform1i(program->fragment_shader().sampler_location(), 0);
|
|
|
| SetShaderOpacity(quad->shared_quad_state->opacity,
|
|
|