diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/FrameDropTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/FrameDropTest.java index 7a88e75505..8ae0125049 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/FrameDropTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/FrameDropTest.java @@ -97,12 +97,13 @@ public class FrameDropTest { /* expectedFrameRate= */ 6, /* targetFrameRate= */ 2)) .build(); - videoFrameProcessorTestRunner.registerAndQueueInputBitmap( + videoFrameProcessorTestRunner.registerInputStream(INPUT_TYPE_BITMAP); + videoFrameProcessorTestRunner.queueInputBitmap( readBitmap(ORIGINAL_PNG_ASSET_PATH), /* durationUs= */ C.MICROS_PER_SECOND, /* offsetToAddUs= */ 0L, /* frameRate= */ 4); - videoFrameProcessorTestRunner.registerAndQueueInputBitmap( + videoFrameProcessorTestRunner.queueInputBitmap( readBitmap(SCALE_WIDE_PNG_ASSET_PATH), /* durationUs= */ C.MICROS_PER_SECOND, /* offsetToAddUs= */ C.MICROS_PER_SECOND, diff --git a/libraries/effect/src/main/java/androidx/media3/effect/SimpleFrameDroppingShaderProgram.java b/libraries/effect/src/main/java/androidx/media3/effect/SimpleFrameDroppingShaderProgram.java index 604355f6d7..0bf19ccb3a 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/SimpleFrameDroppingShaderProgram.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/SimpleFrameDroppingShaderProgram.java @@ -63,4 +63,16 @@ import androidx.media3.common.VideoFrameProcessingException; inputListener.onReadyToAcceptInputFrame(); } } + + @Override + public void signalEndOfCurrentInputStream() { + super.signalEndOfCurrentInputStream(); + framesReceived = 0; + } + + @Override + public void flush() { + super.flush(); + framesReceived = 0; + } } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java index 8a66ba107c..a10a19b53c 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java @@ -342,6 +342,20 @@ public final class VideoFrameProcessorTestRunner { endFrameProcessing(); } + public void registerInputStream(@InputType int inputType) { + videoFrameProcessor.registerInputStream(inputType, ImmutableList.of()); + } + + public void queueInputBitmap( + Bitmap inputBitmap, long durationUs, long offsetToAddUs, float frameRate) { + videoFrameProcessor.setInputFrameInfo( + new FrameInfo.Builder(inputBitmap.getWidth(), inputBitmap.getHeight()) + .setPixelWidthHeightRatio(pixelWidthHeightRatio) + .setOffsetToAddUs(offsetToAddUs) + .build()); + videoFrameProcessor.queueInputBitmap(inputBitmap, durationUs, frameRate); + } + public void registerAndQueueInputBitmap( Bitmap inputBitmap, long durationUs, long offsetToAddUs, float frameRate) { videoFrameProcessor.setInputFrameInfo(