diff options
| author | 2021-01-27 22:06:18 +0000 | |
|---|---|---|
| committer | 2021-04-08 21:15:21 +0000 | |
| commit | b08f66b72d7970feaa4ac68d3ecab085dba9a868 (patch) | |
| tree | 44642259fb1dda928ef46136461823f9371c60ef | |
| parent | f81f606edf6d4321263529556a1551ec1e2e686f (diff) | |
Add constant values for MPEG-H.
MPEG-H is a new surround audio codec. Low complexity and baseline with
audio level as 3 and 4 is defined since they are relevant for the
current and upcoming commercial services.
Bug: 178619392
Test: make, atest AudioFormatTest
Change-Id: Iea5432765abeb485a31c8848793dffce1d4c6a0b
Merged-In: Iea5432765abeb485a31c8848793dffce1d4c6a0b
| -rw-r--r-- | core/api/current.txt | 4 | ||||
| -rw-r--r-- | core/jni/android_media_AudioFormat.h | 20 | ||||
| -rw-r--r-- | media/java/android/media/AudioFormat.java | 61 |
3 files changed, 83 insertions, 2 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index cc29018000a7..29de79e470d0 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -19381,6 +19381,10 @@ package android.media { field public static final int ENCODING_IEC61937 = 13; // 0xd field public static final int ENCODING_INVALID = 0; // 0x0 field public static final int ENCODING_MP3 = 9; // 0x9 + field public static final int ENCODING_MPEGH_BL_L3 = 23; // 0x17 + field public static final int ENCODING_MPEGH_BL_L4 = 24; // 0x18 + field public static final int ENCODING_MPEGH_LC_L3 = 25; // 0x19 + field public static final int ENCODING_MPEGH_LC_L4 = 26; // 0x1a field public static final int ENCODING_OPUS = 20; // 0x14 field public static final int ENCODING_PCM_16BIT = 2; // 0x2 field public static final int ENCODING_PCM_24BIT_PACKED = 21; // 0x15 diff --git a/core/jni/android_media_AudioFormat.h b/core/jni/android_media_AudioFormat.h index 5f2dcdf975b6..5630a1e23f83 100644 --- a/core/jni/android_media_AudioFormat.h +++ b/core/jni/android_media_AudioFormat.h @@ -41,6 +41,10 @@ #define ENCODING_OPUS 20 #define ENCODING_PCM_24BIT_PACKED 21 #define ENCODING_PCM_32BIT 22 +#define ENCODING_MPEGH_BL_L3 23 +#define ENCODING_MPEGH_BL_L4 24 +#define ENCODING_MPEGH_LC_L3 25 +#define ENCODING_MPEGH_LC_L4 26 #define ENCODING_INVALID 0 #define ENCODING_DEFAULT 1 @@ -98,6 +102,14 @@ static inline audio_format_t audioFormatToNative(int audioFormat) return AUDIO_FORMAT_PCM_24_BIT_PACKED; case ENCODING_PCM_32BIT: return AUDIO_FORMAT_PCM_32_BIT; + case ENCODING_MPEGH_BL_L3: + return AUDIO_FORMAT_MPEGH_BL_L3; + case ENCODING_MPEGH_BL_L4: + return AUDIO_FORMAT_MPEGH_BL_L4; + case ENCODING_MPEGH_LC_L3: + return AUDIO_FORMAT_MPEGH_LC_L3; + case ENCODING_MPEGH_LC_L4: + return AUDIO_FORMAT_MPEGH_LC_L4; default: return AUDIO_FORMAT_INVALID; } @@ -159,6 +171,14 @@ static inline int audioFormatFromNative(audio_format_t nativeFormat) return ENCODING_DOLBY_MAT; case AUDIO_FORMAT_OPUS: return ENCODING_OPUS; + case AUDIO_FORMAT_MPEGH_BL_L3: + return ENCODING_MPEGH_BL_L3; + case AUDIO_FORMAT_MPEGH_BL_L4: + return ENCODING_MPEGH_BL_L4; + case AUDIO_FORMAT_MPEGH_LC_L3: + return ENCODING_MPEGH_LC_L3; + case AUDIO_FORMAT_MPEGH_LC_L4: + return ENCODING_MPEGH_LC_L4; 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 172e9d8d0e55..5009fbafc5d0 100644 --- a/media/java/android/media/AudioFormat.java +++ b/media/java/android/media/AudioFormat.java @@ -316,6 +316,15 @@ public final class AudioFormat implements Parcelable { * Not guaranteed to be supported by devices, may be emulated if not supported. */ public static final int ENCODING_PCM_32BIT = 22; + /** Audio data format: MPEG-H baseline profile, level 3 */ + public static final int ENCODING_MPEGH_BL_L3 = 23; + /** Audio data format: MPEG-H baseline profile, level 4 */ + public static final int ENCODING_MPEGH_BL_L4 = 24; + /** Audio data format: MPEG-H low complexity profile, level 3 */ + 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; + /** @hide */ public static String toLogFriendlyEncoding(int enc) { switch(enc) { @@ -363,6 +372,14 @@ public final class AudioFormat implements Parcelable { return "ENCODING_PCM_24BIT_PACKED"; case ENCODING_PCM_32BIT: return "ENCODING_PCM_32BIT"; + case ENCODING_MPEGH_BL_L3: + return "ENCODING_MPEGH_BL_L3"; + case ENCODING_MPEGH_BL_L4: + return "ENCODING_MPEGH_BL_L4"; + case ENCODING_MPEGH_LC_L3: + return "ENCODING_MPEGH_LC_L3"; + case ENCODING_MPEGH_LC_L4: + return "ENCODING_MPEGH_LC_L4"; default : return "invalid encoding " + enc; } @@ -594,6 +611,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_OPUS: case ENCODING_PCM_24BIT_PACKED: case ENCODING_PCM_32BIT: + case ENCODING_MPEGH_BL_L3: + case ENCODING_MPEGH_BL_L4: + case ENCODING_MPEGH_LC_L3: + case ENCODING_MPEGH_LC_L4: return true; default: return false; @@ -625,6 +646,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_OPUS: case ENCODING_PCM_24BIT_PACKED: case ENCODING_PCM_32BIT: + case ENCODING_MPEGH_BL_L3: + case ENCODING_MPEGH_BL_L4: + case ENCODING_MPEGH_LC_L3: + case ENCODING_MPEGH_LC_L4: return true; default: return false; @@ -659,6 +684,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_E_AC3_JOC: case ENCODING_DOLBY_MAT: case ENCODING_OPUS: + case ENCODING_MPEGH_BL_L3: + case ENCODING_MPEGH_BL_L4: + case ENCODING_MPEGH_LC_L3: + case ENCODING_MPEGH_LC_L4: return false; case ENCODING_INVALID: default: @@ -693,6 +722,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_E_AC3_JOC: case ENCODING_DOLBY_MAT: case ENCODING_OPUS: + case ENCODING_MPEGH_BL_L3: + case ENCODING_MPEGH_BL_L4: + case ENCODING_MPEGH_LC_L3: + case ENCODING_MPEGH_LC_L4: return false; case ENCODING_INVALID: default: @@ -975,6 +1008,10 @@ public final class AudioFormat implements Parcelable { case ENCODING_OPUS: case ENCODING_PCM_24BIT_PACKED: case ENCODING_PCM_32BIT: + case ENCODING_MPEGH_BL_L3: + case ENCODING_MPEGH_BL_L4: + case ENCODING_MPEGH_LC_L3: + case ENCODING_MPEGH_LC_L4: mEncoding = encoding; break; case ENCODING_INVALID: @@ -1197,7 +1234,11 @@ public final class AudioFormat implements Parcelable { ENCODING_DOLBY_MAT, ENCODING_OPUS, ENCODING_PCM_24BIT_PACKED, - ENCODING_PCM_32BIT } + ENCODING_PCM_32BIT, + ENCODING_MPEGH_BL_L3, + ENCODING_MPEGH_BL_L4, + ENCODING_MPEGH_LC_L3, + ENCODING_MPEGH_LC_L4 } ) @Retention(RetentionPolicy.SOURCE) public @interface Encoding {} @@ -1213,6 +1254,10 @@ public final class AudioFormat implements Parcelable { ENCODING_AC4, ENCODING_E_AC3_JOC, ENCODING_DOLBY_MAT, + ENCODING_MPEGH_BL_L3, + ENCODING_MPEGH_BL_L4, + ENCODING_MPEGH_LC_L3, + ENCODING_MPEGH_LC_L4, }; /** @hide */ @@ -1225,7 +1270,11 @@ public final class AudioFormat implements Parcelable { ENCODING_DOLBY_TRUEHD, ENCODING_AC4, ENCODING_E_AC3_JOC, - ENCODING_DOLBY_MAT } + ENCODING_DOLBY_MAT, + ENCODING_MPEGH_BL_L3, + ENCODING_MPEGH_BL_L4, + ENCODING_MPEGH_LC_L3, + ENCODING_MPEGH_LC_L4 } ) @Retention(RetentionPolicy.SOURCE) public @interface SurroundSoundEncoding {} @@ -1259,6 +1308,14 @@ public final class AudioFormat implements Parcelable { return "Dolby Atmos in Dolby Digital Plus"; case ENCODING_DOLBY_MAT: return "Dolby MAT"; + case ENCODING_MPEGH_BL_L3: + return "MPEG-H 3D Audio baseline profile level 3"; + case ENCODING_MPEGH_BL_L4: + return "MPEG-H 3D Audio baseline profile level 4"; + case ENCODING_MPEGH_LC_L3: + 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"; default: return "Unknown surround sound format"; } |