diff --git a/libraries/common/src/main/java/androidx/media3/common/util/MediaFormatUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/MediaFormatUtil.java index e8ea10aca8..74b244c1b4 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/MediaFormatUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/MediaFormatUtil.java @@ -221,6 +221,17 @@ public final class MediaFormatUtil { case C.ENCODING_PCM_FLOAT: mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_FLOAT; break; + case C.ENCODING_PCM_24BIT: + mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_24BIT_PACKED; + break; + case C.ENCODING_PCM_32BIT: + mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_32BIT; + break; + case C.ENCODING_INVALID: + mediaFormatPcmEncoding = AudioFormat.ENCODING_INVALID; + break; + case Format.NO_VALUE: + case C.ENCODING_PCM_16BIT_BIG_ENDIAN: default: // No matching value. Do nothing. return; diff --git a/libraries/common/src/test/java/androidx/media3/common/util/MediaFormatUtilTest.java b/libraries/common/src/test/java/androidx/media3/common/util/MediaFormatUtilTest.java index 9979f7e921..c38abc7009 100644 --- a/libraries/common/src/test/java/androidx/media3/common/util/MediaFormatUtilTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/util/MediaFormatUtilTest.java @@ -147,10 +147,10 @@ public class MediaFormatUtilTest { @Test public void createMediaFormatFromFormat_withPcmEncoding_setsCustomPcmEncodingEntry() { - Format format = new Format.Builder().setPcmEncoding(C.ENCODING_PCM_32BIT).build(); + Format format = new Format.Builder().setPcmEncoding(C.ENCODING_PCM_16BIT_BIG_ENDIAN).build(); MediaFormat mediaFormat = MediaFormatUtil.createMediaFormatFromFormat(format); assertThat(mediaFormat.getInteger(MediaFormatUtil.KEY_PCM_ENCODING_EXTENDED)) - .isEqualTo(C.ENCODING_PCM_32BIT); + .isEqualTo(C.ENCODING_PCM_16BIT_BIG_ENDIAN); assertThat(mediaFormat.containsKey(MediaFormat.KEY_PCM_ENCODING)).isFalse(); } }