diff options
| -rw-r--r-- | core/api/current.txt | 5 | ||||
| -rw-r--r-- | core/jni/android_media_AudioFormat.h | 16 | ||||
| -rw-r--r-- | media/java/android/media/AudioFormat.java | 77 | ||||
| -rw-r--r-- | media/java/android/media/AudioSystem.java | 4 | ||||
| -rw-r--r-- | media/java/android/media/audio/common/AidlConversion.java | 2 |
5 files changed, 82 insertions, 22 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 2f1845f9c18f..16086161cab7 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -20016,7 +20016,10 @@ package android.media { field public static final int ENCODING_DRA = 28; // 0x1c field public static final int ENCODING_DTS = 7; // 0x7 field public static final int ENCODING_DTS_HD = 8; // 0x8 - field public static final int ENCODING_DTS_UHD = 27; // 0x1b + field public static final int ENCODING_DTS_HD_MA = 29; // 0x1d + field @Deprecated public static final int ENCODING_DTS_UHD = 27; // 0x1b + field public static final int ENCODING_DTS_UHD_P1 = 27; // 0x1b + field public static final int ENCODING_DTS_UHD_P2 = 30; // 0x1e field public static final int ENCODING_E_AC3 = 6; // 0x6 field public static final int ENCODING_E_AC3_JOC = 18; // 0x12 field public static final int ENCODING_IEC61937 = 13; // 0xd diff --git a/core/jni/android_media_AudioFormat.h b/core/jni/android_media_AudioFormat.h index 0e6b587db945..962b50147f3d 100644 --- a/core/jni/android_media_AudioFormat.h +++ b/core/jni/android_media_AudioFormat.h @@ -45,8 +45,10 @@ #define ENCODING_MPEGH_BL_L4 24 #define ENCODING_MPEGH_LC_L3 25 #define ENCODING_MPEGH_LC_L4 26 -#define ENCODING_DTS_UHD 27 +#define ENCODING_DTS_UHD_P1 27 #define ENCODING_DRA 28 +#define ENCODING_DTS_HD_MA 29 +#define ENCODING_DTS_UHD_P2 30 #define ENCODING_INVALID 0 #define ENCODING_DEFAULT 1 @@ -112,10 +114,14 @@ static inline audio_format_t audioFormatToNative(int audioFormat) return AUDIO_FORMAT_MPEGH_LC_L3; case ENCODING_MPEGH_LC_L4: return AUDIO_FORMAT_MPEGH_LC_L4; - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: return AUDIO_FORMAT_DTS_UHD; case ENCODING_DRA: return AUDIO_FORMAT_DRA; + case ENCODING_DTS_HD_MA: + return AUDIO_FORMAT_DTS_HD_MA; + case ENCODING_DTS_UHD_P2: + return AUDIO_FORMAT_DTS_UHD_P2; default: return AUDIO_FORMAT_INVALID; } @@ -186,9 +192,13 @@ static inline int audioFormatFromNative(audio_format_t nativeFormat) case AUDIO_FORMAT_MPEGH_LC_L4: return ENCODING_MPEGH_LC_L4; case AUDIO_FORMAT_DTS_UHD: - return ENCODING_DTS_UHD; + return ENCODING_DTS_UHD_P1; case AUDIO_FORMAT_DRA: return ENCODING_DRA; + case AUDIO_FORMAT_DTS_HD_MA: + return ENCODING_DTS_HD_MA; + case AUDIO_FORMAT_DTS_UHD_P2: + return ENCODING_DTS_UHD_P2; case AUDIO_FORMAT_DEFAULT: return ENCODING_DEFAULT; default: diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java index d06bbc61f6eb..b8090c4e1688 100644 --- a/media/java/android/media/AudioFormat.java +++ b/media/java/android/media/AudioFormat.java @@ -350,10 +350,29 @@ public final class AudioFormat implements Parcelable { public static final int ENCODING_MPEGH_LC_L3 = 25; /** Audio data format: MPEG-H low complexity profile, level 4 */ public static final int ENCODING_MPEGH_LC_L4 = 26; - /** Audio data format: DTS UHD compressed */ - public static final int ENCODING_DTS_UHD = 27; + /** Audio data format: DTS UHD Profile-1 compressed (aka DTS:X Profile 1) + * Has the same meaning and value as ENCODING_DTS_UHD_P1. + * @deprecated Use {@link #ENCODING_DTS_UHD_P1} instead. */ + @Deprecated public static final int ENCODING_DTS_UHD = 27; /** Audio data format: DRA compressed */ public static final int ENCODING_DRA = 28; + /** Audio data format: DTS HD Master Audio compressed + * DTS HD Master Audio stream is variable bit rate and contains lossless audio. + * Use {@link #ENCODING_DTS_HD_MA} for lossless audio content (DTS-HD MA Lossless) + * and use {@link #ENCODING_DTS_HD} for other DTS bitstreams with extension substream + * (DTS 8Ch Discrete, DTS Hi Res, DTS Express). */ + public static final int ENCODING_DTS_HD_MA = 29; + /** Audio data format: DTS UHD Profile-1 compressed (aka DTS:X Profile 1) + * Has the same meaning and value as the deprecated {@link #ENCODING_DTS_UHD}.*/ + public static final int ENCODING_DTS_UHD_P1 = 27; + /** Audio data format: DTS UHD Profile-2 compressed + * DTS-UHD Profile-2 supports delivery of Channel-Based Audio, Object-Based Audio + * and High Order Ambisonic presentations up to the fourth order. + * Use {@link #ENCODING_DTS_UHD_P1} to transmit DTS UHD Profile 1 (aka DTS:X Profile 1) + * bitstream. + * Use {@link #ENCODING_DTS_UHD_P2} to transmit DTS UHD Profile 2 (aka DTS:X Profile 2) + * bitstream. */ + public static final int ENCODING_DTS_UHD_P2 = 30; /** @hide */ public static String toLogFriendlyEncoding(int enc) { @@ -410,10 +429,14 @@ public final class AudioFormat implements Parcelable { return "ENCODING_MPEGH_LC_L3"; case ENCODING_MPEGH_LC_L4: return "ENCODING_MPEGH_LC_L4"; - case ENCODING_DTS_UHD: - return "ENCODING_DTS_UHD"; + case ENCODING_DTS_UHD_P1: + return "ENCODING_DTS_UHD_P1"; case ENCODING_DRA: return "ENCODING_DRA"; + case ENCODING_DTS_HD_MA: + return "ENCODING_DTS_HD_MA"; + case ENCODING_DTS_UHD_P2: + return "ENCODING_DTS_UHD_P2"; default : return "invalid encoding " + enc; } @@ -768,8 +791,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_MPEGH_BL_L4: case ENCODING_MPEGH_LC_L3: case ENCODING_MPEGH_LC_L4: - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: case ENCODING_DRA: + case ENCODING_DTS_HD_MA: + case ENCODING_DTS_UHD_P2: return true; default: return false; @@ -805,8 +830,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_MPEGH_BL_L4: case ENCODING_MPEGH_LC_L3: case ENCODING_MPEGH_LC_L4: - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: case ENCODING_DRA: + case ENCODING_DTS_HD_MA: + case ENCODING_DTS_UHD_P2: return true; default: return false; @@ -845,8 +872,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_MPEGH_BL_L4: case ENCODING_MPEGH_LC_L3: case ENCODING_MPEGH_LC_L4: - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: case ENCODING_DRA: + case ENCODING_DTS_HD_MA: + case ENCODING_DTS_UHD_P2: return false; case ENCODING_INVALID: default: @@ -885,8 +914,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_MPEGH_BL_L4: case ENCODING_MPEGH_LC_L3: case ENCODING_MPEGH_LC_L4: - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: case ENCODING_DRA: + case ENCODING_DTS_HD_MA: + case ENCODING_DTS_UHD_P2: return false; case ENCODING_INVALID: default: @@ -1173,8 +1204,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_MPEGH_BL_L4: case ENCODING_MPEGH_LC_L3: case ENCODING_MPEGH_LC_L4: - case ENCODING_DTS_UHD: + case ENCODING_DTS_UHD_P1: case ENCODING_DRA: + case ENCODING_DTS_HD_MA: + case ENCODING_DTS_UHD_P2: mEncoding = encoding; break; case ENCODING_INVALID: @@ -1402,8 +1435,10 @@ public final class AudioFormat implements Parcelable { ENCODING_MPEGH_BL_L4, ENCODING_MPEGH_LC_L3, ENCODING_MPEGH_LC_L4, - ENCODING_DTS_UHD, - ENCODING_DRA } + ENCODING_DTS_UHD_P1, + ENCODING_DRA, + ENCODING_DTS_HD_MA, + ENCODING_DTS_UHD_P2 } ) @Retention(RetentionPolicy.SOURCE) public @interface Encoding {} @@ -1423,8 +1458,10 @@ public final class AudioFormat implements Parcelable { ENCODING_MPEGH_BL_L4, ENCODING_MPEGH_LC_L3, ENCODING_MPEGH_LC_L4, - ENCODING_DTS_UHD, - ENCODING_DRA + ENCODING_DTS_UHD_P1, + ENCODING_DRA, + ENCODING_DTS_HD_MA, + ENCODING_DTS_UHD_P2 }; /** @hide */ @@ -1442,8 +1479,10 @@ public final class AudioFormat implements Parcelable { ENCODING_MPEGH_BL_L4, ENCODING_MPEGH_LC_L3, ENCODING_MPEGH_LC_L4, - ENCODING_DTS_UHD, - ENCODING_DRA } + ENCODING_DTS_UHD_P1, + ENCODING_DRA, + ENCODING_DTS_HD_MA, + ENCODING_DTS_UHD_P2 } ) @Retention(RetentionPolicy.SOURCE) public @interface SurroundSoundEncoding {} @@ -1485,10 +1524,14 @@ public final class AudioFormat implements Parcelable { return "MPEG-H 3D Audio low complexity profile level 3"; case ENCODING_MPEGH_LC_L4: return "MPEG-H 3D Audio low complexity profile level 4"; - case ENCODING_DTS_UHD: - return "DTS UHD"; + case ENCODING_DTS_UHD_P1: + return "DTS UHD Profile 1"; case ENCODING_DRA: return "DRA"; + case ENCODING_DTS_HD_MA: + return "DTS HD Master Audio"; + case ENCODING_DTS_UHD_P2: + return "DTS UHD Profile 2"; default: return "Unknown surround sound format"; } diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index b7282218af35..e6896bc2662f 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -443,6 +443,10 @@ public class AudioSystem return "AUDIO_FORMAT_APTX_ADAPTIVE_QLEA"; case /* AUDIO_FORMAT_APTX_ADAPTIVE_R4 */ 0x31000000: return "AUDIO_FORMAT_APTX_ADAPTIVE_R4"; + case /* AUDIO_FORMAT_DTS_HD_MA */ 0x32000000: + return "AUDIO_FORMAT_DTS_HD_MA"; + case /* AUDIO_FORMAT_DTS_UHD_P2 */ 0x33000000: + return "AUDIO_FORMAT_DTS_UHD_P2"; /* Aliases */ case /* AUDIO_FORMAT_PCM_16_BIT */ 0x1: diff --git a/media/java/android/media/audio/common/AidlConversion.java b/media/java/android/media/audio/common/AidlConversion.java index 491a8ec2c130..6a5eae6990fb 100644 --- a/media/java/android/media/audio/common/AidlConversion.java +++ b/media/java/android/media/audio/common/AidlConversion.java @@ -515,7 +515,7 @@ public class AidlConversion { } else if (MediaFormat.MIMETYPE_AUDIO_MPEGH_LC_L4.equals(aidl.encoding)) { return AudioFormat.ENCODING_MPEGH_LC_L4; } else if (MediaFormat.MIMETYPE_AUDIO_DTS_UHD.equals(aidl.encoding)) { - return AudioFormat.ENCODING_DTS_UHD; + return AudioFormat.ENCODING_DTS_UHD_P1; } else if (MediaFormat.MIMETYPE_AUDIO_DRA.equals(aidl.encoding)) { return AudioFormat.ENCODING_DRA; } else { |