summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Romberger <bromberg@codeaurora.org>2018-04-26 18:19:50 -0700
committerFawad Shaukat <fshaukat@codeaurora.org>2019-06-10 20:57:31 -0700
commit13c9c20252b86c1244879053ce77328aa741e490 (patch)
tree97afdd0243229fffa3908652f24d6866409bc692
parentcc6bec461f0d67dd7c696cbe5852e15778ee8b86 (diff)
downloadandroid_hardware_qcom_media-13c9c20252b86c1244879053ce77328aa741e490.tar.gz
android_hardware_qcom_media-13c9c20252b86c1244879053ce77328aa741e490.tar.bz2
android_hardware_qcom_media-13c9c20252b86c1244879053ce77328aa741e490.zip
mm-core: Add MPEG-H decoder support
Add OMX audio extention for MPEG-H 3D Audio. Include separate extentions to pass head rotation, channel mask, header, and binaural mode. All of which are used in the MPEG-H decoder. Change-Id: I382d742da2ecaf02f2325565346801ecbda56e50
-rw-r--r--mm-core/inc/QOMX_AudioExtensions.h42
-rw-r--r--mm-core/inc/QOMX_AudioIndexExtensions.h4
2 files changed, 46 insertions, 0 deletions
diff --git a/mm-core/inc/QOMX_AudioExtensions.h b/mm-core/inc/QOMX_AudioExtensions.h
index dab06142..b226224d 100644
--- a/mm-core/inc/QOMX_AudioExtensions.h
+++ b/mm-core/inc/QOMX_AudioExtensions.h
@@ -595,6 +595,48 @@ typedef struct QOMX_AUDIO_PARAM_MPEGH_TYPE {
Decoder **/
} QOMX_AUDIO_PARAM_MPEGH_TYPE;
+typedef struct QOMX_AUDIO_PARAM_MPEGH_HEADER_TYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_U64 pConfig;
+ OMX_U64 pSceneInfo;
+ OMX_U64 pDRC;
+ OMX_U64 pGroup;
+ OMX_U64 pSwitchGroup;
+ OMX_U64 pPreset;
+ OMX_U64 pTextLabel;
+} QOMX_AUDIO_PARAM_MPEGH_HEADER_TYPE;
+
+typedef struct QOMX_AUDIO_PARAM_CHANNEL_CONFIG_TYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_U32 nChannelMask; /* Masked defined in Android audio-base.h */
+} QOMX_AUDIO_PARAM_CHANNEL_CONFIG_TYPE;
+
+typedef enum QOMX_BINAURAL_MODE {
+ QOMX_BINAURAL_MODE_OFF,
+ QOMX_BINAURAL_MODE_ON
+} QOMX_BINAURAL_MODE;
+
+typedef struct QOMX_AUDIO_PARAM_BINAURAL_TYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ QOMX_BINAURAL_MODE eBinauralMode;
+} QOMX_AUDIO_PARAM_BINAURAL_TYPE;
+
+typedef struct QOMX_AUDIO_PARAM_ROTATION_TYPE {
+ OMX_U32 nSize;
+ OMX_VERSIONTYPE nVersion;
+ OMX_U32 nPortIndex;
+ OMX_S32 nQX; /* x vector component of quaternion */
+ OMX_S32 nQY; /* y vector component of quaternion */
+ OMX_S32 nQZ; /* z vector component of quaternion */
+ OMX_S32 nQW; /* Scalar component of quaternion */
+} QOMX_AUDIO_PARAM_ROTATION_TYPE;
+
enum {
kKeyIndexAlacFrameLength = 0,
kKeyIndexAlacCompatibleVersion = 4,
diff --git a/mm-core/inc/QOMX_AudioIndexExtensions.h b/mm-core/inc/QOMX_AudioIndexExtensions.h
index 8e83c076..e85c1180 100644
--- a/mm-core/inc/QOMX_AudioIndexExtensions.h
+++ b/mm-core/inc/QOMX_AudioIndexExtensions.h
@@ -76,6 +76,10 @@ typedef enum QOMX_AUDIO_EXTENSIONS_INDEXTYPE
QOMX_IndexParamAudioFlacDec = 0x7F20000A, /** "OMX.Qualcomm.index.audio.flacdec**/
QOMX_IndexParamAudioDsdDec = 0x7F20000B, /** "OMX.Qualcomm.index.audio.Dsddec**/
QOMX_IndexParamAudioMpegh = 0x7F20000C, /** "OMX.Qualcomm.index.audio.mpegh**/
+ QOMX_IndexParamAudioMpeghHeader = 0x7F20000D, /** "OMX.Qualcomm.index.audio.MpeghHeader"**/
+ QOMX_IndexParamAudioChannelMask = 0x7F20000E, /** "OMX.Qualcomm.index.audio.ChannelMask"**/
+ QOMX_IndexParamAudioBinauralMode = 0x7F20000F, /** "OMX.Qualcomm.index.audio.BinauralMode"**/
+ QOMX_IndexParamAudioRotation = 0x7F200010, /** "OMX.Qualcomm.index.audio.Rotation"**/
QOMX_IndexParamAudioUnused = 0x7F2FFFFF
} QOMX_AUDIO_EXTENSIONS_INDEXTYPE;