Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(819)

Unified Diff: media/gpu/android_deferred_rendering_backing_strategy.cc

Issue 2095873005: Add SurfaceTexture::release and call it from AVDA. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;
« no previous file with comments | « media/gpu/android_deferred_rendering_backing_strategy.h ('k') | media/gpu/android_video_decode_accelerator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698