diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderBaseRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderBaseRenderer.java index 5f42ef4831..1a155ea4ac 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderBaseRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderBaseRenderer.java @@ -174,9 +174,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; * *
The input buffer is cleared if it should be dropped. */ - protected boolean shouldDropInputBuffer(DecoderInputBuffer inputBuffer) { - return false; - } + protected abstract boolean shouldDropInputBuffer(DecoderInputBuffer inputBuffer); /** Called before a {@link DecoderInputBuffer} is queued to the decoder. */ protected void onDecoderInputReady(DecoderInputBuffer inputBuffer) {} diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderVideoRenderer.java index d5c9dff1ad..2871a7cf17 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoAssetLoaderVideoRenderer.java @@ -115,6 +115,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; if (decoder == null) { inputBuffer.timeUs -= streamStartPositionUs; + if (inputBuffer.timeUs < 0) { + inputBuffer.clear(); + return true; + } } return false; }