From 3cad5ed726eec582e39026db84f1c843c5d12c69 Mon Sep 17 00:00:00 2001 From: claincly Date: Tue, 19 Sep 2023 09:10:57 -0700 Subject: [PATCH] Remove using Consumer of ExportException in VideoGraphs PiperOrigin-RevId: 566651267 --- .../transformer/MultipleInputVideoGraph.java | 18 ++++++------------ .../transformer/SingleInputVideoGraph.java | 9 +-------- .../media3/transformer/VideoGraph.java | 3 --- .../transformer/VideoSampleExporter.java | 1 - 4 files changed, 7 insertions(+), 24 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MultipleInputVideoGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MultipleInputVideoGraph.java index 6cb3bc7ea3..9cc93894a0 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MultipleInputVideoGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MultipleInputVideoGraph.java @@ -43,7 +43,6 @@ import androidx.media3.common.GlTextureInfo; import androidx.media3.common.SurfaceInfo; import androidx.media3.common.VideoFrameProcessingException; import androidx.media3.common.VideoFrameProcessor; -import androidx.media3.common.util.Consumer; import androidx.media3.common.util.GlUtil; import androidx.media3.effect.DefaultGlObjectsProvider; import androidx.media3.effect.DefaultVideoCompositor; @@ -70,7 +69,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; Context context, ColorInfo inputColorInfo, ColorInfo outputColorInfo, - Consumer errorConsumer, DebugViewProvider debugViewProvider, Listener listener, Executor listenerExecutor, @@ -80,7 +78,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; context, inputColorInfo, outputColorInfo, - errorConsumer, debugViewProvider, listener, listenerExecutor, @@ -98,7 +95,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private final Context context; private final ColorInfo inputColorInfo; private final ColorInfo outputColorInfo; - private final Consumer errorConsumer; private final GlObjectsProvider glObjectsProvider; private final DebugViewProvider debugViewProvider; private final Listener listener; @@ -125,12 +121,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private volatile boolean hasProducedFrameWithTimestampZero; - // TODO - b/289986435: Remove errorConsumer and use Listener.onError(). private MultipleInputVideoGraph( Context context, ColorInfo inputColorInfo, ColorInfo outputColorInfo, - Consumer errorConsumer, DebugViewProvider debugViewProvider, Listener listener, Executor listenerExecutor, @@ -139,7 +133,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; this.context = context; this.inputColorInfo = inputColorInfo; this.outputColorInfo = outputColorInfo; - this.errorConsumer = errorConsumer; this.debugViewProvider = debugViewProvider; this.listener = listener; this.listenerExecutor = listenerExecutor; @@ -434,11 +427,12 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; // This method is called on the sharedExecutorService. private void handleVideoFrameProcessingException(Exception e) { - errorConsumer.accept( - ExportException.createForVideoFrameProcessingException( - e instanceof VideoFrameProcessingException - ? (VideoFrameProcessingException) e - : VideoFrameProcessingException.from(e))); + listenerExecutor.execute( + () -> + listener.onError( + e instanceof VideoFrameProcessingException + ? (VideoFrameProcessingException) e + : VideoFrameProcessingException.from(e))); } private static final class CompositorOutputTextureInfo { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleInputVideoGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleInputVideoGraph.java index 1daf489464..1471e32e4f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SingleInputVideoGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SingleInputVideoGraph.java @@ -28,7 +28,6 @@ import androidx.media3.common.FrameInfo; import androidx.media3.common.SurfaceInfo; import androidx.media3.common.VideoFrameProcessingException; import androidx.media3.common.VideoFrameProcessor; -import androidx.media3.common.util.Consumer; import androidx.media3.effect.Presentation; import java.util.List; import java.util.concurrent.Executor; @@ -50,7 +49,6 @@ import java.util.concurrent.Executor; Context context, ColorInfo inputColorInfo, ColorInfo outputColorInfo, - Consumer errorConsumer, DebugViewProvider debugViewProvider, Listener listener, Executor listenerExecutor, @@ -69,7 +67,6 @@ import java.util.concurrent.Executor; inputColorInfo, outputColorInfo, listener, - errorConsumer, debugViewProvider, listenerExecutor, /* renderFramesAutomatically= */ true, @@ -83,7 +80,6 @@ import java.util.concurrent.Executor; private final ColorInfo inputColorInfo; private final ColorInfo outputColorInfo; private final Listener listener; - private final Consumer errorConsumer; private final DebugViewProvider debugViewProvider; private final Executor listenerExecutor; private final boolean renderFramesAutomatically; @@ -101,7 +97,6 @@ import java.util.concurrent.Executor; ColorInfo inputColorInfo, ColorInfo outputColorInfo, Listener listener, - Consumer errorConsumer, DebugViewProvider debugViewProvider, Executor listenerExecutor, boolean renderFramesAutomatically, @@ -112,7 +107,6 @@ import java.util.concurrent.Executor; this.inputColorInfo = inputColorInfo; this.outputColorInfo = outputColorInfo; this.listener = listener; - this.errorConsumer = errorConsumer; this.debugViewProvider = debugViewProvider; this.listenerExecutor = listenerExecutor; this.renderFramesAutomatically = renderFramesAutomatically; @@ -172,8 +166,7 @@ import java.util.concurrent.Executor; @Override public void onError(VideoFrameProcessingException exception) { - errorConsumer.accept( - ExportException.createForVideoFrameProcessingException(exception)); + listenerExecutor.execute(() -> listener.onError(exception)); } @Override diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoGraph.java index e60015c598..115e767af2 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoGraph.java @@ -24,7 +24,6 @@ import androidx.media3.common.Effect; import androidx.media3.common.SurfaceInfo; import androidx.media3.common.VideoFrameProcessingException; import androidx.media3.common.VideoFrameProcessor; -import androidx.media3.common.util.Consumer; import java.util.List; import java.util.concurrent.Executor; @@ -39,7 +38,6 @@ import java.util.concurrent.Executor; * @param context A {@link Context}. * @param inputColorInfo The {@link ColorInfo} for the input frames. * @param outputColorInfo The {@link ColorInfo} for the output frames. - * @param errorConsumer A {@link Consumer} of {@link ExportException}. * @param debugViewProvider A {@link DebugViewProvider}. * @param listener A {@link Listener}. * @param listenerExecutor The {@link Executor} on which the {@code listener} is invoked. @@ -52,7 +50,6 @@ import java.util.concurrent.Executor; Context context, ColorInfo inputColorInfo, ColorInfo outputColorInfo, - Consumer errorConsumer, DebugViewProvider debugViewProvider, Listener listener, Executor listenerExecutor, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java index f64cbad630..874041b5be 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java @@ -490,7 +490,6 @@ import org.checkerframework.dataflow.qual.Pure; context, videoFrameProcessorInputColor, videoFrameProcessorOutputColor, - errorConsumer, debugViewProvider, /* listener= */ thisRef, /* listenerExecutor= */ MoreExecutors.directExecutor(),