Chromium Code Reviews| Index: media/gpu/android_deferred_rendering_backing_strategy.cc |
| diff --git a/media/gpu/android_deferred_rendering_backing_strategy.cc b/media/gpu/android_deferred_rendering_backing_strategy.cc |
| index cd3ed0edf1ba96e547a6bdb48d806a79432c7440..53105fd4713122977ab7f29dc2e42982b08a4a40 100644 |
| --- a/media/gpu/android_deferred_rendering_backing_strategy.cc |
| +++ b/media/gpu/android_deferred_rendering_backing_strategy.cc |
| @@ -61,16 +61,28 @@ gl::ScopedJavaSurface AndroidDeferredRenderingBackingStrategy::Initialize( |
| return gl::ScopedJavaSurface(surface_texture_.get()); |
| } |
| -void AndroidDeferredRenderingBackingStrategy::Cleanup( |
| +void AndroidDeferredRenderingBackingStrategy::BeginCleanup( |
| bool have_context, |
| const AndroidVideoDecodeAccelerator::OutputBufferMap& buffers) { |
| // If we failed before Initialize, then do nothing. |
| if (!shared_state_) |
| return; |
| + // TODO(liberato): we should release all codec buffers here without rendering. |
| + // CodecChanged() will drop them, but is expected to be called after the codec |
| + // is no longer accessible. It's unclear that VP8 flush in AVDA can't hang |
| + // waiting for our buffers. |
| + |
| CodecChanged(nullptr); |
| } |
| +void AndroidDeferredRenderingBackingStrategy::EndCleanup() { |
| + // Release the surface texture and any back buffers. This will preserve the |
| + // front buffer, if any. |
| + if (surface_texture_) |
| + surface_texture_->ReleaseSurfaceTexture(); |
|
liberato (no reviews please)
2016/06/24 17:40:20
i was on the fence about whether we could just do
|
| +} |
| + |
| scoped_refptr<gl::SurfaceTexture> |
| AndroidDeferredRenderingBackingStrategy::GetSurfaceTexture() const { |
| return surface_texture_; |