diff --git a/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java b/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java index a02b9016b3..d714d0d953 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java @@ -321,6 +321,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private synchronized boolean ensureConfigured(int inputWidth, int inputHeight) throws VideoFrameProcessingException, GlUtil.GlException { + boolean inputSizeChanged = false; if (this.inputWidth != inputWidth || this.inputHeight != inputHeight || this.outputSizeBeforeSurfaceTransformation == null) { @@ -337,6 +338,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; outputSizeBeforeSurfaceTransformation.getWidth(), outputSizeBeforeSurfaceTransformation.getHeight())); } + inputSizeChanged = true; } if (outputSurfaceInfo == null) { @@ -372,7 +374,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; this.debugSurfaceView = debugSurfaceView; } - if (defaultShaderProgram != null && outputSizeOrRotationChanged) { + if (defaultShaderProgram != null && (outputSizeOrRotationChanged || inputSizeChanged)) { defaultShaderProgram.release(); defaultShaderProgram = null; outputSizeOrRotationChanged = false; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index eb0a8fa377..b7e8baee75 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -39,6 +39,7 @@ import androidx.media3.common.util.ListenerSet; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.effect.DefaultVideoFrameProcessor; +import androidx.media3.effect.Presentation; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.CanIgnoreReturnValue; @@ -653,8 +654,12 @@ public final class Transformer { * *