| 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..3a1608b6b48821e2e87c967d683f13769d56fc04 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.
|
| @@ -224,6 +226,9 @@ void AndroidDeferredRenderingBackingStrategy::ReleaseCodecBufferForPicture(
|
| const media::PictureBuffer& picture_buffer) {
|
| AVDACodecImage* avda_image = GetImageForPicture(picture_buffer);
|
|
|
| + 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();
|
|
|
| @@ -243,6 +248,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,
|
| const AndroidVideoDecodeAccelerator::OutputBufferMap& buffers) {
|
|
|