diff --git a/libraries/common/src/main/java/androidx/media3/common/VideoGraph.java b/libraries/common/src/main/java/androidx/media3/common/VideoGraph.java index 9ac269b8f5..89142f922f 100644 --- a/libraries/common/src/main/java/androidx/media3/common/VideoGraph.java +++ b/libraries/common/src/main/java/androidx/media3/common/VideoGraph.java @@ -76,10 +76,8 @@ public interface VideoGraph { *

If the method throws, the caller must call {@link #release}. * * @param sequenceIndex The sequence index of the input which can aid ordering of the inputs. - * @return The id of the registered input, which can be used to get the underlying {@link - * VideoFrameProcessor} via {@link #getProcessor(int)}. */ - int registerInput(int sequenceIndex) throws VideoFrameProcessingException; + void registerInput(int sequenceIndex) throws VideoFrameProcessingException; /** * Returns the {@link VideoFrameProcessor} that handles the processing for an input registered via diff --git a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoCompositor.java b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoCompositor.java index 778e612d4a..7a47951572 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoCompositor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoCompositor.java @@ -142,9 +142,8 @@ public final class DefaultVideoCompositor implements VideoCompositor { } @Override - public synchronized int registerInputSource(int sequenceIndex) { + public synchronized void registerInputSource(int sequenceIndex) { inputSources.put(sequenceIndex, new InputSource()); - return sequenceIndex; } @Override diff --git a/libraries/effect/src/main/java/androidx/media3/effect/MultipleInputVideoGraph.java b/libraries/effect/src/main/java/androidx/media3/effect/MultipleInputVideoGraph.java index 20542cb4f6..851375ffa1 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/MultipleInputVideoGraph.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/MultipleInputVideoGraph.java @@ -211,10 +211,9 @@ public abstract class MultipleInputVideoGraph implements VideoGraph { } @Override - public int registerInput(int sequenceIndex) throws VideoFrameProcessingException { + public void registerInput(int sequenceIndex) throws VideoFrameProcessingException { checkStateNotNull(videoCompositor); - - int videoCompositorInputId = videoCompositor.registerInputSource(sequenceIndex); + videoCompositor.registerInputSource(sequenceIndex); // Creating a new VideoFrameProcessor for the input. VideoFrameProcessor preProcessor = videoFrameProcessorFactory @@ -223,7 +222,7 @@ public abstract class MultipleInputVideoGraph implements VideoGraph { // Texture output to compositor. (textureProducer, texture, presentationTimeUs, syncObject) -> queuePreProcessingOutputToCompositor( - videoCompositorInputId, textureProducer, texture, presentationTimeUs), + sequenceIndex, textureProducer, texture, presentationTimeUs), PRE_COMPOSITOR_TEXTURE_OUTPUT_CAPACITY) .build() .create( @@ -254,11 +253,10 @@ public abstract class MultipleInputVideoGraph implements VideoGraph { @Override public void onEnded() { - onPreProcessingVideoFrameProcessorEnded(videoCompositorInputId); + onPreProcessingVideoFrameProcessorEnded(sequenceIndex); } }); - preProcessors.put(videoCompositorInputId, preProcessor); - return videoCompositorInputId; + preProcessors.put(sequenceIndex, preProcessor); } @Override diff --git a/libraries/effect/src/main/java/androidx/media3/effect/SingleInputVideoGraph.java b/libraries/effect/src/main/java/androidx/media3/effect/SingleInputVideoGraph.java index 17f1293562..789e3674e1 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/SingleInputVideoGraph.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/SingleInputVideoGraph.java @@ -99,7 +99,7 @@ public abstract class SingleInputVideoGraph implements VideoGraph { } @Override - public int registerInput(int sequenceIndex) throws VideoFrameProcessingException { + public void registerInput(int sequenceIndex) throws VideoFrameProcessingException { checkStateNotNull(videoFrameProcessor == null && !released); videoFrameProcessor = @@ -159,7 +159,6 @@ public abstract class SingleInputVideoGraph implements VideoGraph { if (outputSurfaceInfo != null) { videoFrameProcessor.setOutputSurfaceInfo(outputSurfaceInfo); } - return SINGLE_INPUT_INDEX; } @Override diff --git a/libraries/effect/src/main/java/androidx/media3/effect/VideoCompositor.java b/libraries/effect/src/main/java/androidx/media3/effect/VideoCompositor.java index e8835c46b2..348b9c6fad 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/VideoCompositor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/VideoCompositor.java @@ -52,7 +52,7 @@ public interface VideoCompositor extends GlTextureProducer { * @param sequenceIndex The sequence index of the input source, which is can be used to determine * the order of the input sources. */ - int registerInputSource(int sequenceIndex); + void registerInputSource(int sequenceIndex); /** * Signals that no more frames will come from the upstream {@link GlTextureProducer.Listener}. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java index f9da1c3789..99d0a76777 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java @@ -550,8 +550,8 @@ public final class CompositingVideoSinkProvider // reduces decoder timeouts, and consider restoring. videoFrameProcessorMaxPendingFrameCount = Util.getMaxPendingFramesCountForMediaCodecDecoders(context); - int videoGraphInputId = videoGraph.registerInput(0); - videoFrameProcessor = videoGraph.getProcessor(videoGraphInputId); + videoGraph.registerInput(0); + videoFrameProcessor = videoGraph.getProcessor(0); videoEffects = new ArrayList<>(); finalBufferPresentationTimeUs = C.TIME_UNSET; diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/DefaultVideoCompositorPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/DefaultVideoCompositorPixelTest.java index bf85f8a757..8c9442235d 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/DefaultVideoCompositorPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/DefaultVideoCompositorPixelTest.java @@ -856,7 +856,8 @@ public final class DefaultVideoCompositorPixelTest { VideoCompositor videoCompositor, @Nullable ExecutorService executorService, GlObjectsProvider glObjectsProvider) { - int inputId = videoCompositor.registerInputSource(0); + int sequenceIndex = 0; + videoCompositor.registerInputSource(sequenceIndex); DefaultVideoFrameProcessor.Factory.Builder defaultVideoFrameProcessorFactoryBuilder = new DefaultVideoFrameProcessor.Factory.Builder() .setGlObjectsProvider(glObjectsProvider) @@ -870,7 +871,7 @@ public final class DefaultVideoCompositorPixelTest { textureBitmapReader.readBitmapUnpremultipliedAlpha( outputTexture, presentationTimeUs); videoCompositor.queueInputTexture( - inputId, + sequenceIndex, outputTextureProducer, outputTexture, ColorInfo.SRGB_BT709_FULL, @@ -884,7 +885,7 @@ public final class DefaultVideoCompositorPixelTest { .setTestId(testId) .setVideoFrameProcessorFactory(defaultVideoFrameProcessorFactoryBuilder.build()) .setBitmapReader(textureBitmapReader) - .setOnEndedListener(() -> videoCompositor.signalEndOfInputSource(inputId)); + .setOnEndedListener(() -> videoCompositor.signalEndOfInputSource(sequenceIndex)); } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMultipleInputVideoGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMultipleInputVideoGraph.java index 174911ea90..c05ee46c7a 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMultipleInputVideoGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMultipleInputVideoGraph.java @@ -80,8 +80,8 @@ import java.util.concurrent.Executor; @Override public GraphInput createInput(int sequenceIndex) throws VideoFrameProcessingException { - int inputId = registerInput(sequenceIndex); + registerInput(sequenceIndex); return new VideoFrameProcessingWrapper( - getProcessor(inputId), /* presentation= */ null, getInitialTimestampOffsetUs()); + getProcessor(sequenceIndex), /* presentation= */ null, getInitialTimestampOffsetUs()); } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerSingleInputVideoGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerSingleInputVideoGraph.java index 3f6da227b1..69c05cb0c9 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerSingleInputVideoGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerSingleInputVideoGraph.java @@ -108,13 +108,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Override public GraphInput createInput(int sequenceIndex) throws VideoFrameProcessingException { checkState(videoFrameProcessingWrapper == null); - int inputId = registerInput(sequenceIndex); + registerInput(sequenceIndex); videoFrameProcessingWrapper = new VideoFrameProcessingWrapper( - getProcessor(inputId), - getInputColorInfo(), - getPresentation(), - getInitialTimestampOffsetUs()); + getProcessor(sequenceIndex), getPresentation(), getInitialTimestampOffsetUs()); return videoFrameProcessingWrapper; } } 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 2960b49015..8c15528fc2 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSampleExporter.java @@ -543,8 +543,8 @@ import org.checkerframework.dataflow.qual.Pure; } @Override - public int registerInput(int sequenceIndex) throws VideoFrameProcessingException { - return videoGraph.registerInput(sequenceIndex); + public void registerInput(int sequenceIndex) throws VideoFrameProcessingException { + videoGraph.registerInput(sequenceIndex); } @Override