Home | History | Annotate | Download | only in inc
      1 /*--------------------------------------------------------------------------
      2 Copyright (c) 2009, 2011, Code Aurora Forum. All rights reserved.
      3 
      4 Redistribution and use in source and binary forms, with or without
      5 modification, are permitted provided that the following conditions are met:
      6     * Redistributions of source code must retain the above copyright
      7       notice, this list of conditions and the following disclaimer.
      8     * Redistributions in binary form must reproduce the above copyright
      9       notice, this list of conditions and the following disclaimer in the
     10       documentation and/or other materials provided with the distribution.
     11     * Neither the name of Code Aurora nor
     12       the names of its contributors may be used to endorse or promote
     13       products derived from this software without specific prior written
     14       permission.
     15 
     16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18 IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     19 NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     20 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     21 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     22 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     23 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     24 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     25 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     26 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 --------------------------------------------------------------------------*/
     28 /*============================================================================
     29                             O p e n M A X   w r a p p e r s
     30                              O p e n  M A X   C o r e
     31 
     32 *//** @file QOMX_AudioExtensions.h
     33   This module contains the extensions for Audio
     34 
     35 *//*========================================================================*/
     36 
     37 #ifndef __H_QOMX_AUDIOEXTENSIONS_H__
     38 #define __H_QOMX_AUDIOEXTENSIONS_H__
     39 
     40 /*========================================================================
     41 
     42                      INCLUDE FILES FOR MODULE
     43 
     44 ========================================================================== */
     45 #include <OMX_Audio.h>
     46 
     47 /*========================================================================
     48 
     49                       DEFINITIONS AND DECLARATIONS
     50 
     51 ========================================================================== */
     52 
     53 #if defined( __cplusplus )
     54 extern "C"
     55 {
     56 #endif /* end of macro __cplusplus */
     57 
     58 /* Audio extension strings */
     59 #define OMX_QCOM_INDEX_PARAM_AMRWBPLUS       "OMX.Qualcomm.index.audio.amrwbplus"
     60 #define OMX_QCOM_INDEX_PARAM_WMA10PRO        "OMX.Qualcomm.index.audio.wma10pro"
     61 #define OMX_QCOM_INDEX_PARAM_SESSIONID       "OMX.Qualcomm.index.audio.sessionId"
     62 #define OMX_QCOM_INDEX_PARAM_VOICERECORDTYPE "OMX.Qualcomm.index.audio.VoiceRecord"
     63 #define OMX_QCOM_INDEX_PARAM_AC3TYPE	     "OMX.Qualcomm.index.audio.ac3"
     64 #define OMX_QCOM_INDEX_PARAM_AC3PP	     "OMX.Qualcomm.index.audio.ac3.postproc"
     65 #define OMX_QCOM_INDEX_PARAM_DAK_BUNDLE      "OMX.Qualcomm.index.audio.dakbundle"
     66 #define OMX_QCOM_INDEX_PARAM_DAK_M2S         "OMX.Qualcomm.index.audio.dak_m2s"
     67 #define OMX_QCOM_INDEX_PARAM_DAK_SSE         "OMX.Qualcomm.index.audio.dak_sse"
     68 #define OMX_QCOM_INDEX_PARAM_DAK_SLC         "OMX.Qualcomm.index.audio.dak_slc"
     69 #define OMX_QCOM_INDEX_PARAM_DAK_VOL         "OMX.Qualcomm.index.audio.dak_vol"
     70 #define OMX_QCOM_INDEX_PARAM_DAK_NB          "OMX.Qualcomm.index.audio.dak_nb"
     71 #define OMX_QCOM_INDEX_PARAM_DAK_GEQ         "OMX.Qualcomm.index.audio.dak_geq"
     72 #define OMX_QCOM_INDEX_PARAM_DAK_MSR         "OMX.Qualcomm.index.audio.dak_msr"
     73 #define OMX_QCOM_INDEX_PARAM_DAK_HFE         "OMX.Qualcomm.index.audio.dak_hfe"
     74 #define OMX_QCOM_INDEX_PARAM_DAK_FADE        "OMX.Qualcomm.index.audio.dak_fade"
     75 #define OMX_QCOM_INDEX_PARAM_DAK_SEQ         "OMX.Qualcomm.index.audio.dak_seq"
     76 #define OMX_QCOM_INDEX_CONFIG_DUALMONO       "OMX.Qualcomm.index.audio.dualmono"
     77 
     78 typedef enum QOMX_AUDIO_AMRBANDMODETYPE {
     79     QOMX_AUDIO_AMRBandModeWB9              = 0x7F000001,/**< AMRWB Mode 9 = SID*/
     80     QOMX_AUDIO_AMRBandModeWB10             = 0x7F000002,/**< AMRWB Mode 10 = 13600 bps */
     81     QOMX_AUDIO_AMRBandModeWB11             = 0x7F000003,/**< AMRWB Mode 11 = 18000 bps */
     82     QOMX_AUDIO_AMRBandModeWB12             = 0x7F000004,/**< AMRWB Mode 12 = 24000 bps */
     83     QOMX_AUDIO_AMRBandModeWB13             = 0x7F000005,/**< AMRWB Mode 13 = 24000 bps */
     84     QOMX_AUDIO_AMRBandModeWB14             = 0x7F000006,/**< AMRWB Mode 14 = FRAME_ERASE*/
     85     QOMX_AUDIO_AMRBandModeWB15             = 0x7F000007,/**< AMRWB Mode 15 = NO_DATA */
     86 }QOMX_AUDIO_AMRBANDMODETYPE;
     87 
     88 typedef enum QOMX_AUDIO_CODINGTYPE {
     89    QOMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     90    QOMX_AUDIO_CodingEVRCB  = 0x7F000001,
     91    QOMX_AUDIO_CodingEVRCWB = 0x7F000002,
     92    QOMX_AUDIO_CodingFLAC   = 0x7F000003,
     93    QOMX_AUDIO_CodingMax = 0x7FFFFFFF
     94 }QOMX_AUDIO_CODINGTYPE;
     95 
     96 
     97 /**
     98  * AMR WB PLUS type
     99  *
    100  *  STRUCT MEMBERS:
    101  *  nSize           : Size of the structure in bytes
    102  *  nVersion        : OMX specification version information
    103  *  nPortIndex      : Port that this structure applies to
    104  *  nChannels       : Number of channels
    105  *  nBitRate        : Bit rate read only field
    106  *  nSampleRate     : Sampling frequency for the clip(16/24/32/48KHz)
    107  *  eAMRBandMode    : AMR Band Mode enumeration
    108  *  eAMRDTXMode     : AMR DTX Mode enumeration
    109  *  eAMRFrameFormat : AMR frame format enumeration
    110  */
    111 
    112 typedef struct QOMX_AUDIO_PARAM_AMRWBPLUSTYPE {
    113     OMX_U32 nSize;
    114     OMX_VERSIONTYPE nVersion;
    115     OMX_U32 nPortIndex;
    116     OMX_U32 nChannels;
    117     OMX_U32 nBitRate;
    118     OMX_U32 nSampleRate;
    119     OMX_AUDIO_AMRBANDMODETYPE   eAMRBandMode;
    120     OMX_AUDIO_AMRDTXMODETYPE     eAMRDTXMode;
    121     OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat;
    122 } QOMX_AUDIO_PARAM_AMRWBPLUSTYPE;
    123 
    124 typedef enum QOMX_AUDIO_WMAFORMATTYPE {
    125     QOMX_AUDIO_WMAFormat10Pro = 0x7F000001, /**< Windows Media Audio format 10*/
    126 } QOMX_AUDIO_WMAFORMATTYPE;
    127 
    128 /**
    129  * WMA 10 PRO type
    130  *
    131  *  STRUCT MEMBERS:
    132  *  nSize              : Size of the structure in bytes
    133  *  nVersion           : OMX specification version information
    134  *  nPortIndex         : Port that this structure applies to
    135  *  nChannels          : Number of channels
    136  *  nBitRate           : Bit rate read only field
    137  *  eFormat            : Version of WMA stream / data
    138  *  eProfile           : Profile of WMA stream / data
    139  *  nSamplingRate      : Sampling rate of the source data
    140  *  nBlockAlign        : block alignment, or block size, in bytes of the audio codec
    141  *  nEncodeOptions     : WMA Type-specific data
    142  *  nSuperBlockAlign   : WMA Type-specific data
    143  *  validBitsPerSample : encoded stream (24-bit or 16-bit)
    144  *  formatTag          : codec ID(0x162 or 0x166)
    145  *  advancedEncodeOpt  : bit packed words indicating the features supported for LBR bitstream
    146  *  advancedEncodeOpt2 : bit packed words indicating the features supported for LBR bitstream
    147  */
    148 typedef struct QOMX_AUDIO_PARAM_WMA10PROTYPE {
    149     OMX_U32 nSize;
    150     OMX_VERSIONTYPE nVersion;
    151     OMX_U32 nPortIndex;
    152     OMX_U16 nChannels;
    153     OMX_U32 nBitRate;
    154     QOMX_AUDIO_WMAFORMATTYPE eFormat;
    155     OMX_AUDIO_WMAPROFILETYPE eProfile;
    156     OMX_U32 nSamplingRate;
    157     OMX_U16 nBlockAlign;
    158     OMX_U16 nEncodeOptions;
    159     OMX_U32 nSuperBlockAlign;
    160     OMX_U32 validBitsPerSample;
    161     OMX_U32 formatTag;
    162     OMX_U32 advancedEncodeOpt;
    163     OMX_U32 advancedEncodeOpt2;
    164     OMX_U16 nVirtualPktSize;
    165 } QOMX_AUDIO_PARAM_WMA10PROTYPE;
    166 
    167 
    168 typedef enum OMX_AUDIO_AC3FORMATTYPE {
    169    omx_audio_ac3       = 0x7f000001, /**< ac-3 */
    170    omx_audio_eac3      = 0x7f000002  /**< eac-3 */
    171 } OMX_AUDIO_AC3FORMATTYPE;
    172 
    173 typedef enum OMX_AUDIO_AC3_CHANNEL_CONFIG
    174 {
    175    OMX_AUDIO_AC3_CHANNEL_CONFIG_RSVD = 0,
    176    OMX_AUDIO_AC3_CHANNEL_CONFIG_1_0,
    177    OMX_AUDIO_AC3_CHANNEL_CONFIG_2_0,
    178    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_0,
    179    OMX_AUDIO_AC3_CHANNEL_CONFIG_2_1,
    180    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_1,
    181    OMX_AUDIO_AC3_CHANNEL_CONFIG_2_2,
    182    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_2,
    183    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_0_1,
    184    OMX_AUDIO_AC3_CHANNEL_CONFIG_2_2_1,
    185    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_2_1,
    186    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_0_2,
    187    OMX_AUDIO_AC3_CHANNEL_CONFIG_2_2_2,
    188    OMX_AUDIO_AC3_CHANNEL_CONFIG_3_2_2,
    189    OMX_AUDIO_AC3_CHANNEL_CONFIG_DEFAULT = 0xFFFF
    190 } OMX_AUDIO_AC3_CHANNEL_CONFIG;
    191 
    192 /**
    193  * AC-3 type
    194  *
    195  *  STRUCT MEMBERS:
    196  *  nSize               : Size of the structure in bytes
    197  *  nVersion            : OMX specification version information
    198  *  nPortIndex          : Port that this structure applies to
    199  *  nChannels           : Number of channels
    200  *  nBitRate            : Bitrate
    201  *  nSamplingRate       : Sampling rate, 32K, 44.1K, 48K only supported
    202  *  eFormat             : AC-3 or EAC-3
    203  *  eChannelConfig      : Channel configuration
    204  *  nProgramID          : Indication of ProgramID, 0-7
    205  *  bCompressionOn      : Flag to enable Compression
    206  *  bLfeOn              : Flag for LFE on/off
    207  *  bDelaySurroundChannels : Flag to put delay on surround channels
    208  *
    209  */
    210 typedef struct QOMX_AUDIO_PARAM_AC3TYPE {
    211    OMX_U32 nSize;
    212    OMX_VERSIONTYPE nVersion;
    213    OMX_U32 nPortIndex;
    214    OMX_U16 nChannels;
    215    OMX_U32 nBitRate;
    216    OMX_U32 nSamplingRate;
    217    OMX_AUDIO_AC3FORMATTYPE eFormat;
    218    OMX_AUDIO_AC3_CHANNEL_CONFIG eChannelConfig;
    219    OMX_U8 nProgramID;
    220    OMX_BOOL bCompressionOn;
    221    OMX_BOOL bLfeOn;
    222    OMX_BOOL bDelaySurroundChannels;
    223 } QOMX_AUDIO_PARAM_AC3TYPE;
    224 
    225 typedef enum OMX_AUDIO_AC3_CHANNEL_ROUTING
    226 {
    227    OMX_AUDIO_AC3_CHANNEL_LEFT,
    228    OMX_AUDIO_AC3_CHANNEL_CENTER,
    229    OMX_AUDIO_AC3_CHANNEL_RIGHT,
    230    OMX_AUDIO_AC3_CHANNEL_LEFT_SURROUND,
    231    OMX_AUDIO_AC3_CHANNEL_RIGHT_SURROUND,
    232    OMX_AUDIO_AC3_CHANNEL_SURROUND,
    233    OMX_AUDIO_AC3_CHANNEL_EXTENSION_1,
    234    OMX_AUDIO_AC3_CHANNEL_EXTENSION_2,
    235    OMX_AUDIO_AC3_CHANNEL_DEFAULT = 0xFFFF
    236 } OMX_AUDIO_AC3_CHANNEL_ROUTING;
    237 
    238 typedef enum OMX_AUDIO_AC3_COMPRESSION_MODE
    239 {
    240    OMX_AUDIO_AC3_COMPRESSION_MODE_ANALOG_DIALNORM,
    241    OMX_AUDIO_AC3_COMPRESSION_MODE_DIGITAL_DIALNORM,
    242    OMX_AUDIO_AC3_COMPRESSION_MODE_LINE_OUT,
    243    OMX_AUDIO_AC3_COMPRESSION_MODE_RF_REMOD
    244 } OMX_AUDIO_AC3_COMPRESSION_MODE;
    245 
    246 typedef enum OMX_AUDIO_AC3_STEREO_MODE
    247 {
    248    OMX_AUDIO_AC3_STEREO_MODE_AUTO_DETECT,
    249    OMX_AUDIO_AC3_STEREO_MODE_LT_RT,
    250    OMX_AUDIO_AC3_STEREO_MODE_LO_RO,
    251    OMX_AUDIO_AC3_STEREO_MODE_DEFAULT = 0xFFFF
    252 } OMX_AUDIO_AC3_STEREO_MODE;
    253 
    254 typedef enum OMX_AUDIO_AC3_DUAL_MONO_MODE
    255 {
    256    OMX_AUDIO_AC3_DUAL_MONO_MODE_STEREO,
    257    OMX_AUDIO_AC3_DUAL_MONO_MODE_LEFT_MONO,
    258    OMX_AUDIO_AC3_DUAL_MONO_MODE_RIGHT_MONO,
    259    OMX_AUDIO_AC3_DUAL_MONO_MODE_MIXED_MONO,
    260    OMX_AUDIO_AC3_DUAL_MONO_MODE_DEFAULT = 0xFFFF
    261 } OMX_AUDIO_AC3_DUAL_MONO_MODE;
    262 
    263 typedef enum OMX_AUDIO_AC3_KARAOKE_MODE
    264 {
    265    OMX_AUDIO_AC3_KARAOKE_MODE_NO_VOCAL,
    266    OMX_AUDIO_AC3_KARAOKE_MODE_LEFT_VOCAL,
    267    OMX_AUDIO_AC3_KARAOKE_MODE_RIGHT_VOCAL,
    268    OMX_AUDIO_AC3_KARAOKE_MODE_BOTH_VOCAL,
    269    OMX_AUDIO_AC3_KARAOKE_MODE_DEFAULT = 0xFFFF
    270 } OMX_AUDIO_AC3_KARAOKE_MODE;
    271 
    272 
    273 typedef struct QOMX_AUDIO_PARAM_AC3PP
    274 {
    275    OMX_U32 nSize;
    276    OMX_VERSIONTYPE nVersion;
    277    OMX_U32 nPortIndex;
    278    OMX_AUDIO_AC3_CHANNEL_ROUTING eChannelRouting[8];
    279    OMX_AUDIO_AC3_COMPRESSION_MODE eCompressionMode;
    280    OMX_AUDIO_AC3_STEREO_MODE eStereoMode;
    281    OMX_AUDIO_AC3_DUAL_MONO_MODE eDualMonoMode;
    282    OMX_U32 usPcmScale;
    283    OMX_U32 usDynamicScaleBoost;
    284    OMX_U32 usDynamicScaleCut;
    285    OMX_AUDIO_AC3_KARAOKE_MODE eKaraokeMode;
    286 } QOMX_AUDIO_PARAM_AC3PP;
    287 
    288 
    289 /**
    290  * Stream info data
    291  *
    292  *  STRUCT MEMBERS:
    293  *  sessionId :  session Id for alsa to route data
    294  */
    295 typedef struct QOMX_AUDIO_STREAM_INFO_DATA {
    296     OMX_U8  sessionId;
    297 } QOMX_AUDIO_STREAM_INFO_DATA;
    298 
    299 
    300 /**
    301  * Record Path
    302  *
    303  * STRUCT MEMBERS:
    304  * recPath : Record Path for encoding
    305  */
    306 typedef enum{
    307 
    308 QOMX_AUDIO_VOICE_TX,
    309 QOMX_AUDIO_VOICE_RX,
    310 QOMX_AUDIO_VOICE_MIXED,
    311 
    312 } QOMX_AUDIO_VOICERECORDMODETYPE;
    313 typedef struct QOMX_AUDIO_CONFIG_VOICERECORDTYPE {
    314 
    315 OMX_U32                            nSize;
    316 OMX_VERSIONTYPE                    nVersion;
    317 QOMX_AUDIO_VOICERECORDMODETYPE     eVoiceRecordMode;
    318 }  QOMX_AUDIO_CONFIG_VOICERECORDTYPE;
    319 
    320 /* Enum for mapping dual-mono contents to left and right channels */
    321 typedef enum OMX_AUDIO_DUAL_MONO_CHANNEL_CONFIG {
    322  OMX_AUDIO_DUAL_MONO_MODE_FL_FR,/* 1st SCE to left & right */
    323  OMX_AUDIO_DUAL_MONO_MODE_SL_SR,/* 2nd SCE to left & right */
    324  OMX_AUDIO_DUAL_MONO_MODE_SL_FR,/* 2nd SCE to left, 1st SCE to right */
    325  OMX_AUDIO_DUAL_MONO_MODE_FL_SR,/* 1st SCE to left, 2nd SCE to right default */
    326  OMX_AUDIO_DUAL_MONO_MODE_DEFAULT = OMX_AUDIO_DUAL_MONO_MODE_FL_SR,
    327  OMX_AUDIO_DUAL_MONO_MODE_INVALID = -1
    328 } OMX_AUDIO_DUAL_MONO_CHANNEL_CONFIG;
    329 
    330 /************************************/
    331 /* DAK */
    332 /*************************************/
    333 
    334 /** this is the list of custom vendor index */
    335 typedef enum OMX_INDEX_DAK_TYPE {
    336 	OMX_IndexConfigDAK_BUNDLE = OMX_IndexVendorStartUnused /*0x7F000000*/,	/**< reference: OMX_DAK_CONFIG_BUNDLETYPE */
    337 	OMX_IndexConfigDAK_M2S,	/**< reference: OMX_DAK_CONFIG_M2STYPE */
    338 	OMX_IndexConfigDAK_SSE,	/**< reference: OMX_DAK_CONFIG_SSETYPE */
    339 	OMX_IndexConfigDAK_SLC,	/**< reference: OMX_DAK_CONFIG_SLCTYPE */
    340 	OMX_IndexConfigDAK_VOL,	/**< reference: OMX_DAK_CONFIG_VOLTYPE */
    341 	OMX_IndexConfigDAK_NB,	/**< reference: OMX_DAK_CONFIG_NBTYPE */
    342 	OMX_IndexConfigDAK_GEQ,	/**< reference: OMX_DAK_CONFIG_GEQTYPE */
    343 	OMX_IndexConfigDAK_MSR, /**< reference: OMX_DAK_CONFIG_MSRTYPE */
    344 	OMX_IndexConfigDAK_HFE,	/**< reference: OMX_DAK_CONFIG_HFETYPE */
    345 	OMX_IndexConfigDAK_FADE,/**< reference: OMX_DAK_CONFIG_FADETYPE */
    346 	OMX_IndexConfigDAK_SEQ,	/**< reference: OMX_DAK_CONFIG_SEQTYPE */
    347 
    348 } OMX_INDEX_DAK_TYPE;
    349 
    350 
    351 /** Dolby Audio Kernel TDAS bundle */
    352 typedef struct OMX_DAK_CONFIG_BUNDLETYPE {
    353     	OMX_U32 nSize;              	/**< size of the structure in bytes */
    354 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    355 	OMX_U32 nDAK_Version;		/**< Dolby Audio Kernel version information */
    356 	OMX_U32 nDAK_Revision;		/**< Dolby Audio Kernel revision information */
    357 	OMX_U8 nLfeMixLevel;		/**< level at which the LFE channel is mixed into the output audio */
    358 	OMX_U8 nSampleRateIndex;	/**< Output sample rate */
    359 	OMX_U8 nInChans;		/**< Channel format of input audio */
    360 	OMX_U8 nInMatrix;		/**< L/R mixing specification for stereo audio input */
    361 	OMX_U8 nBypass;			/**< Audio Processing bypass */
    362 	OMX_U8 nRateMultipier;		/**< Sample-rate multiplier (output with respect to input) */
    363 	OMX_U8 nInChanFormat;		/**< Input/Output channel format */
    364 	OMX_U8 nMsrMaxProfile;		/**< Maximum number of virtual rendering channels in Mobile Surround */
    365 	OMX_BOOL bPortablemodeEnable;	/**< Enable or disable Pulse Portable Mode */
    366 	OMX_S16 nPotablemodeGain;	/**< Send the Portable Mode gain value from the Pulse decoder */
    367 	OMX_U8 nORL;			/**< Device specific target signal level (output reference level) */
    368 	OMX_BOOL bPulsedownmixEnable;	/**< Enable the Pulse Downmix compensation */
    369 	OMX_S8 nPulsedownmixAtten;	/**< Attenuation value that Pulse is currently applying */
    370 	OMX_U8 nOutChans;		/**< Channel format of output audio */
    371 
    372 } OMX_DAK_CONFIG_BUNDLETYPE;
    373 
    374 /** Dolby Audio Kernel Mono-to-Stereo Creator */
    375 typedef struct OMX_DAK_CONFIG_M2STYPE {
    376 	OMX_U32 nSize;			/**< size of the structure in bytes */
    377 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    378 	OMX_BOOL bEnable;		/**< Mono-to-Stereo Creator enable */
    379 	OMX_BOOL bDetector;		/**< Stereo detector status */
    380 } OMX_DAK_CONFIG_M2STYPE;
    381 
    382 /** Dolby Audio Kernel Sound Space Expander */
    383 typedef struct OMX_DAK_CONFIG_SSETYPE {
    384 	OMX_U32 nSize;			/**< size of the structure in bytes */
    385 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    386 	OMX_BOOL bEnable;		/**< Sound Space Expander enable */
    387 	OMX_U8 nWidth;			/**< Width of expansion effect */
    388 	OMX_U8 nSpkMode;		/**< Speaker Mode */
    389 } OMX_DAK_CONFIG_SSETYPE;
    390 
    391 /** Dolby Audio Kernel Sound Level Controller */
    392 typedef struct OMX_DAK_CONFIG_SLCTYPE {
    393 	OMX_U32 nSize;			/**< size of the structure in bytes */
    394 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    395 	OMX_BOOL bEnable;		/**< Sound Level Controller enable */
    396 	OMX_U8 nLevel;			/**< Source audio RMS level */
    397 	OMX_U8 nDepth;			/**< Depth of effect */
    398 } OMX_DAK_CONFIG_SLCTYPE;
    399 
    400 /** Dolby Audio Kernel Volume */
    401 typedef struct OMX_DAK_CONFIG_VOLTYPE {
    402 	OMX_U32 nSize;			/**< size of the structure in bytes */
    403 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    404 	OMX_BOOL bEnable;		/**< Volume enable */
    405 	OMX_U8 nGainType;		/**< Linear/Logarithmic audio scaling */
    406 	OMX_U8 nInternalGain;		/**< Audio volume scale */
    407 	OMX_U8 nExternalGain;		/**< Audio volume scale applied by external volume control */
    408 	OMX_S8 nBalance;		/**< L/R panning for output audio */
    409 	OMX_BOOL bMute;			/**< Audio Mute */
    410 } OMX_DAK_CONFIG_VOLTYPE;
    411 
    412 /** Dolby Audio Kernel Natural Bass */
    413 typedef struct OMX_DAK_CONFIG_NBTYPE {
    414 	OMX_U32 nSize;			/**< size of the structure in bytes */
    415 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    416 	OMX_BOOL bEnable;		/**< Natural Bass enable */
    417 	OMX_U8 nCutoff;			/**< Speakers/headphones lower cutoff frequency */
    418 	OMX_U8 nBoost;			/**< Strength of effect */
    419 	OMX_U8 nLevel;			/**< Maximum output level capability of speakers/headphones */
    420 } OMX_DAK_CONFIG_NBTYPE;
    421 
    422 /** Dolby Audio Kernel Graphic EQ */
    423 typedef struct OMX_DAK_CONFIG_GEQTYPE {
    424 	OMX_U32 nSize;			/**< size of the structure in bytes */
    425 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    426 	OMX_BOOL bEnable;		/**< Graphic EQ enable */
    427 	OMX_U8 nNbands;			/**< Number of frequency bands */
    428 	OMX_S8 nPreamp;			/**< Global attenuation to apply prior to band level adjustment */
    429 	OMX_U8 nMaxboost;		/**< Maximum absolute boost with respect to the source audio */
    430 	OMX_S8 nBand1;			/**< Boost/cut for 1st frequency band */
    431 	OMX_S8 nBand2;			/**< Boost/cut for 2nd frequency band */
    432 	OMX_S8 nBand3;			/**< Boost/cut for 3rd frequency band */
    433 	OMX_S8 nBand4;			/**< Boost/cut for 4th frequency band */
    434 	OMX_S8 nBand5;			/**< Boost/cut for 5th frequency band */
    435 	OMX_S8 nBand6;			/**< Boost/cut for 6th frequency band */
    436 	OMX_S8 nBand7;			/**< Boost/cut for 7th frequency band */
    437 } OMX_DAK_CONFIG_GEQTYPE;
    438 
    439 /** Dolby Audio Kernel, Mobile Surround and Surround Upmixer */
    440 typedef struct OMX_DAK_CONFIG_MSRTYPE {
    441 	OMX_U32 nSize;			/**< size of the structure in bytes */
    442 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    443 	OMX_BOOL bMsrEnable;		/**< Mobile Surround enable */
    444 	OMX_U8 nMsrRoom;		/**< Room Size control */
    445 	OMX_U8 nMsrBright;		/**< Brightness control */
    446 	OMX_BOOL bMupEnable;		/**< Mobile Surround Upmixer enable */
    447 } OMX_DAK_CONFIG_MSRTYPE;
    448 
    449 /** Dolby Audio Kernel High Frequency Enhancer */
    450 typedef struct OMX_DAK_CONFIG_HFETYPE {
    451 	OMX_U32 nSize;			/**< size of the structure in bytes */
    452 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    453 	OMX_BOOL bEnable;		/**< High Frequency Enhancer enable */
    454 	OMX_U8 nDepth;			/**< Strength of effect */
    455 } OMX_DAK_CONFIG_HFETYPE;
    456 
    457 /** Dolby Audio Kernel Fade */
    458 typedef struct OMX_DAK_CONFIG_FADETYPE {
    459 	OMX_U32 nSize;			/**< size of the structure in bytes */
    460 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    461 	OMX_BOOL bEnable;		/**< Fade enable */
    462 	OMX_U8 nTarget;			/**< Target fade level */
    463 	OMX_U16 nTime;			/**< Fade time interval */
    464 } OMX_DAK_CONFIG_FADETYPE;
    465 
    466 /** Dolby Audio Kernel Speaker EQ */
    467 typedef struct OMX_DAK_CONFIG_SEQTYPE {
    468 	OMX_U32 nSize;			/**< size of the structure in bytes */
    469 	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
    470 	OMX_BOOL bEnable;		/**< Speaker EQ enable */
    471 	OMX_S8 nLeftGainDB;		/**< Additional gain for Left channel */
    472 	OMX_S8 nRightGainDB;		/**< Additional gain for Right channel */
    473 	OMX_U8 nCoef48000Size;		/**< Length of the block of coefficients for 48KHz Sampling Rate case */
    474 	OMX_PTR pCoef48000;		/**< Pointer to the block of coefficients for the 48KHz case */
    475 	OMX_U8 nCoef44100Size;		/**< Length of the block of coefficients for 44.1KHz Sampling Rate case */
    476 	OMX_PTR pCoef44100;		/**< Pointer to the block of coefficients for the 44.1KHz case */
    477 	OMX_U8 nCoef32000Size;		/**< Length of the block of coefficients for 32KHz Sampling Rate case */
    478 	OMX_PTR pCoef32000;		/**< Pointer to the block of coefficients for the 32KHz case */
    479 	OMX_U8 nCoef24000Size;		/**< Length of the block of coefficients for 24KHz Sampling Rate case */
    480 	OMX_PTR pCoef24000;		/**< Pointer to the block of coefficients for the 24KHz case */
    481 
    482 } OMX_DAK_CONFIG_SEQTYPE;
    483 
    484 
    485 typedef enum OMX_AUDIO_CHANNELTYPE_EXTENSION {
    486     OMX_AUDIO_ChannelTS = OMX_AUDIO_ChannelVendorStartUnused,    /**< Top Surround */
    487     OMX_AUDIO_ChannelCVH    /**< Central Vertical Height */
    488 } OMX_AUDIO_CHANNELTYPE_EXTENSION;
    489 
    490 /**
    491  * DUAL-MONO type
    492  *
    493  *  STRUCT MEMBERS:
    494  *  nSize               : Size of the structure in bytes
    495  *  nVersion            : OMX specification version information
    496  *  nPortIndex          : Port that this structure applies to
    497  *  eChannelConfig      : Enum for channel config
    498  *
    499  */
    500 typedef struct QOMX_AUDIO_CONFIG_DUALMONOTYPE {
    501    OMX_U32 nSize;
    502    OMX_VERSIONTYPE nVersion;
    503    OMX_U32 nPortIndex;
    504    OMX_AUDIO_DUAL_MONO_CHANNEL_CONFIG eChannelConfig;
    505 } QOMX_AUDIO_CONFIG_DUALMONOTYPE;
    506 
    507 #if defined( __cplusplus )
    508 }
    509 #endif /* end of macro __cplusplus */
    510 
    511 #endif /* end of macro __H_QOMX_AUDIOEXTENSIONS_H__ */
    512