diff --git a/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java b/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java index 274aabea2e..be1bb6a64e 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/VideoFrameProcessingTaskExecutor.java @@ -24,7 +24,6 @@ import androidx.media3.common.VideoFrameProcessor; import androidx.media3.common.util.UnstableApi; import java.util.ArrayDeque; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.RejectedExecutionException; @@ -150,16 +149,13 @@ import java.util.concurrent.RejectedExecutionException; shouldCancelTasks = true; highPriorityTasks.clear(); } - Future releaseFuture = + Future unused = wrapTaskAndSubmitToExecutorService(releaseTask, /* isFlushOrReleaseTask= */ true); singleThreadExecutorService.shutdown(); - try { - if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) { - listener.onError(new VideoFrameProcessingException("Release timed out")); - } - releaseFuture.get(); - } catch (ExecutionException e) { - listener.onError(new VideoFrameProcessingException(e)); + if (!singleThreadExecutorService.awaitTermination(releaseWaitTimeMs, MILLISECONDS)) { + listener.onError( + new VideoFrameProcessingException( + "Release timed out. OpenGL resources may not be cleaned up properly.")); } }