Index: media/gpu/avda_codec_image.cc |
diff --git a/media/gpu/avda_codec_image.cc b/media/gpu/avda_codec_image.cc |
index 3a28736e2423d09d703c77ddad3cf08d22ef9fa5..fb19d6190db8b330fc13e374b397181cee1c2be1 100644 |
--- a/media/gpu/avda_codec_image.cc |
+++ b/media/gpu/avda_codec_image.cc |
@@ -19,7 +19,6 @@ |
namespace media { |
AVDACodecImage::AVDACodecImage( |
- int picture_buffer_id, |
const scoped_refptr<AVDASharedState>& shared_state, |
VideoCodecBridge* codec, |
const base::WeakPtr<gpu::gles2::GLES2Decoder>& decoder) |
@@ -27,15 +26,10 @@ 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); |
-} |
+ has_surface_texture_(false), |
+ texture_(0) {} |
-AVDACodecImage::~AVDACodecImage() { |
- shared_state_->SetImageForPicture(picture_buffer_id_, nullptr); |
-} |
+AVDACodecImage::~AVDACodecImage() {} |
gfx::Size AVDACodecImage::GetSize() { |
return size_; |
@@ -58,13 +52,13 @@ bool AVDACodecImage::CopyTexImage(unsigned target) { |
if (target != GL_TEXTURE_EXTERNAL_OES) |
return false; |
- GLint bound_service_id = 0; |
- glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &bound_service_id); |
- // We insist that the currently bound texture is the right one. |
- if (bound_service_id != |
- static_cast<GLint>(shared_state_->surface_texture_service_id())) { |
- return false; |
- } |
+ // GLint bound_service_id = 0; |
liberato (no reviews please)
2016/11/03 20:51:04
now that we're swapping out |shared_state_| when s
DaleCurtis
2016/11/04 01:07:22
Just left over testing. Removed.
|
+ // glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &bound_service_id); |
+ // // We insist that the currently bound texture is the right one. |
+ // if (bound_service_id != |
+ // static_cast<GLint>(shared_state_->surface_texture_service_id())) { |
+ // return false; |
+ // } |
// Make sure that we have the right image in the front buffer. Note that the |
// bound_service_id is guaranteed to be equal to the surface texture's client |
@@ -141,6 +135,22 @@ void AVDACodecImage::CodecChanged(MediaCodecBridge* codec) { |
codec_buffer_index_ = kInvalidCodecBufferIndex; |
} |
+void AVDACodecImage::SetBufferMetadata(int buffer_index, |
+ bool has_surface_texture, |
+ const gfx::Size size) { |
+ has_surface_texture_ = has_surface_texture; |
+ codec_buffer_index_ = buffer_index; |
+ size_ = size; |
+} |
+ |
+bool AVDACodecImage::SetSharedState( |
+ const scoped_refptr<AVDASharedState>& shared_state) { |
+ if (shared_state == shared_state_) |
+ return false; |
+ shared_state_ = shared_state; |
+ return true; |
+} |
+ |
void AVDACodecImage::UpdateSurfaceInternal( |
UpdateMode update_mode, |
RestoreBindingsMode attached_bindings_mode) { |