From e91cd213d439c076051b1fb02c8bc40c11791dbb Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Fri, 1 Aug 2014 22:20:17 -0700 Subject: [PATCH] AAC codec profile updates Add new fields to OMX_AUDIO_PARAM_AACPROFILETYPE for - SBR configuration - decoder max number of channels - decoder DRC parameters Bug 16740915 Change-Id: Ib01822bc402fe9064c6c1c68b72c570cf72b7ecb --- include/media/openmax/OMX_Audio.h | 1 + include/media/openmax/OMX_AudioExt.h | 14 ++++++++++++++ include/media/openmax/OMX_IndexExt.h | 1 + 3 files changed, 16 insertions(+) diff --git a/include/media/openmax/OMX_Audio.h b/include/media/openmax/OMX_Audio.h index 89ce0fc95..f4cb6435b 100644 --- a/include/media/openmax/OMX_Audio.h +++ b/include/media/openmax/OMX_Audio.h @@ -278,6 +278,7 @@ typedef enum OMX_AUDIO_AACPROFILETYPE{ #define OMX_AUDIO_AACToolTNS 0x00000004 /**< TNS: Temporal Noise Shaping tool allowed or active */ #define OMX_AUDIO_AACToolPNS 0x00000008 /**< PNS: MPEG-4 Perceptual Noise substitution tool allowed or active */ #define OMX_AUDIO_AACToolLTP 0x00000010 /**< LTP: MPEG-4 Long Term Prediction tool allowed or active */ +#define OMX_AUDIO_AACToolVendor 0x00010000 /**< NOT A KHRONOS VALUE, offset for vendor-specific additions */ #define OMX_AUDIO_AACToolAll 0x7FFFFFFF /**< all AAC tools allowed or active (*/ /** MPEG-4 AAC error resilience (ER) tool usage (for nAACERtools in OMX_AUDIO_PARAM_AACPROFILETYPE). diff --git a/include/media/openmax/OMX_AudioExt.h b/include/media/openmax/OMX_AudioExt.h index dc6457b6e..8a2c4de6e 100644 --- a/include/media/openmax/OMX_AudioExt.h +++ b/include/media/openmax/OMX_AudioExt.h @@ -40,6 +40,9 @@ extern "C" { */ #include +#define OMX_AUDIO_AACToolAndroidSSBR (OMX_AUDIO_AACToolVendor << 0) /**< SSBR: MPEG-4 Single-rate (downsampled) Spectral Band Replication tool allowed or active */ +#define OMX_AUDIO_AACToolAndroidDSBR (OMX_AUDIO_AACToolVendor << 1) /**< DSBR: MPEG-4 Dual-rate Spectral Band Replication tool allowed or active */ + typedef enum OMX_AUDIO_CODINGEXTTYPE { OMX_AUDIO_CodingAndroidUnused = OMX_AUDIO_CodingKhronosExtensions + 0x00100000, OMX_AUDIO_CodingAndroidAC3, /**< AC3 encoded data */ @@ -69,6 +72,17 @@ typedef struct OMX_AUDIO_PARAM_ANDROID_OPUSTYPE { limit the audio signal. Use 0 to let encoder decide */ } OMX_AUDIO_PARAM_ANDROID_OPUSTYPE; +typedef struct OMX_AUDIO_PARAM_ANDROID_AACPRESENTATIONTYPE { + OMX_U32 nSize; /**< size of the structure in bytes */ + OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ + OMX_S32 nMaxOutputChannels; /**< Maximum channel count to be output, -1 if unspecified, 0 if downmixing disabled */ + OMX_S32 nDrcCut; /**< The DRC attenuation factor, between 0 and 127, -1 if unspecified */ + OMX_S32 nDrcBoost; /**< The DRC amplification factor, between 0 and 127, -1 if unspecified */ + OMX_S32 nHeavyCompression; /**< 0 for light compression, 1 for heavy compression, -1 if unspecified */ + OMX_S32 nTargetReferenceLevel; /**< Target reference level, between 0 and 127, -1 if unspecified */ + OMX_S32 nEncodedTargetLevel; /**< Target reference level assumed at the encoder, between 0 and 127, -1 if unspecified */ +} OMX_AUDIO_PARAM_ANDROID_AACPRESENTATIONTYPE; + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/include/media/openmax/OMX_IndexExt.h b/include/media/openmax/OMX_IndexExt.h index 70708094e..6cd774bd8 100644 --- a/include/media/openmax/OMX_IndexExt.h +++ b/include/media/openmax/OMX_IndexExt.h @@ -59,6 +59,7 @@ typedef enum OMX_INDEXEXTTYPE { OMX_IndexExtAudioStartUnused = OMX_IndexKhronosExtensions + 0x00400000, OMX_IndexParamAudioAndroidAc3, /**< reference: OMX_AUDIO_PARAM_ANDROID_AC3TYPE */ OMX_IndexParamAudioAndroidOpus, /**< reference: OMX_AUDIO_PARAM_ANDROID_OPUSTYPE */ + OMX_IndexParamAudioAndroidAacPresentation, /**< reference: OMX_AUDIO_PARAM_ANDROID_AACPRESENTATIONTYPE */ /* Image parameters and configurations */ OMX_IndexExtImageStartUnused = OMX_IndexKhronosExtensions + 0x00500000,