diff --git a/libraries/common/src/main/java/androidx/media3/common/FrameProcessor.java b/libraries/common/src/main/java/androidx/media3/common/FrameProcessor.java index 178a30c285..a2a73bdef0 100644 --- a/libraries/common/src/main/java/androidx/media3/common/FrameProcessor.java +++ b/libraries/common/src/main/java/androidx/media3/common/FrameProcessor.java @@ -50,6 +50,8 @@ public interface FrameProcessor { * @param debugViewProvider A {@link DebugViewProvider}. * @param inputColorInfo The {@link ColorInfo} for input frames. * @param outputColorInfo The {@link ColorInfo} for output frames. + * @param inputTrackType The {@link C.TrackType} of the input. Supported track types are {@link + * C#TRACK_TYPE_VIDEO} and {@link C#TRACK_TYPE_IMAGE}. * @param releaseFramesAutomatically If {@code true}, the {@link FrameProcessor} will render * output frames to the {@linkplain #setOutputSurfaceInfo(SurfaceInfo) output surface} * automatically as {@link FrameProcessor} is done processing them. If {@code false}, the @@ -67,6 +69,7 @@ public interface FrameProcessor { DebugViewProvider debugViewProvider, ColorInfo inputColorInfo, ColorInfo outputColorInfo, + @C.TrackType int inputTrackType, boolean releaseFramesAutomatically, Executor executor, Listener listener) diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/GlEffectsFrameProcessorFrameReleaseTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/GlEffectsFrameProcessorFrameReleaseTest.java index 01826012f7..381a759511 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/GlEffectsFrameProcessorFrameReleaseTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/GlEffectsFrameProcessorFrameReleaseTest.java @@ -24,6 +24,7 @@ import android.graphics.PixelFormat; import android.media.Image; import android.media.ImageReader; import androidx.annotation.Nullable; +import androidx.media3.common.C; import androidx.media3.common.ColorInfo; import androidx.media3.common.DebugViewProvider; import androidx.media3.common.FrameInfo; @@ -295,6 +296,7 @@ public final class GlEffectsFrameProcessorFrameReleaseTest { DebugViewProvider.NONE, /* inputColorInfo= */ ColorInfo.SDR_BT709_LIMITED, /* outputColorInfo= */ ColorInfo.SDR_BT709_LIMITED, + C.TRACK_TYPE_VIDEO, releaseFramesAutomatically, MoreExecutors.directExecutor(), new FrameProcessor.Listener() { diff --git a/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java index f9eeed315b..b0aea12cf6 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java @@ -96,6 +96,7 @@ public final class GlEffectsFrameProcessor implements FrameProcessor { DebugViewProvider debugViewProvider, ColorInfo inputColorInfo, ColorInfo outputColorInfo, + @C.TrackType int inputTrackType, boolean releaseFramesAutomatically, Executor listenerExecutor, Listener listener) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java index 42eaeb956a..85def948c5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java @@ -1986,6 +1986,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { DebugViewProvider.NONE, inputColorInfo, outputColorInfo, + C.TRACK_TYPE_VIDEO, /* releaseFramesAutomatically= */ false, /* executor= */ handler::post, new FrameProcessor.Listener() { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FrameProcessorTestRunner.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FrameProcessorTestRunner.java index 150878ffca..173bc45d84 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FrameProcessorTestRunner.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FrameProcessorTestRunner.java @@ -28,6 +28,7 @@ import android.media.Image; import android.media.ImageReader; import android.media.MediaFormat; import androidx.annotation.RequiresApi; +import androidx.media3.common.C; import androidx.media3.common.ColorInfo; import androidx.media3.common.DebugViewProvider; import androidx.media3.common.Effect; @@ -225,6 +226,7 @@ public final class FrameProcessorTestRunner { DebugViewProvider.NONE, inputColorInfo, outputColorInfo, + C.TRACK_TYPE_VIDEO, /* releaseFramesAutomatically= */ true, MoreExecutors.directExecutor(), new FrameProcessor.Listener() { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java index 3a306d4862..cf71c2526f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java @@ -154,6 +154,7 @@ import org.checkerframework.dataflow.qual.Pure; debugViewProvider, frameProcessorInputColor, frameProcessorOutputColor, + MimeTypes.getTrackType(firstInputFormat.sampleMimeType), /* releaseFramesAutomatically= */ true, MoreExecutors.directExecutor(), new FrameProcessor.Listener() {