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
This commit is contained in:
jiabin
2021-01-27 22:06:18 +00:00
parent 77bb0b7291
commit f836836b3d
3 changed files with 83 additions and 2 deletions

View File

@@ -19845,6 +19845,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

View File

@@ -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:

View File

@@ -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";
}