From 64f93a895e1b96e933a66c2cfa929179d655394c Mon Sep 17 00:00:00 2001 From: samrobinson Date: Wed, 21 Jun 2023 17:20:00 +0000 Subject: [PATCH] Assert that Formats passed to ASP represent valid decoded audio. Ensure SequenceAssetLoader knows downstream is decoding audio if silence is generated. PiperOrigin-RevId: 542293633 --- .../java/androidx/media3/transformer/AudioSamplePipeline.java | 4 ++++ .../java/androidx/media3/transformer/SequenceAssetLoader.java | 1 + 2 files changed, 5 insertions(+) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java index c70fda5b3a..095cff9cf1 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java @@ -26,6 +26,7 @@ import static java.lang.Math.min; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.Format; +import androidx.media3.common.MimeTypes; import androidx.media3.common.audio.AudioProcessingPipeline; import androidx.media3.common.audio.AudioProcessor; import androidx.media3.common.audio.AudioProcessor.AudioFormat; @@ -151,7 +152,10 @@ import org.checkerframework.dataflow.qual.Pure; if (isLast) { queueEndOfStreamAfterSilence = true; } + return; } + checkState(MimeTypes.isAudio(trackFormat.sampleMimeType)); + checkState(trackFormat.pcmEncoding != Format.NO_VALUE); } @Override diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java index 3fd118e2f0..26b3447ed7 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java @@ -231,6 +231,7 @@ import java.util.concurrent.atomic.AtomicInteger; if (addForcedAudioTrack) { sequenceAssetLoaderListener.onTrackAdded( FORCE_AUDIO_TRACK_FORMAT, SUPPORTED_OUTPUT_TYPE_DECODED); + decodeAudio = true; } return decodeOutput;