| Index: media/gpu/avda_codec_image.cc
|
| diff --git a/media/gpu/avda_codec_image.cc b/media/gpu/avda_codec_image.cc
|
| index a192d0c207b4b42950ab9b481f2a05e67a0556ae..458bab5f0c76f23f34d129eeffdff1dae92951a9 100644
|
| --- a/media/gpu/avda_codec_image.cc
|
| +++ b/media/gpu/avda_codec_image.cc
|
| @@ -27,7 +27,6 @@ AVDACodecImage::AVDACodecImage(
|
| codec_buffer_index_(kInvalidCodecBufferIndex),
|
| media_codec_(codec),
|
| decoder_(decoder),
|
| - has_surface_texture_(!!shared_state_->surface_texture_service_id()),
|
| texture_(0),
|
| picture_buffer_id_(picture_buffer_id) {
|
| shared_state_->SetImageForPicture(picture_buffer_id_, this);
|
| @@ -54,7 +53,7 @@ bool AVDACodecImage::BindTexImage(unsigned target) {
|
| void AVDACodecImage::ReleaseTexImage(unsigned target) {}
|
|
|
| bool AVDACodecImage::CopyTexImage(unsigned target) {
|
| - if (!has_surface_texture_)
|
| + if (!shared_state_->surface_texture_service_id())
|
| return false;
|
|
|
| if (target != GL_TEXTURE_EXTERNAL_OES)
|
| @@ -96,7 +95,7 @@ bool AVDACodecImage::ScheduleOverlayPlane(gfx::AcceleratedWidget widget,
|
| const gfx::Rect& bounds_rect,
|
| const gfx::RectF& crop_rect) {
|
| // This should only be called when we're rendering to a SurfaceView.
|
| - if (has_surface_texture_) {
|
| + if (shared_state_->surface_texture_service_id()) {
|
| DVLOG(1) << "Invalid call to ScheduleOverlayPlane; this image is "
|
| "SurfaceTexture backed.";
|
| return false;
|
| @@ -111,7 +110,7 @@ void AVDACodecImage::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd,
|
| const std::string& dump_name) {}
|
|
|
| void AVDACodecImage::UpdateSurfaceTexture(RestoreBindingsMode mode) {
|
| - DCHECK(has_surface_texture_);
|
| + DCHECK(shared_state_->surface_texture_service_id());
|
| DCHECK_EQ(codec_buffer_index_, kUpdateOnly);
|
| codec_buffer_index_ = kRendered;
|
|
|
| @@ -152,7 +151,7 @@ void AVDACodecImage::UpdateSurfaceInternal(
|
| ReleaseOutputBuffer(update_mode);
|
|
|
| // SurfaceViews are updated implicitly, so no further steps are necessary.
|
| - if (!has_surface_texture_) {
|
| + if (!shared_state_->surface_texture_service_id()) {
|
| DCHECK(update_mode != UpdateMode::RENDER_TO_BACK_BUFFER);
|
| return;
|
| }
|
| @@ -181,7 +180,7 @@ void AVDACodecImage::ReleaseOutputBuffer(UpdateMode update_mode) {
|
| DCHECK(update_mode == UpdateMode::RENDER_TO_BACK_BUFFER ||
|
| update_mode == UpdateMode::RENDER_TO_FRONT_BUFFER);
|
|
|
| - if (!has_surface_texture_) {
|
| + if (!shared_state_->surface_texture_service_id()) {
|
| DCHECK(update_mode == UpdateMode::RENDER_TO_FRONT_BUFFER);
|
| DCHECK_GE(codec_buffer_index_, 0);
|
| media_codec_->ReleaseOutputBuffer(codec_buffer_index_, true);
|
| @@ -192,7 +191,7 @@ void AVDACodecImage::ReleaseOutputBuffer(UpdateMode update_mode) {
|
| // If we've already released to the back buffer, there's nothing left to do,
|
| // but wait for the previously released buffer if necessary.
|
| if (codec_buffer_index_ != kUpdateOnly) {
|
| - DCHECK(has_surface_texture_);
|
| + DCHECK(shared_state_->surface_texture_service_id());
|
| DCHECK_GE(codec_buffer_index_, 0);
|
| shared_state_->RenderCodecBufferToSurfaceTexture(media_codec_,
|
| codec_buffer_index_);
|
| @@ -219,7 +218,7 @@ std::unique_ptr<ui::ScopedMakeCurrent> AVDACodecImage::MakeCurrentIfNeeded() {
|
|
|
| void AVDACodecImage::GetTextureMatrix(float matrix[16]) {
|
| // Our current matrix may be stale. Update it if possible.
|
| - if (has_surface_texture_)
|
| + if (shared_state_->surface_texture_service_id())
|
| UpdateSurface(UpdateMode::RENDER_TO_FRONT_BUFFER);
|
| shared_state_->GetTransformMatrix(matrix);
|
| YInvertMatrix(matrix);
|
|
|