diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java index b2f87aabe0..1f0ac72273 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java @@ -57,7 +57,9 @@ import java.util.Objects; /** Returns whether an {@link AudioFormat} is valid as an input format. */ public static boolean isInputAudioFormatValid(AudioFormat format) { - if (format.encoding == Format.NO_VALUE) { + // AudioGraphInput assumes PCM_16BIT -- see, for example, the automatic format conversions + // in AudioGraphInput.configureProcessing. + if (format.encoding != C.ENCODING_PCM_16BIT) { return false; } if (format.sampleRate == Format.NO_VALUE) { diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphTest.java index 621e03c95f..1f1a4758ea 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphTest.java @@ -48,6 +48,15 @@ public class AudioGraphTest { private static final AudioFormat SURROUND_50000 = new AudioFormat(/* sampleRate= */ 50_000, /* channelCount= */ 6, C.ENCODING_PCM_16BIT); + @Test + public void floatPcmFormat_isNotValidInputFormat() { + assertThat( + AudioGraph.isInputAudioFormatValid( + new AudioFormat( + /* sampleRate= */ 44_100, /* channelCount= */ 1, C.ENCODING_PCM_FLOAT))) + .isFalse(); + } + @Test public void silentItem_outputsCorrectAmountOfBytes() throws Exception { AudioGraph audioGraph = new AudioGraph(new DefaultAudioMixer.Factory());