Chromium Code Reviews| Index: content/common/gpu/media/android_deferred_rendering_backing_strategy.cc |
| diff --git a/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc b/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc |
| index 6be34608aae10845336654f356ccd74a1797acf3..aa66ed7ec62bb30f3a7db4c3c5fb110b083747b2 100644 |
| --- a/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc |
| +++ b/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc |
| @@ -119,16 +119,6 @@ gfx::Size AndroidDeferredRenderingBackingStrategy::GetPictureBufferSize() |
| return surface_texture_ ? state_provider_->GetSize() : gfx::Size(1, 1); |
| } |
| -AVDACodecImage* AndroidDeferredRenderingBackingStrategy::GetImageForPicture( |
| - const media::PictureBuffer& picture_buffer) { |
| - gpu::gles2::TextureRef* texture_ref = |
| - state_provider_->GetTextureForPicture(picture_buffer); |
| - RETURN_NULL_IF_NULL(texture_ref); |
| - gl::GLImage* image = |
| - texture_ref->texture()->GetLevelImage(GetTextureTarget(), 0); |
| - return static_cast<AVDACodecImage*>(image); |
| -} |
| - |
| void AndroidDeferredRenderingBackingStrategy::SetImageForPicture( |
| const media::PictureBuffer& picture_buffer, |
| const scoped_refptr<gpu::gles2::GLStreamTextureImage>& image) { |
| @@ -184,7 +174,8 @@ void AndroidDeferredRenderingBackingStrategy::UseCodecBufferForPictureBuffer( |
| // Notify the AVDACodecImage for picture_buffer that it should use the |
| // decoded buffer codec_buf_index to render this frame. |
| - AVDACodecImage* avda_image = GetImageForPicture(picture_buffer); |
| + AVDACodecImage* avda_image = |
| + shared_state_->GetImageForPicture(picture_buffer.id()); |
| RETURN_IF_NULL(avda_image); |
| DCHECK_EQ(avda_image->GetMediaCodecBufferIndex(), -1); |
| // Note that this is not a race, since we do not re-use a PictureBuffer |
| @@ -202,6 +193,8 @@ void AndroidDeferredRenderingBackingStrategy::AssignOnePictureBuffer( |
| new AVDACodecImage(shared_state_, media_codec_, |
| state_provider_->GetGlDecoder(), surface_texture_); |
| SetImageForPicture(picture_buffer, gl_image); |
| + shared_state_->SetImageForPicture( |
|
liberato (no reviews please)
2016/04/21 23:39:54
perhaps pass in the picture buffer id into the cod
DaleCurtis
2016/04/22 00:11:19
Yup looks much better. Also removed Erase() entire
|
| + picture_buffer.id(), static_cast<AVDACodecImage*>(gl_image.get())); |
| if (!surface_texture_ && have_context) { |
| // To make devtools work, we're using a 2D texture. Make it transparent, |
| @@ -222,7 +215,9 @@ void AndroidDeferredRenderingBackingStrategy::AssignOnePictureBuffer( |
| void AndroidDeferredRenderingBackingStrategy::ReleaseCodecBufferForPicture( |
| const media::PictureBuffer& picture_buffer) { |
| - AVDACodecImage* avda_image = GetImageForPicture(picture_buffer); |
| + AVDACodecImage* avda_image = |
| + shared_state_->GetImageForPicture(picture_buffer.id()); |
| + RETURN_IF_NULL(avda_image); |
| // See if there is a media codec buffer still attached to this image. |
| const int32_t codec_buffer = avda_image->GetMediaCodecBufferIndex(); |
| @@ -244,16 +239,9 @@ void AndroidDeferredRenderingBackingStrategy::ReuseOnePictureBuffer( |
| } |
| void AndroidDeferredRenderingBackingStrategy::CodecChanged( |
| - media::VideoCodecBridge* codec, |
| - const AndroidVideoDecodeAccelerator::OutputBufferMap& buffers) { |
| - // Clear any outstanding codec buffer indices, since the new codec (if any) |
| - // doesn't know about them. |
| + media::VideoCodecBridge* codec) { |
| media_codec_ = codec; |
| - for (const std::pair<int, media::PictureBuffer>& entry : buffers) { |
| - AVDACodecImage* avda_image = GetImageForPicture(entry.second); |
| - avda_image->SetMediaCodec(codec); |
| - avda_image->SetMediaCodecBufferIndex(-1); |
| - } |
| + shared_state_->CodecChanged(codec); |
| } |
| void AndroidDeferredRenderingBackingStrategy::OnFrameAvailable() { |
| @@ -303,8 +291,6 @@ void AndroidDeferredRenderingBackingStrategy::CopySurfaceTextureToPictures( |
| GL_RGBA, GL_UNSIGNED_BYTE, nullptr); |
| } |
| - |
| - |
| float transform_matrix[16]; |
| surface_texture_->GetTransformMatrix(transform_matrix); |