diff --git a/RELEASENOTES.md b/RELEASENOTES.md index efa4f95f9d..7eaf2499b9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -17,7 +17,7 @@ * Ogg: Fix bug when seeking in files with a long duration ([#391](https://github.com/androidx/media/issues/391)). * Audio: - * Add direct playback supports for DTS Express and DTS:X + * Add direct playback support for DTS Express and DTS:X ([#335](https://github.com/androidx/media/pull/335)). * Audio Offload: * Add `AudioSink.getFormatOffloadSupport(Format)` that retrieves level of diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java index 79e4d56a26..ed3fb91c0a 100644 --- a/libraries/common/src/main/java/androidx/media3/common/C.java +++ b/libraries/common/src/main/java/androidx/media3/common/C.java @@ -257,7 +257,7 @@ public final class C { @UnstableApi public static final int ENCODING_DTS = AudioFormat.ENCODING_DTS; /** See {@link AudioFormat#ENCODING_DTS_HD}. */ @UnstableApi public static final int ENCODING_DTS_HD = AudioFormat.ENCODING_DTS_HD; - /** TODO: To replace with AudioFormat.ENCODING_DTS_UHD_P2 when Android 14.0 is released. */ + // TODO(internal b/283949283): Use AudioFormat.ENCODING_DTS_UHD_P2 when Android 14 is released. @UnstableApi public static final int ENCODING_DTS_UHD_P2 = 0x0000001e; /** See {@link AudioFormat#ENCODING_DOLBY_TRUEHD}. */ @UnstableApi public static final int ENCODING_DOLBY_TRUEHD = AudioFormat.ENCODING_DOLBY_TRUEHD; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java index 3c97b1b99e..2c26755157 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioCapabilities.java @@ -48,6 +48,8 @@ import java.util.Arrays; @UnstableApi public final class AudioCapabilities { + // TODO(internal b/283945513): Have separate default max channel counts in `AudioCapabilities` + // for PCM and compressed audio. private static final int DEFAULT_MAX_CHANNEL_COUNT = 10; @VisibleForTesting /* package */ static final int DEFAULT_SAMPLE_RATE_HZ = 48_000; @@ -374,9 +376,12 @@ public final class AudioCapabilities { @DoNotInline public static ImmutableList getDirectPlaybackSupportedEncodings() { - ImmutableList encodings = Api29.getAllSurroundEncodingsMaybeSupported(); ImmutableList.Builder supportedEncodingsListBuilder = ImmutableList.builder(); - for (int encoding : encodings) { + for (int encoding : ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS.keySet()) { + // AudioFormat.ENCODING_DTS_UHD_P2 is supported from API 34. + if (Util.SDK_INT < 34 && encoding == C.ENCODING_DTS_UHD_P2) { + continue; + } if (AudioTrack.isDirectPlaybackSupported( new AudioFormat.Builder() .setChannelMask(AudioFormat.CHANNEL_OUT_STEREO) @@ -413,19 +418,5 @@ public final class AudioCapabilities { } return 0; } - - /** Returns a list of surround encodings that maybe supported. */ - @DoNotInline - private static ImmutableList getAllSurroundEncodingsMaybeSupported() { - ImmutableList.Builder encodings = new ImmutableList.Builder<>(); - for (int encoding : ALL_SURROUND_ENCODINGS_AND_MAX_CHANNELS.keySet()) { - // AudioFormat.ENCODING_DTS_UHD_P2 is supported from API 34. - if (Util.SDK_INT < 34 && encoding == C.ENCODING_DTS_UHD_P2) { - continue; - } - encodings.add(encoding); - } - return encodings.build(); - } } }