diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/MediaFormatUtil.java b/library/common/src/main/java/com/google/android/exoplayer2/util/MediaFormatUtil.java index 45b2293c24..2922e02648 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/MediaFormatUtil.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/MediaFormatUtil.java @@ -220,6 +220,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/library/common/src/test/java/com/google/android/exoplayer2/util/MediaFormatUtilTest.java b/library/common/src/test/java/com/google/android/exoplayer2/util/MediaFormatUtilTest.java index d35cbe5853..68501f1055 100644 --- a/library/common/src/test/java/com/google/android/exoplayer2/util/MediaFormatUtilTest.java +++ b/library/common/src/test/java/com/google/android/exoplayer2/util/MediaFormatUtilTest.java @@ -146,10 +146,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(); } }