Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,15 @@ public final class MimeTypes {
public static final String AUDIO_DTS = BASE_TYPE_AUDIO + "/vnd.dts";
public static final String AUDIO_DTS_HD = BASE_TYPE_AUDIO + "/vnd.dts.hd";
public static final String AUDIO_DTS_EXPRESS = BASE_TYPE_AUDIO + "/vnd.dts.hd;profile=lbr";
@UnstableApi public static final String AUDIO_DTS_X = BASE_TYPE_AUDIO + "/vnd.dts.uhd;profile=p2";

@UnstableApi
public static final String AUDIO_DTS_UHD_P2 = BASE_TYPE_AUDIO + "/vnd.dts.uhd;profile=p2";

/**
* @deprecated Use {@link #AUDIO_DTS_UHD_P2} instead.
*/
@Deprecated @UnstableApi public static final String AUDIO_DTS_X = AUDIO_DTS_UHD_P2;

public static final String AUDIO_VORBIS = BASE_TYPE_AUDIO + "/vorbis";
public static final String AUDIO_OPUS = BASE_TYPE_AUDIO + "/opus";
public static final String AUDIO_AMR = BASE_TYPE_AUDIO + "/amr";
Expand Down Expand Up @@ -504,7 +512,7 @@ public static String getMediaMimeType(@Nullable String codec) {
} else if (codec.startsWith("dtsh") || codec.startsWith("dtsl")) {
return MimeTypes.AUDIO_DTS_HD;
} else if (codec.startsWith("dtsx")) {
return MimeTypes.AUDIO_DTS_X;
return MimeTypes.AUDIO_DTS_UHD_P2;
} else if (codec.startsWith("opus")) {
return MimeTypes.AUDIO_OPUS;
} else if (codec.startsWith("vorbis")) {
Expand Down Expand Up @@ -710,7 +718,7 @@ public static boolean isDolbyVisionCodec(
return C.ENCODING_DTS_HD;
case MimeTypes.AUDIO_DTS_EXPRESS:
return C.ENCODING_DTS_HD;
case MimeTypes.AUDIO_DTS_X:
case MimeTypes.AUDIO_DTS_UHD_P2:
return C.ENCODING_DTS_UHD_P2;
case MimeTypes.AUDIO_TRUEHD:
return C.ENCODING_DOLBY_TRUEHD;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public void getMediaMimeType_fromValidCodecs_returnsCorrectMimeType() {
assertThat(MimeTypes.getMediaMimeType("dtse")).isEqualTo(MimeTypes.AUDIO_DTS_EXPRESS);
assertThat(MimeTypes.getMediaMimeType("dtsh")).isEqualTo(MimeTypes.AUDIO_DTS_HD);
assertThat(MimeTypes.getMediaMimeType("dtsl")).isEqualTo(MimeTypes.AUDIO_DTS_HD);
assertThat(MimeTypes.getMediaMimeType("dtsx")).isEqualTo(MimeTypes.AUDIO_DTS_X);
assertThat(MimeTypes.getMediaMimeType("dtsx")).isEqualTo(MimeTypes.AUDIO_DTS_UHD_P2);
assertThat(MimeTypes.getMediaMimeType("opus")).isEqualTo(MimeTypes.AUDIO_OPUS);
assertThat(MimeTypes.getMediaMimeType("vorbis")).isEqualTo(MimeTypes.AUDIO_VORBIS);
assertThat(MimeTypes.getMediaMimeType("mp4a")).isEqualTo(MimeTypes.AUDIO_AAC);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ public Pair<Integer, Integer> getEncodingAndChannelConfigForPassthrough(
audioProfile.getMaxSupportedChannelCountForPassthrough(sampleRate, audioAttributes);
} else {
channelCount = format.channelCount;
if (format.sampleMimeType.equals(MimeTypes.AUDIO_DTS_X) && SDK_INT < 33) {
if (format.sampleMimeType.equals(MimeTypes.AUDIO_DTS_UHD_P2) && SDK_INT < 33) {
// Some DTS:X TVs reports ACTION_HDMI_AUDIO_PLUG.EXTRA_MAX_CHANNEL_COUNT as 8
// instead of 10. See https://github.com/androidx/media/issues/396
if (channelCount > 10) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,17 @@ public final class DefaultAudioOffloadSupportProviderTest {
@Test
@Config(maxSdk = 33)
public void
getAudioOffloadSupport_withDtsXAndSdkUnder34_returnsAudioOffloadSupportDefaultUnsupported() {
Format formatDtsX =
new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_DTS_X).setSampleRate(48_000).build();
getAudioOffloadSupport_withDtsUhdP2AndSdkUnder34_returnsAudioOffloadSupportDefaultUnsupported() {
Format formatDtsUhdP2 =
new Format.Builder()
.setSampleMimeType(MimeTypes.AUDIO_DTS_UHD_P2)
.setSampleRate(48_000)
.build();
DefaultAudioOffloadSupportProvider audioOffloadSupportProvider =
new DefaultAudioOffloadSupportProvider();

AudioOffloadSupport audioOffloadSupport =
audioOffloadSupportProvider.getAudioOffloadSupport(formatDtsX, AudioAttributes.DEFAULT);
audioOffloadSupportProvider.getAudioOffloadSupport(formatDtsUhdP2, AudioAttributes.DEFAULT);

assertThat(audioOffloadSupport.isFormatSupported).isFalse();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,19 @@ private DtsHeader(
* <ul>
* <li>{@link MimeTypes#AUDIO_DTS}
* <li>{@link MimeTypes#AUDIO_DTS_EXPRESS}
* <li>{@link MimeTypes#AUDIO_DTS_X}
* <li>{@link MimeTypes#AUDIO_DTS_HD}
* <li>{@link MimeTypes#AUDIO_DTS_UHD_P2}
* </ul>
*/
@Documented
@Retention(SOURCE)
@Target(TYPE_USE)
@StringDef({MimeTypes.AUDIO_DTS, MimeTypes.AUDIO_DTS_EXPRESS, MimeTypes.AUDIO_DTS_X})
@StringDef({
MimeTypes.AUDIO_DTS,
MimeTypes.AUDIO_DTS_EXPRESS,
MimeTypes.AUDIO_DTS_HD,
MimeTypes.AUDIO_DTS_UHD_P2
})
public @interface DtsAudioMimeType {}

/**
Expand Down Expand Up @@ -656,7 +662,7 @@ public static DtsHeader parseDtsUhdHeader(byte[] header, AtomicInteger uhdAudioC

int frameSize = ftocPayloadInBytes + chunkPayloadBytes;
return new DtsHeader(
MimeTypes.AUDIO_DTS_X,
MimeTypes.AUDIO_DTS_UHD_P2,
// To determine the actual number of channels from a bit stream, we need to read the
// metadata chunk bytes. If defining a constant channel count causes problems, we can
// consider adding additional parsing logic for UHD frames.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2116,7 +2116,7 @@ private static void parseAudioSampleEntry(
} else if (atomType == Mp4Box.TYPE_dtse) {
mimeType = MimeTypes.AUDIO_DTS_EXPRESS;
} else if (atomType == Mp4Box.TYPE_dtsx) {
mimeType = MimeTypes.AUDIO_DTS_X;
mimeType = MimeTypes.AUDIO_DTS_UHD_P2;
} else if (atomType == Mp4Box.TYPE_samr) {
mimeType = MimeTypes.AUDIO_AMR_NB;
} else if (atomType == Mp4Box.TYPE_sawb) {
Expand Down