diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioTranscodingSamplePipeline.java similarity index 93% rename from libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java rename to libraries/transformer/src/main/java/androidx/media3/transformer/AudioTranscodingSamplePipeline.java index 8a857b8d0b..6ea94f2df8 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioTranscodingSamplePipeline.java @@ -18,7 +18,6 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; -import static androidx.media3.common.util.Assertions.checkStateNotNull; import static java.lang.Math.min; import android.media.MediaCodec.BufferInfo; @@ -37,9 +36,8 @@ import org.checkerframework.dataflow.qual.Pure; /** * Pipeline to decode audio samples, apply transformations on the raw samples, and re-encode them. */ -/* package */ final class AudioSamplePipeline implements SamplePipeline { +/* package */ final class AudioTranscodingSamplePipeline implements SamplePipeline { - private static final String TAG = "AudioSamplePipeline"; private static final int DEFAULT_ENCODER_BITRATE = 128 * 1024; private final Codec decoder; @@ -61,7 +59,7 @@ import org.checkerframework.dataflow.qual.Pure; private boolean drainingSonicForSpeedChange; private float currentSpeed; - public AudioSamplePipeline( + public AudioTranscodingSamplePipeline( Format inputFormat, TransformationRequest transformationRequest, Codec.DecoderFactory decoderFactory, @@ -142,40 +140,36 @@ import org.checkerframework.dataflow.qual.Pure; @Override @Nullable public Format getOutputFormat() throws TransformationException { - return encoder != null ? encoder.getOutputFormat() : null; + return encoder.getOutputFormat(); } @Override @Nullable public DecoderInputBuffer getOutputBuffer() throws TransformationException { - if (encoder != null) { - encoderOutputBuffer.data = encoder.getOutputBuffer(); - if (encoderOutputBuffer.data != null) { - encoderOutputBuffer.timeUs = checkNotNull(encoder.getOutputBufferInfo()).presentationTimeUs; - encoderOutputBuffer.setFlags(C.BUFFER_FLAG_KEY_FRAME); - return encoderOutputBuffer; - } + encoderOutputBuffer.data = encoder.getOutputBuffer(); + if (encoderOutputBuffer.data == null) { + return null; } - return null; + encoderOutputBuffer.timeUs = checkNotNull(encoder.getOutputBufferInfo()).presentationTimeUs; + encoderOutputBuffer.setFlags(C.BUFFER_FLAG_KEY_FRAME); + return encoderOutputBuffer; } @Override public void releaseOutputBuffer() throws TransformationException { - checkStateNotNull(encoder).releaseOutputBuffer(); + encoder.releaseOutputBuffer(); } @Override public boolean isEnded() { - return encoder != null && encoder.isEnded(); + return encoder.isEnded(); } @Override public void release() { sonicAudioProcessor.reset(); decoder.release(); - if (encoder != null) { - encoder.release(); - } + encoder.release(); } /** 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 eab488fc01..4e12217f18 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -919,7 +919,7 @@ public final class Transformer { @Override public void onPlayerError(PlaybackException error) { - Throwable cause = error.getCause(); + @Nullable Throwable cause = error.getCause(); handleTransformationEnded( cause instanceof TransformationException ? (TransformationException) cause diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java index ca4a4dd393..312001975f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java @@ -73,7 +73,7 @@ import androidx.media3.extractor.metadata.mp4.SlowMotionData; new PassthroughSamplePipeline(inputFormat, transformationRequest, fallbackListener); } else { samplePipeline = - new AudioSamplePipeline( + new AudioTranscodingSamplePipeline( inputFormat, transformationRequest, decoderFactory, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index 1cae7cc6f1..c7a31f910c 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -82,7 +82,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; new PassthroughSamplePipeline(inputFormat, transformationRequest, fallbackListener); } else { samplePipeline = - new VideoSamplePipeline( + new VideoTranscodingSamplePipeline( context, inputFormat, transformationRequest, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java similarity index 97% rename from libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java rename to libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java index 32e4025712..e24bcdf731 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java @@ -36,9 +36,7 @@ import org.checkerframework.dataflow.qual.Pure; /** * Pipeline to decode video samples, apply transformations on the raw samples, and re-encode them. */ -/* package */ final class VideoSamplePipeline implements SamplePipeline { - - private static final String TAG = "VideoSamplePipeline"; +/* package */ final class VideoTranscodingSamplePipeline implements SamplePipeline { private final int outputRotationDegrees; private final DecoderInputBuffer decoderInputBuffer; @@ -51,7 +49,7 @@ import org.checkerframework.dataflow.qual.Pure; private boolean waitingForFrameEditorInput; - public VideoSamplePipeline( + public VideoTranscodingSamplePipeline( Context context, Format inputFormat, TransformationRequest transformationRequest, @@ -233,7 +231,7 @@ import org.checkerframework.dataflow.qual.Pure; @Override @Nullable public Format getOutputFormat() throws TransformationException { - Format format = encoder.getOutputFormat(); + @Nullable Format format = encoder.getOutputFormat(); return format == null ? null : format.buildUpon().setRotationDegrees(outputRotationDegrees).build();