1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2009, 2011, The Linux Foundation. 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 The Linux Foundation 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.postproc.ac3" 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