From 0baf777c96fea18ed55bd34d39e55958fde00864 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Thu, 14 Dec 2023 08:56:50 -0800 Subject: [PATCH] Effect: Release FinalShaderProgramWrapper when releasing DVFP. Otherwise, there's a memory leak of ~30MB, as this is never released. This likely used to be considered released as part of what now became `intermediateGlShaderPrograms`, but its release was missed after we split `finalShaderProgramWrapper` out from the larger glShaderProgram list. PiperOrigin-RevId: 590954785 --- .../java/androidx/media3/effect/DefaultVideoFrameProcessor.java | 1 + 1 file changed, 1 insertion(+) 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 1a6e572f80..0d4dc748ce 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java @@ -887,6 +887,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor { for (int i = 0; i < intermediateGlShaderPrograms.size(); i++) { intermediateGlShaderPrograms.get(i).release(); } + finalShaderProgramWrapper.release(); } catch (Exception e) { Log.e(TAG, "Error releasing shader program", e); }