From 5722e6472a3f94e560a2a39f4284aa0f95f41ccb Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Mon, 15 May 2023 14:16:53 +0100 Subject: [PATCH] Fix lost shader input capacity after end-of-stream When exporting compositions with multiple images in a row, transformation could get stuck if a shader was ready to accept input when end-of-stream was already signaled and queued from upstream. Fix accounting for the downstream capacity. Manually tested on concatenations with several images and several videos in a row, by adding logging and verifying the capacity updates as expected across edited media item transitions. PiperOrigin-RevId: 532088793 (cherry picked from commit 6850391e45ed571f0190643189661b0920292084) --- .../java/androidx/media3/effect/FrameConsumptionManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/FrameConsumptionManager.java b/libraries/effect/src/main/java/androidx/media3/effect/FrameConsumptionManager.java index 14b0d834ca..866412cf06 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/FrameConsumptionManager.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/FrameConsumptionManager.java @@ -65,6 +65,7 @@ import java.util.Queue; long presentationTimeUs = pendingFrame.second; if (presentationTimeUs == C.TIME_END_OF_SOURCE) { + consumingGlShaderProgramInputCapacity++; videoFrameProcessingTaskExecutor.submit( consumingGlShaderProgram::signalEndOfCurrentInputStream); } else {