codec2: add MPEG-H 3D audio profiles and levels
Bug: 185100731
Change-Id: Ia128b79b7e46ad189709f21bf286c6d6601bfe8f
diff --git a/media/codec2/core/include/C2Config.h b/media/codec2/core/include/C2Config.h
index 6176646..9d9ed70 100644
--- a/media/codec2/core/include/C2Config.h
+++ b/media/codec2/core/include/C2Config.h
@@ -392,6 +392,7 @@
namespace {
+// Codec bases are ordered by their date of introduction to the code base.
enum : uint32_t {
_C2_PL_MP2V_BASE = 0x1000,
_C2_PL_AAC_BASE = 0x2000,
@@ -403,12 +404,15 @@
_C2_PL_DV_BASE = 0x8000,
_C2_PL_AV1_BASE = 0x9000,
_C2_PL_VP8_BASE = 0xA000,
+ _C2_PL_MPEGH_BASE = 0xB000, // MPEG-H 3D Audio
C2_PROFILE_LEVEL_VENDOR_START = 0x70000000,
};
}
+// Profiles and levels for each codec are ordered based on how they are ordered in the
+// corresponding standard documents at introduction, and chronologically afterwards.
enum C2Config::profile_t : uint32_t {
PROFILE_UNUSED = 0, ///< profile is not used by this media type
@@ -562,6 +566,13 @@
PROFILE_VP8_1, ///< VP8 Profile 1
PROFILE_VP8_2, ///< VP8 Profile 2
PROFILE_VP8_3, ///< VP8 Profile 3
+
+ // MPEG-H 3D Audio profiles
+ PROFILE_MPEGH_MAIN = _C2_PL_MPEGH_BASE, ///< MPEG-H Main
+ PROFILE_MPEGH_HIGH, ///< MPEG-H High
+ PROFILE_MPEGH_LC, ///< MPEG-H Low-complexity
+ PROFILE_MPEGH_BASELINE, ///< MPEG-H Baseline
+
};
enum C2Config::level_t : uint32_t {
@@ -704,6 +715,13 @@
LEVEL_AV1_7_1, ///< AV1 Level 7.1
LEVEL_AV1_7_2, ///< AV1 Level 7.2
LEVEL_AV1_7_3, ///< AV1 Level 7.3
+
+ // MPEG-H 3D Audio levels
+ LEVEL_MPEGH_1 = _C2_PL_MPEGH_BASE, ///< MPEG-H L1
+ LEVEL_MPEGH_2, ///< MPEG-H L2
+ LEVEL_MPEGH_3, ///< MPEG-H L3
+ LEVEL_MPEGH_4, ///< MPEG-H L4
+ LEVEL_MPEGH_5, ///< MPEG-H L5
};
struct C2ProfileLevelStruct {
diff --git a/media/codec2/vndk/C2Config.cpp b/media/codec2/vndk/C2Config.cpp
index 6de974b..e9223fb 100644
--- a/media/codec2/vndk/C2Config.cpp
+++ b/media/codec2/vndk/C2Config.cpp
@@ -146,6 +146,10 @@
{ "vp8-1", C2Config::PROFILE_VP8_1 },
{ "vp8-2", C2Config::PROFILE_VP8_2 },
{ "vp8-3", C2Config::PROFILE_VP8_3 },
+ { "mpegh-main", C2Config::PROFILE_MPEGH_MAIN },
+ { "mpegh-high", C2Config::PROFILE_MPEGH_HIGH },
+ { "mpegh-lc", C2Config::PROFILE_MPEGH_LC },
+ { "mpegh-baseline", C2Config::PROFILE_MPEGH_BASELINE },
}))
DEFINE_C2_ENUM_VALUE_CUSTOM_HELPER(C2Config::level_t, ({
@@ -252,6 +256,11 @@
{ "av1-7.1", C2Config::LEVEL_AV1_7_1 },
{ "av1-7.2", C2Config::LEVEL_AV1_7_2 },
{ "av1-7.3", C2Config::LEVEL_AV1_7_3 },
+ { "mpegh-1", C2Config::LEVEL_MPEGH_1 },
+ { "mpegh-2", C2Config::LEVEL_MPEGH_2 },
+ { "mpegh-3", C2Config::LEVEL_MPEGH_3 },
+ { "mpegh-4", C2Config::LEVEL_MPEGH_4 },
+ { "mpegh-5", C2Config::LEVEL_MPEGH_5 },
}))
DEFINE_C2_ENUM_VALUE_CUSTOM_HELPER(C2BufferData::type_t, ({