From 9406410c488e232b7dd15a69a350b9a8af18c0dc Mon Sep 17 00:00:00 2001 From: tofunmi Date: Wed, 19 Apr 2023 14:47:20 +0100 Subject: [PATCH] Release BitmapTextureManager resources PiperOrigin-RevId: 525434071 --- .../media3/effect/BitmapTextureManager.java | 14 ++++++++++++++ .../media3/effect/DefaultVideoFrameProcessor.java | 3 +++ 2 files changed, 17 insertions(+) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/BitmapTextureManager.java b/libraries/effect/src/main/java/androidx/media3/effect/BitmapTextureManager.java index 69c19d838e..9a239a735c 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/BitmapTextureManager.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/BitmapTextureManager.java @@ -101,6 +101,20 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; }); } + /** + * Releases all resources. + * + * @see VideoFrameProcessor#release() + */ + public void release() { + videoFrameProcessingTaskExecutor.submit( + () -> { + if (currentGlTextureInfo != null) { + GlUtil.deleteTexture(currentGlTextureInfo.texId); + } + }); + } + // Methods that must be called on the GL thread. private void setupBitmap(Bitmap bitmap, long durationUs, float frameRate, boolean useHdr) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java index 1d4ab02305..8f7fc87a56 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java @@ -410,6 +410,9 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor { if (inputExternalTextureManager != null) { inputExternalTextureManager.release(); } + if (inputBitmapTextureManager != null) { + inputBitmapTextureManager.release(); + } } /**