| 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 77cdf7ee2bfef4e46a5aa874fb81b9a8729c02d9..14b0243acd2e79b89c75120a9e617e859a66dffd 100644
|
| --- a/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc
|
| +++ b/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc
|
| @@ -79,8 +79,10 @@ void AndroidDeferredRenderingBackingStrategy::Cleanup(
|
|
|
| // Make sure that no PictureBuffer textures refer to the SurfaceTexture or to
|
| // the service_id that we created for it.
|
| - for (const std::pair<int, media::PictureBuffer>& entry : buffers)
|
| + for (const std::pair<int, media::PictureBuffer>& entry : buffers) {
|
| + ReleaseCodecBufferForPicture(entry.second);
|
| SetImageForPicture(entry.second, nullptr);
|
| + }
|
|
|
| // If we're rendering to a SurfaceTexture we can make a copy of the current
|
| // front buffer so that the PictureBuffer textures are still valid.
|
| @@ -217,6 +219,9 @@ void AndroidDeferredRenderingBackingStrategy::ReleaseCodecBufferForPicture(
|
| shared_state_->GetImageForPicture(picture_buffer.id());
|
| RETURN_IF_NULL(avda_image);
|
|
|
| + if (!avda_image)
|
| + return;
|
| +
|
| // See if there is a media codec buffer still attached to this image.
|
| const int32_t codec_buffer = avda_image->GetMediaCodecBufferIndex();
|
|
|
| @@ -236,6 +241,12 @@ void AndroidDeferredRenderingBackingStrategy::ReuseOnePictureBuffer(
|
| ReleaseCodecBufferForPicture(picture_buffer);
|
| }
|
|
|
| +void AndroidDeferredRenderingBackingStrategy::ReleaseCodecBuffers(
|
| + const AndroidVideoDecodeAccelerator::OutputBufferMap& buffers) {
|
| + for (const std::pair<int, media::PictureBuffer>& entry : buffers)
|
| + ReleaseCodecBufferForPicture(entry.second);
|
| +}
|
| +
|
| void AndroidDeferredRenderingBackingStrategy::CodecChanged(
|
| media::VideoCodecBridge* codec) {
|
| media_codec_ = codec;
|
|
|