From 6af74e7f0fc598923837b32a5df328b17da16461 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 24 Jan 2022 13:07:21 +0000 Subject: [PATCH] Add missing AudioFormat encoding conversions PiperOrigin-RevId: 423786422 --- .../android/exoplayer2/util/MediaFormatUtil.java | 11 +++++++++++ .../android/exoplayer2/util/MediaFormatUtilTest.java | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) 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(); } }