James Dong | 334de52 | 2012-03-12 12:47:14 -0700 | [diff] [blame] | 1 | /* ------------------------------------------------------------------ |
| 2 | * Copyright (C) 1998-2009 PacketVideo |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either |
| 13 | * express or implied. |
| 14 | * See the License for the specific language governing permissions |
| 15 | * and limitations under the License. |
| 16 | * ------------------------------------------------------------------- |
| 17 | */ |
| 18 | /* |
| 19 | * Copyright (c) 2008 The Khronos Group Inc. |
| 20 | * |
| 21 | * Permission is hereby granted, free of charge, to any person obtaining |
| 22 | * a copy of this software and associated documentation files (the |
| 23 | * "Software"), to deal in the Software without restriction, including |
| 24 | * without limitation the rights to use, copy, modify, merge, publish, |
| 25 | * distribute, sublicense, and/or sell copies of the Software, and to |
| 26 | * permit persons to whom the Software is furnished to do so, subject |
| 27 | * to the following conditions: |
| 28 | * The above copyright notice and this permission notice shall be included |
| 29 | * in all copies or substantial portions of the Software. |
| 30 | * |
| 31 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| 32 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| 33 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| 34 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
| 35 | * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| 36 | * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| 37 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 38 | * |
| 39 | */ |
| 40 | |
| 41 | /** @file OMX_Audio.h - OpenMax IL version 1.1.2 |
| 42 | * The structures needed by Audio components to exchange |
| 43 | * parameters and configuration data with the componenmilts. |
| 44 | */ |
| 45 | |
| 46 | #ifndef OMX_Audio_h |
| 47 | #define OMX_Audio_h |
| 48 | |
| 49 | #ifdef __cplusplus |
| 50 | extern "C" { |
| 51 | #endif /* __cplusplus */ |
| 52 | |
| 53 | |
| 54 | /* Each OMX header must include all required header files to allow the |
| 55 | * header to compile without errors. The includes below are required |
| 56 | * for this header file to compile successfully |
| 57 | */ |
| 58 | |
| 59 | #include <OMX_Core.h> |
| 60 | |
| 61 | /** @defgroup midi MIDI |
| 62 | * @ingroup audio |
| 63 | */ |
| 64 | |
| 65 | /** @defgroup effects Audio effects |
| 66 | * @ingroup audio |
| 67 | */ |
| 68 | |
| 69 | /** @defgroup audio OpenMAX IL Audio Domain |
| 70 | * Structures for OpenMAX IL Audio domain |
| 71 | * @{ |
| 72 | */ |
| 73 | |
| 74 | /** Enumeration used to define the possible audio codings. |
| 75 | * If "OMX_AUDIO_CodingUnused" is selected, the coding selection must |
| 76 | * be done in a vendor specific way. Since this is for an audio |
| 77 | * processing element this enum is relevant. However, for another |
| 78 | * type of component other enums would be in this area. |
| 79 | */ |
| 80 | typedef enum OMX_AUDIO_CODINGTYPE { |
| 81 | OMX_AUDIO_CodingUnused = 0, /**< Placeholder value when coding is N/A */ |
| 82 | OMX_AUDIO_CodingAutoDetect, /**< auto detection of audio format */ |
| 83 | OMX_AUDIO_CodingPCM, /**< Any variant of PCM coding */ |
| 84 | OMX_AUDIO_CodingADPCM, /**< Any variant of ADPCM encoded data */ |
| 85 | OMX_AUDIO_CodingAMR, /**< Any variant of AMR encoded data */ |
| 86 | OMX_AUDIO_CodingGSMFR, /**< Any variant of GSM fullrate (i.e. GSM610) */ |
| 87 | OMX_AUDIO_CodingGSMEFR, /**< Any variant of GSM Enhanced Fullrate encoded data*/ |
| 88 | OMX_AUDIO_CodingGSMHR, /**< Any variant of GSM Halfrate encoded data */ |
| 89 | OMX_AUDIO_CodingPDCFR, /**< Any variant of PDC Fullrate encoded data */ |
| 90 | OMX_AUDIO_CodingPDCEFR, /**< Any variant of PDC Enhanced Fullrate encoded data */ |
| 91 | OMX_AUDIO_CodingPDCHR, /**< Any variant of PDC Halfrate encoded data */ |
| 92 | OMX_AUDIO_CodingTDMAFR, /**< Any variant of TDMA Fullrate encoded data (TIA/EIA-136-420) */ |
| 93 | OMX_AUDIO_CodingTDMAEFR, /**< Any variant of TDMA Enhanced Fullrate encoded data (TIA/EIA-136-410) */ |
| 94 | OMX_AUDIO_CodingQCELP8, /**< Any variant of QCELP 8kbps encoded data */ |
| 95 | OMX_AUDIO_CodingQCELP13, /**< Any variant of QCELP 13kbps encoded data */ |
| 96 | OMX_AUDIO_CodingEVRC, /**< Any variant of EVRC encoded data */ |
| 97 | OMX_AUDIO_CodingSMV, /**< Any variant of SMV encoded data */ |
| 98 | OMX_AUDIO_CodingG711, /**< Any variant of G.711 encoded data */ |
| 99 | OMX_AUDIO_CodingG723, /**< Any variant of G.723 dot 1 encoded data */ |
| 100 | OMX_AUDIO_CodingG726, /**< Any variant of G.726 encoded data */ |
| 101 | OMX_AUDIO_CodingG729, /**< Any variant of G.729 encoded data */ |
| 102 | OMX_AUDIO_CodingAAC, /**< Any variant of AAC encoded data */ |
| 103 | OMX_AUDIO_CodingMP3, /**< Any variant of MP3 encoded data */ |
| 104 | OMX_AUDIO_CodingSBC, /**< Any variant of SBC encoded data */ |
| 105 | OMX_AUDIO_CodingVORBIS, /**< Any variant of VORBIS encoded data */ |
| 106 | OMX_AUDIO_CodingWMA, /**< Any variant of WMA encoded data */ |
| 107 | OMX_AUDIO_CodingRA, /**< Any variant of RA encoded data */ |
| 108 | OMX_AUDIO_CodingMIDI, /**< Any variant of MIDI encoded data */ |
| 109 | OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 110 | OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 111 | OMX_AUDIO_CodingMax = 0x7FFFFFFF |
| 112 | } OMX_AUDIO_CODINGTYPE; |
| 113 | |
| 114 | |
| 115 | /** The PortDefinition structure is used to define all of the parameters |
| 116 | * necessary for the compliant component to setup an input or an output audio |
| 117 | * path. If additional information is needed to define the parameters of the |
| 118 | * port (such as frequency), additional structures must be sent such as the |
| 119 | * OMX_AUDIO_PARAM_PCMMODETYPE structure to supply the extra parameters for the port. |
| 120 | */ |
| 121 | typedef struct OMX_AUDIO_PORTDEFINITIONTYPE { |
| 122 | OMX_STRING cMIMEType; /**< MIME type of data for the port */ |
| 123 | OMX_NATIVE_DEVICETYPE pNativeRender; /** < platform specific reference |
| 124 | for an output device, |
| 125 | otherwise this field is 0 */ |
| 126 | OMX_BOOL bFlagErrorConcealment; /**< Turns on error concealment if it is |
| 127 | supported by the OMX component */ |
| 128 | OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this |
| 129 | port (e.g. PCM, AMR, MP3, etc) */ |
| 130 | } OMX_AUDIO_PORTDEFINITIONTYPE; |
| 131 | |
| 132 | |
| 133 | /** Port format parameter. This structure is used to enumerate |
| 134 | * the various data input/output format supported by the port. |
| 135 | */ |
| 136 | typedef struct OMX_AUDIO_PARAM_PORTFORMATTYPE { |
| 137 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 138 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 139 | OMX_U32 nPortIndex; /**< Indicates which port to set */ |
| 140 | OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */ |
| 141 | OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this port (e.g. PCM, AMR, MP3, etc) */ |
| 142 | } OMX_AUDIO_PARAM_PORTFORMATTYPE; |
| 143 | |
| 144 | |
| 145 | /** PCM mode type */ |
| 146 | typedef enum OMX_AUDIO_PCMMODETYPE { |
| 147 | OMX_AUDIO_PCMModeLinear = 0, /**< Linear PCM encoded data */ |
| 148 | OMX_AUDIO_PCMModeALaw, /**< A law PCM encoded data (G.711) */ |
| 149 | OMX_AUDIO_PCMModeMULaw, /**< Mu law PCM encoded data (G.711) */ |
| 150 | OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 151 | OMX_AUDIO_PCMModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 152 | OMX_AUDIO_PCMModeMax = 0x7FFFFFFF |
| 153 | } OMX_AUDIO_PCMMODETYPE; |
| 154 | |
| 155 | |
| 156 | typedef enum OMX_AUDIO_CHANNELTYPE { |
| 157 | OMX_AUDIO_ChannelNone = 0x0, /**< Unused or empty */ |
| 158 | OMX_AUDIO_ChannelLF = 0x1, /**< Left front */ |
| 159 | OMX_AUDIO_ChannelRF = 0x2, /**< Right front */ |
| 160 | OMX_AUDIO_ChannelCF = 0x3, /**< Center front */ |
| 161 | OMX_AUDIO_ChannelLS = 0x4, /**< Left surround */ |
| 162 | OMX_AUDIO_ChannelRS = 0x5, /**< Right surround */ |
| 163 | OMX_AUDIO_ChannelLFE = 0x6, /**< Low frequency effects */ |
| 164 | OMX_AUDIO_ChannelCS = 0x7, /**< Back surround */ |
| 165 | OMX_AUDIO_ChannelLR = 0x8, /**< Left rear. */ |
| 166 | OMX_AUDIO_ChannelRR = 0x9, /**< Right rear. */ |
| 167 | OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 168 | OMX_AUDIO_ChannelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 169 | OMX_AUDIO_ChannelMax = 0x7FFFFFFF |
| 170 | } OMX_AUDIO_CHANNELTYPE; |
| 171 | |
| 172 | #define OMX_AUDIO_MAXCHANNELS 16 /**< maximum number distinct audio channels that a buffer may contain */ |
| 173 | #define OMX_MIN_PCMPAYLOAD_MSEC 5 /**< Minimum audio buffer payload size for uncompressed (PCM) audio */ |
| 174 | |
| 175 | /** PCM format description */ |
| 176 | typedef struct OMX_AUDIO_PARAM_PCMMODETYPE { |
| 177 | OMX_U32 nSize; /**< Size of this structure, in Bytes */ |
| 178 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 179 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 180 | OMX_U32 nChannels; /**< Number of channels (e.g. 2 for stereo) */ |
| 181 | OMX_NUMERICALDATATYPE eNumData; /**< indicates PCM data as signed or unsigned */ |
| 182 | OMX_ENDIANTYPE eEndian; /**< indicates PCM data as little or big endian */ |
| 183 | OMX_BOOL bInterleaved; /**< True for normal interleaved data; false for |
| 184 | non-interleaved data (e.g. block data) */ |
| 185 | OMX_U32 nBitPerSample; /**< Bit per sample */ |
| 186 | OMX_U32 nSamplingRate; /**< Sampling rate of the source data. Use 0 for |
| 187 | variable or unknown sampling rate. */ |
| 188 | OMX_AUDIO_PCMMODETYPE ePCMMode; /**< PCM mode enumeration */ |
| 189 | OMX_AUDIO_CHANNELTYPE eChannelMapping[OMX_AUDIO_MAXCHANNELS]; /**< Slot i contains channel defined by eChannelMap[i] */ |
| 190 | |
| 191 | } OMX_AUDIO_PARAM_PCMMODETYPE; |
| 192 | |
| 193 | |
| 194 | /** Audio channel mode. This is used by both AAC and MP3, although the names are more appropriate |
| 195 | * for the MP3. For example, JointStereo for MP3 is CouplingChannels for AAC. |
| 196 | */ |
| 197 | typedef enum OMX_AUDIO_CHANNELMODETYPE { |
| 198 | OMX_AUDIO_ChannelModeStereo = 0, /**< 2 channels, the bitrate allocation between those |
| 199 | two channels changes accordingly to each channel information */ |
| 200 | OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between |
| 201 | 2 channels for higher compression gain */ |
| 202 | OMX_AUDIO_ChannelModeDual, /**< 2 mono-channels, each channel is encoded with half |
| 203 | the bitrate of the overall bitrate */ |
| 204 | OMX_AUDIO_ChannelModeMono, /**< Mono channel mode */ |
| 205 | OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 206 | OMX_AUDIO_ChannelModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 207 | OMX_AUDIO_ChannelModeMax = 0x7FFFFFFF |
| 208 | } OMX_AUDIO_CHANNELMODETYPE; |
| 209 | |
| 210 | |
| 211 | typedef enum OMX_AUDIO_MP3STREAMFORMATTYPE { |
| 212 | OMX_AUDIO_MP3StreamFormatMP1Layer3 = 0, /**< MP3 Audio MPEG 1 Layer 3 Stream format */ |
| 213 | OMX_AUDIO_MP3StreamFormatMP2Layer3, /**< MP3 Audio MPEG 2 Layer 3 Stream format */ |
| 214 | OMX_AUDIO_MP3StreamFormatMP2_5Layer3, /**< MP3 Audio MPEG2.5 Layer 3 Stream format */ |
| 215 | OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 216 | OMX_AUDIO_MP3StreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 217 | OMX_AUDIO_MP3StreamFormatMax = 0x7FFFFFFF |
| 218 | } OMX_AUDIO_MP3STREAMFORMATTYPE; |
| 219 | |
| 220 | /** MP3 params */ |
| 221 | typedef struct OMX_AUDIO_PARAM_MP3TYPE { |
| 222 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 223 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 224 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 225 | OMX_U32 nChannels; /**< Number of channels */ |
| 226 | OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable |
| 227 | rate or unknown bit rates */ |
| 228 | OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for |
| 229 | variable or unknown sampling rate. */ |
| 230 | OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should |
| 231 | limit the audio signal. Use 0 to let encoder decide */ |
| 232 | OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ |
| 233 | OMX_AUDIO_MP3STREAMFORMATTYPE eFormat; /**< MP3 stream format */ |
| 234 | } OMX_AUDIO_PARAM_MP3TYPE; |
| 235 | |
| 236 | |
| 237 | typedef enum OMX_AUDIO_AACSTREAMFORMATTYPE { |
| 238 | OMX_AUDIO_AACStreamFormatMP2ADTS = 0, /**< AAC Audio Data Transport Stream 2 format */ |
| 239 | OMX_AUDIO_AACStreamFormatMP4ADTS, /**< AAC Audio Data Transport Stream 4 format */ |
| 240 | OMX_AUDIO_AACStreamFormatMP4LOAS, /**< AAC Low Overhead Audio Stream format */ |
| 241 | OMX_AUDIO_AACStreamFormatMP4LATM, /**< AAC Low overhead Audio Transport Multiplex */ |
| 242 | OMX_AUDIO_AACStreamFormatADIF, /**< AAC Audio Data Interchange Format */ |
| 243 | OMX_AUDIO_AACStreamFormatMP4FF, /**< AAC inside MPEG-4/ISO File Format */ |
| 244 | OMX_AUDIO_AACStreamFormatRAW, /**< AAC Raw Format */ |
| 245 | OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 246 | OMX_AUDIO_AACStreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 247 | OMX_AUDIO_AACStreamFormatMax = 0x7FFFFFFF |
| 248 | } OMX_AUDIO_AACSTREAMFORMATTYPE; |
| 249 | |
| 250 | |
| 251 | /** AAC mode type. Note that the term profile is used with the MPEG-2 |
| 252 | * standard and the term object type and profile is used with MPEG-4 */ |
| 253 | typedef enum OMX_AUDIO_AACPROFILETYPE{ |
| 254 | OMX_AUDIO_AACObjectNull = 0, /**< Null, not used */ |
| 255 | OMX_AUDIO_AACObjectMain = 1, /**< AAC Main object */ |
| 256 | OMX_AUDIO_AACObjectLC, /**< AAC Low Complexity object (AAC profile) */ |
| 257 | OMX_AUDIO_AACObjectSSR, /**< AAC Scalable Sample Rate object */ |
| 258 | OMX_AUDIO_AACObjectLTP, /**< AAC Long Term Prediction object */ |
| 259 | OMX_AUDIO_AACObjectHE, /**< AAC High Efficiency (object type SBR, HE-AAC profile) */ |
| 260 | OMX_AUDIO_AACObjectScalable, /**< AAC Scalable object */ |
| 261 | OMX_AUDIO_AACObjectERLC = 17, /**< ER AAC Low Complexity object (Error Resilient AAC-LC) */ |
| 262 | OMX_AUDIO_AACObjectLD = 23, /**< AAC Low Delay object (Error Resilient) */ |
| 263 | OMX_AUDIO_AACObjectHE_PS = 29, /**< AAC High Efficiency with Parametric Stereo coding (HE-AAC v2, object type PS) */ |
Dave Burke | 8e846fd | 2012-04-24 16:06:50 -0700 | [diff] [blame^] | 264 | OMX_AUDIO_AACObjectELD = 39, /** AAC Enhanced Low Delay. NOTE: Pending Khronos standardization **/ |
| 265 | OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
James Dong | 334de52 | 2012-03-12 12:47:14 -0700 | [diff] [blame] | 266 | OMX_AUDIO_AACObjectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 267 | OMX_AUDIO_AACObjectMax = 0x7FFFFFFF |
| 268 | } OMX_AUDIO_AACPROFILETYPE; |
| 269 | |
| 270 | |
| 271 | /** AAC tool usage (for nAACtools in OMX_AUDIO_PARAM_AACPROFILETYPE). |
| 272 | * Required for encoder configuration and optional as decoder info output. |
| 273 | * For MP3, OMX_AUDIO_CHANNELMODETYPE is sufficient. */ |
| 274 | #define OMX_AUDIO_AACToolNone 0x00000000 /**< no AAC tools allowed (encoder config) or active (decoder info output) */ |
| 275 | #define OMX_AUDIO_AACToolMS 0x00000001 /**< MS: Mid/side joint coding tool allowed or active */ |
| 276 | #define OMX_AUDIO_AACToolIS 0x00000002 /**< IS: Intensity stereo tool allowed or active */ |
| 277 | #define OMX_AUDIO_AACToolTNS 0x00000004 /**< TNS: Temporal Noise Shaping tool allowed or active */ |
| 278 | #define OMX_AUDIO_AACToolPNS 0x00000008 /**< PNS: MPEG-4 Perceptual Noise substitution tool allowed or active */ |
| 279 | #define OMX_AUDIO_AACToolLTP 0x00000010 /**< LTP: MPEG-4 Long Term Prediction tool allowed or active */ |
| 280 | #define OMX_AUDIO_AACToolAll 0x7FFFFFFF /**< all AAC tools allowed or active (*/ |
| 281 | |
| 282 | /** MPEG-4 AAC error resilience (ER) tool usage (for nAACERtools in OMX_AUDIO_PARAM_AACPROFILETYPE). |
| 283 | * Required for ER encoder configuration and optional as decoder info output */ |
| 284 | #define OMX_AUDIO_AACERNone 0x00000000 /**< no AAC ER tools allowed/used */ |
| 285 | #define OMX_AUDIO_AACERVCB11 0x00000001 /**< VCB11: Virtual Code Books for AAC section data */ |
| 286 | #define OMX_AUDIO_AACERRVLC 0x00000002 /**< RVLC: Reversible Variable Length Coding */ |
| 287 | #define OMX_AUDIO_AACERHCR 0x00000004 /**< HCR: Huffman Codeword Reordering */ |
| 288 | #define OMX_AUDIO_AACERAll 0x7FFFFFFF /**< all AAC ER tools allowed/used */ |
| 289 | |
| 290 | |
| 291 | /** AAC params */ |
| 292 | typedef struct OMX_AUDIO_PARAM_AACPROFILETYPE { |
| 293 | OMX_U32 nSize; /**< Size of this structure, in Bytes */ |
| 294 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 295 | OMX_U32 nPortIndex; /**< Port that this structure applies to */ |
| 296 | OMX_U32 nChannels; /**< Number of channels */ |
| 297 | OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for |
| 298 | variable or unknown sampling rate. */ |
| 299 | OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable |
| 300 | rate or unknown bit rates */ |
| 301 | OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should |
| 302 | limit the audio signal. Use 0 to let encoder decide */ |
| 303 | OMX_U32 nFrameLength; /**< Frame length (in audio samples per channel) of the codec. |
| 304 | Can be 1024 or 960 (AAC-LC), 2048 (HE-AAC), 480 or 512 (AAC-LD). |
| 305 | Use 0 to let encoder decide */ |
| 306 | OMX_U32 nAACtools; /**< AAC tool usage */ |
| 307 | OMX_U32 nAACERtools; /**< MPEG-4 AAC error resilience tool usage */ |
| 308 | OMX_AUDIO_AACPROFILETYPE eAACProfile; /**< AAC profile enumeration */ |
| 309 | OMX_AUDIO_AACSTREAMFORMATTYPE eAACStreamFormat; /**< AAC stream format enumeration */ |
| 310 | OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ |
| 311 | } OMX_AUDIO_PARAM_AACPROFILETYPE; |
| 312 | |
| 313 | |
| 314 | /** VORBIS params */ |
| 315 | typedef struct OMX_AUDIO_PARAM_VORBISTYPE { |
| 316 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 317 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 318 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 319 | OMX_U32 nChannels; /**< Number of channels */ |
| 320 | OMX_U32 nBitRate; /**< Bit rate of the encoded data data. Use 0 for variable |
| 321 | rate or unknown bit rates. Encoding is set to the |
| 322 | bitrate closest to specified value (in bps) */ |
| 323 | OMX_U32 nMinBitRate; /**< Sets minimum bitrate (in bps). */ |
| 324 | OMX_U32 nMaxBitRate; /**< Sets maximum bitrate (in bps). */ |
| 325 | |
| 326 | OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for |
| 327 | variable or unknown sampling rate. */ |
| 328 | OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should |
| 329 | limit the audio signal. Use 0 to let encoder decide */ |
| 330 | OMX_S32 nQuality; /**< Sets encoding quality to n, between -1 (low) and 10 (high). |
| 331 | In the default mode of operation, teh quality level is 3. |
| 332 | Normal quality range is 0 - 10. */ |
| 333 | OMX_BOOL bManaged; /**< Set bitrate management mode. This turns off the |
| 334 | normal VBR encoding, but allows hard or soft bitrate |
| 335 | constraints to be enforced by the encoder. This mode can |
| 336 | be slower, and may also be lower quality. It is |
| 337 | primarily useful for streaming. */ |
| 338 | OMX_BOOL bDownmix; /**< Downmix input from stereo to mono (has no effect on |
| 339 | non-stereo streams). Useful for lower-bitrate encoding. */ |
| 340 | } OMX_AUDIO_PARAM_VORBISTYPE; |
| 341 | |
| 342 | |
| 343 | /** WMA Version */ |
| 344 | typedef enum OMX_AUDIO_WMAFORMATTYPE { |
| 345 | OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */ |
| 346 | OMX_AUDIO_WMAFormat7, /**< Windows Media Audio format 7 */ |
| 347 | OMX_AUDIO_WMAFormat8, /**< Windows Media Audio format 8 */ |
| 348 | OMX_AUDIO_WMAFormat9, /**< Windows Media Audio format 9 */ |
| 349 | OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 350 | OMX_AUDIO_WMAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 351 | OMX_AUDIO_WMAFormatMax = 0x7FFFFFFF |
| 352 | } OMX_AUDIO_WMAFORMATTYPE; |
| 353 | |
| 354 | |
| 355 | /** WMA Profile */ |
| 356 | typedef enum OMX_AUDIO_WMAPROFILETYPE { |
| 357 | OMX_AUDIO_WMAProfileUnused = 0, /**< profile unused or unknown */ |
| 358 | OMX_AUDIO_WMAProfileL1, /**< Windows Media audio version 9 profile L1 */ |
| 359 | OMX_AUDIO_WMAProfileL2, /**< Windows Media audio version 9 profile L2 */ |
| 360 | OMX_AUDIO_WMAProfileL3, /**< Windows Media audio version 9 profile L3 */ |
| 361 | OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 362 | OMX_AUDIO_WMAProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 363 | OMX_AUDIO_WMAProfileMax = 0x7FFFFFFF |
| 364 | } OMX_AUDIO_WMAPROFILETYPE; |
| 365 | |
| 366 | |
| 367 | /** WMA params */ |
| 368 | typedef struct OMX_AUDIO_PARAM_WMATYPE { |
| 369 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 370 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 371 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 372 | OMX_U16 nChannels; /**< Number of channels */ |
| 373 | OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable |
| 374 | rate or unknown bit rates */ |
| 375 | OMX_AUDIO_WMAFORMATTYPE eFormat; /**< Version of WMA stream / data */ |
| 376 | OMX_AUDIO_WMAPROFILETYPE eProfile; /**< Profile of WMA stream / data */ |
| 377 | OMX_U32 nSamplingRate; /**< Sampling rate of the source data */ |
| 378 | OMX_U16 nBlockAlign; /**< is the block alignment, or block size, in bytes of the audio codec */ |
| 379 | OMX_U16 nEncodeOptions; /**< WMA Type-specific data */ |
| 380 | OMX_U32 nSuperBlockAlign; /**< WMA Type-specific data */ |
| 381 | } OMX_AUDIO_PARAM_WMATYPE; |
| 382 | |
| 383 | /** |
| 384 | * RealAudio format |
| 385 | */ |
| 386 | typedef enum OMX_AUDIO_RAFORMATTYPE { |
| 387 | OMX_AUDIO_RAFormatUnused = 0, /**< Format unused or unknown */ |
| 388 | OMX_AUDIO_RA8, /**< RealAudio 8 codec */ |
| 389 | OMX_AUDIO_RA9, /**< RealAudio 9 codec */ |
| 390 | OMX_AUDIO_RA10_AAC, /**< MPEG-4 AAC codec for bitrates of more than 128kbps */ |
| 391 | OMX_AUDIO_RA10_CODEC, /**< RealAudio codec for bitrates less than 128 kbps */ |
| 392 | OMX_AUDIO_RA10_LOSSLESS, /**< RealAudio Lossless */ |
| 393 | OMX_AUDIO_RA10_MULTICHANNEL, /**< RealAudio Multichannel */ |
| 394 | OMX_AUDIO_RA10_VOICE, /**< RealAudio Voice for bitrates below 15 kbps */ |
| 395 | OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 396 | OMX_AUDIO_RAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 397 | OMX_VIDEO_RAFormatMax = 0x7FFFFFFF |
| 398 | } OMX_AUDIO_RAFORMATTYPE; |
| 399 | |
| 400 | /** RA (Real Audio) params */ |
| 401 | typedef struct OMX_AUDIO_PARAM_RATYPE { |
| 402 | OMX_U32 nSize; /**< Size of this structure, in Bytes */ |
| 403 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 404 | OMX_U32 nPortIndex; /**< Port that this structure applies to */ |
| 405 | OMX_U32 nChannels; /**< Number of channels */ |
| 406 | OMX_U32 nSamplingRate; /**< is the sampling rate of the source data */ |
| 407 | OMX_U32 nBitsPerFrame; /**< is the value for bits per frame */ |
| 408 | OMX_U32 nSamplePerFrame; /**< is the value for samples per frame */ |
| 409 | OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */ |
| 410 | OMX_U32 nCouplingStartRegion; /**< is the coupling start region in the stream */ |
| 411 | OMX_U32 nNumRegions; /**< is the number of regions value */ |
| 412 | OMX_AUDIO_RAFORMATTYPE eFormat; /**< is the RealAudio audio format */ |
| 413 | } OMX_AUDIO_PARAM_RATYPE; |
| 414 | |
| 415 | |
| 416 | /** SBC Allocation Method Type */ |
| 417 | typedef enum OMX_AUDIO_SBCALLOCMETHODTYPE { |
| 418 | OMX_AUDIO_SBCAllocMethodLoudness, /**< Loudness allocation method */ |
| 419 | OMX_AUDIO_SBCAllocMethodSNR, /**< SNR allocation method */ |
| 420 | OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 421 | OMX_AUDIO_SBCAllocMethodVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 422 | OMX_AUDIO_SBCAllocMethodMax = 0x7FFFFFFF |
| 423 | } OMX_AUDIO_SBCALLOCMETHODTYPE; |
| 424 | |
| 425 | |
| 426 | /** SBC params */ |
| 427 | typedef struct OMX_AUDIO_PARAM_SBCTYPE { |
| 428 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 429 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 430 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 431 | OMX_U32 nChannels; /**< Number of channels */ |
| 432 | OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable |
| 433 | rate or unknown bit rates */ |
| 434 | OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for |
| 435 | variable or unknown sampling rate. */ |
| 436 | OMX_U32 nBlocks; /**< Number of blocks */ |
| 437 | OMX_U32 nSubbands; /**< Number of subbands */ |
| 438 | OMX_U32 nBitPool; /**< Bitpool value */ |
| 439 | OMX_BOOL bEnableBitrate; /**< Use bitrate value instead of bitpool */ |
| 440 | OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ |
| 441 | OMX_AUDIO_SBCALLOCMETHODTYPE eSBCAllocType; /**< SBC Allocation method type */ |
| 442 | } OMX_AUDIO_PARAM_SBCTYPE; |
| 443 | |
| 444 | |
| 445 | /** ADPCM stream format parameters */ |
| 446 | typedef struct OMX_AUDIO_PARAM_ADPCMTYPE { |
| 447 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 448 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 449 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 450 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 451 | necessarily the same as the number of channels |
| 452 | to be rendered. */ |
| 453 | OMX_U32 nBitsPerSample; /**< Number of bits in each sample */ |
| 454 | OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for |
| 455 | variable or unknown sampling rate. */ |
| 456 | } OMX_AUDIO_PARAM_ADPCMTYPE; |
| 457 | |
| 458 | |
| 459 | /** G723 rate */ |
| 460 | typedef enum OMX_AUDIO_G723RATE { |
| 461 | OMX_AUDIO_G723ModeUnused = 0, /**< AMRNB Mode unused / unknown */ |
| 462 | OMX_AUDIO_G723ModeLow, /**< 5300 bps */ |
| 463 | OMX_AUDIO_G723ModeHigh, /**< 6300 bps */ |
| 464 | OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 465 | OMX_AUDIO_G723ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 466 | OMX_AUDIO_G723ModeMax = 0x7FFFFFFF |
| 467 | } OMX_AUDIO_G723RATE; |
| 468 | |
| 469 | |
| 470 | /** G723 - Sample rate must be 8 KHz */ |
| 471 | typedef struct OMX_AUDIO_PARAM_G723TYPE { |
| 472 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 473 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 474 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 475 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 476 | necessarily the same as the number of channels |
| 477 | to be rendered. */ |
| 478 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 479 | OMX_AUDIO_G723RATE eBitRate; /**< todo: Should this be moved to a config? */ |
| 480 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 481 | OMX_BOOL bPostFilter; /**< Enable Post Filter */ |
| 482 | } OMX_AUDIO_PARAM_G723TYPE; |
| 483 | |
| 484 | |
| 485 | /** ITU G726 (ADPCM) rate */ |
| 486 | typedef enum OMX_AUDIO_G726MODE { |
| 487 | OMX_AUDIO_G726ModeUnused = 0, /**< G726 Mode unused / unknown */ |
| 488 | OMX_AUDIO_G726Mode16, /**< 16 kbps */ |
| 489 | OMX_AUDIO_G726Mode24, /**< 24 kbps */ |
| 490 | OMX_AUDIO_G726Mode32, /**< 32 kbps, most common rate, also G721 */ |
| 491 | OMX_AUDIO_G726Mode40, /**< 40 kbps */ |
| 492 | OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 493 | OMX_AUDIO_G726ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 494 | OMX_AUDIO_G726ModeMax = 0x7FFFFFFF |
| 495 | } OMX_AUDIO_G726MODE; |
| 496 | |
| 497 | |
| 498 | /** G.726 stream format parameters - must be at 8KHz */ |
| 499 | typedef struct OMX_AUDIO_PARAM_G726TYPE { |
| 500 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 501 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 502 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 503 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 504 | necessarily the same as the number of channels |
| 505 | to be rendered. */ |
| 506 | OMX_AUDIO_G726MODE eG726Mode; |
| 507 | } OMX_AUDIO_PARAM_G726TYPE; |
| 508 | |
| 509 | |
| 510 | /** G729 coder type */ |
| 511 | typedef enum OMX_AUDIO_G729TYPE { |
| 512 | OMX_AUDIO_G729 = 0, /**< ITU G.729 encoded data */ |
| 513 | OMX_AUDIO_G729A, /**< ITU G.729 annex A encoded data */ |
| 514 | OMX_AUDIO_G729B, /**< ITU G.729 with annex B encoded data */ |
| 515 | OMX_AUDIO_G729AB, /**< ITU G.729 annexes A and B encoded data */ |
| 516 | OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 517 | OMX_AUDIO_G729VendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 518 | OMX_AUDIO_G729Max = 0x7FFFFFFF |
| 519 | } OMX_AUDIO_G729TYPE; |
| 520 | |
| 521 | |
| 522 | /** G729 stream format parameters - fixed 6KHz sample rate */ |
| 523 | typedef struct OMX_AUDIO_PARAM_G729TYPE { |
| 524 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 525 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 526 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 527 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 528 | necessarily the same as the number of channels |
| 529 | to be rendered. */ |
| 530 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 531 | OMX_AUDIO_G729TYPE eBitType; |
| 532 | } OMX_AUDIO_PARAM_G729TYPE; |
| 533 | |
| 534 | |
| 535 | /** AMR Frame format */ |
| 536 | typedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE { |
| 537 | OMX_AUDIO_AMRFrameFormatConformance = 0, /**< Frame Format is AMR Conformance |
| 538 | (Standard) Format */ |
| 539 | OMX_AUDIO_AMRFrameFormatIF1, /**< Frame Format is AMR Interface |
| 540 | Format 1 */ |
| 541 | OMX_AUDIO_AMRFrameFormatIF2, /**< Frame Format is AMR Interface |
| 542 | Format 2*/ |
| 543 | OMX_AUDIO_AMRFrameFormatFSF, /**< Frame Format is AMR File Storage |
| 544 | Format */ |
| 545 | OMX_AUDIO_AMRFrameFormatRTPPayload, /**< Frame Format is AMR Real-Time |
| 546 | Transport Protocol Payload Format */ |
| 547 | OMX_AUDIO_AMRFrameFormatITU, /**< Frame Format is ITU Format (added at Motorola request) */ |
| 548 | OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 549 | OMX_AUDIO_AMRFrameFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 550 | OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF |
| 551 | } OMX_AUDIO_AMRFRAMEFORMATTYPE; |
| 552 | |
| 553 | |
| 554 | /** AMR band mode */ |
| 555 | typedef enum OMX_AUDIO_AMRBANDMODETYPE { |
| 556 | OMX_AUDIO_AMRBandModeUnused = 0, /**< AMRNB Mode unused / unknown */ |
| 557 | OMX_AUDIO_AMRBandModeNB0, /**< AMRNB Mode 0 = 4750 bps */ |
| 558 | OMX_AUDIO_AMRBandModeNB1, /**< AMRNB Mode 1 = 5150 bps */ |
| 559 | OMX_AUDIO_AMRBandModeNB2, /**< AMRNB Mode 2 = 5900 bps */ |
| 560 | OMX_AUDIO_AMRBandModeNB3, /**< AMRNB Mode 3 = 6700 bps */ |
| 561 | OMX_AUDIO_AMRBandModeNB4, /**< AMRNB Mode 4 = 7400 bps */ |
| 562 | OMX_AUDIO_AMRBandModeNB5, /**< AMRNB Mode 5 = 7950 bps */ |
| 563 | OMX_AUDIO_AMRBandModeNB6, /**< AMRNB Mode 6 = 10200 bps */ |
| 564 | OMX_AUDIO_AMRBandModeNB7, /**< AMRNB Mode 7 = 12200 bps */ |
| 565 | OMX_AUDIO_AMRBandModeWB0, /**< AMRWB Mode 0 = 6600 bps */ |
| 566 | OMX_AUDIO_AMRBandModeWB1, /**< AMRWB Mode 1 = 8850 bps */ |
| 567 | OMX_AUDIO_AMRBandModeWB2, /**< AMRWB Mode 2 = 12650 bps */ |
| 568 | OMX_AUDIO_AMRBandModeWB3, /**< AMRWB Mode 3 = 14250 bps */ |
| 569 | OMX_AUDIO_AMRBandModeWB4, /**< AMRWB Mode 4 = 15850 bps */ |
| 570 | OMX_AUDIO_AMRBandModeWB5, /**< AMRWB Mode 5 = 18250 bps */ |
| 571 | OMX_AUDIO_AMRBandModeWB6, /**< AMRWB Mode 6 = 19850 bps */ |
| 572 | OMX_AUDIO_AMRBandModeWB7, /**< AMRWB Mode 7 = 23050 bps */ |
| 573 | OMX_AUDIO_AMRBandModeWB8, /**< AMRWB Mode 8 = 23850 bps */ |
| 574 | OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 575 | OMX_AUDIO_AMRBandModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 576 | OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF |
| 577 | } OMX_AUDIO_AMRBANDMODETYPE; |
| 578 | |
| 579 | |
| 580 | /** AMR Discontinuous Transmission mode */ |
| 581 | typedef enum OMX_AUDIO_AMRDTXMODETYPE { |
| 582 | OMX_AUDIO_AMRDTXModeOff = 0, /**< AMR Discontinuous Transmission Mode is disabled */ |
| 583 | OMX_AUDIO_AMRDTXModeOnVAD1, /**< AMR Discontinuous Transmission Mode using |
| 584 | Voice Activity Detector 1 (VAD1) is enabled */ |
| 585 | OMX_AUDIO_AMRDTXModeOnVAD2, /**< AMR Discontinuous Transmission Mode using |
| 586 | Voice Activity Detector 2 (VAD2) is enabled */ |
| 587 | OMX_AUDIO_AMRDTXModeOnAuto, /**< The codec will automatically select between |
| 588 | Off, VAD1 or VAD2 modes */ |
| 589 | |
| 590 | OMX_AUDIO_AMRDTXasEFR, /**< DTX as EFR instead of AMR standard (3GPP 26.101, frame type =8,9,10) */ |
| 591 | |
| 592 | OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 593 | OMX_AUDIO_AMRDTXModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 594 | OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF |
| 595 | } OMX_AUDIO_AMRDTXMODETYPE; |
| 596 | |
| 597 | |
| 598 | /** AMR params */ |
| 599 | typedef struct OMX_AUDIO_PARAM_AMRTYPE { |
| 600 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 601 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 602 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 603 | OMX_U32 nChannels; /**< Number of channels */ |
| 604 | OMX_U32 nBitRate; /**< Bit rate read only field */ |
| 605 | OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ |
| 606 | OMX_AUDIO_AMRDTXMODETYPE eAMRDTXMode; /**< AMR DTX Mode enumeration */ |
| 607 | OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */ |
| 608 | } OMX_AUDIO_PARAM_AMRTYPE; |
| 609 | |
| 610 | |
| 611 | /** GSM_FR (ETSI 06.10, 3GPP 46.010) stream format parameters */ |
| 612 | typedef struct OMX_AUDIO_PARAM_GSMFRTYPE { |
| 613 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 614 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 615 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 616 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 617 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 618 | } OMX_AUDIO_PARAM_GSMFRTYPE; |
| 619 | |
| 620 | |
| 621 | /** GSM-HR (ETSI 06.20, 3GPP 46.020) stream format parameters */ |
| 622 | typedef struct OMX_AUDIO_PARAM_GSMHRTYPE { |
| 623 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 624 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 625 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 626 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 627 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 628 | } OMX_AUDIO_PARAM_GSMHRTYPE; |
| 629 | |
| 630 | |
| 631 | /** GSM-EFR (ETSI 06.60, 3GPP 46.060) stream format parameters */ |
| 632 | typedef struct OMX_AUDIO_PARAM_GSMEFRTYPE { |
| 633 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 634 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 635 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 636 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 637 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 638 | } OMX_AUDIO_PARAM_GSMEFRTYPE; |
| 639 | |
| 640 | |
| 641 | /** TDMA FR (TIA/EIA-136-420, VSELP 7.95kbps coder) stream format parameters */ |
| 642 | typedef struct OMX_AUDIO_PARAM_TDMAFRTYPE { |
| 643 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 644 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 645 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 646 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 647 | necessarily the same as the number of channels |
| 648 | to be rendered. */ |
| 649 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 650 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 651 | } OMX_AUDIO_PARAM_TDMAFRTYPE; |
| 652 | |
| 653 | |
| 654 | /** TDMA EFR (TIA/EIA-136-410, ACELP 7.4kbps coder) stream format parameters */ |
| 655 | typedef struct OMX_AUDIO_PARAM_TDMAEFRTYPE { |
| 656 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 657 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 658 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 659 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 660 | necessarily the same as the number of channels |
| 661 | to be rendered. */ |
| 662 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 663 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 664 | } OMX_AUDIO_PARAM_TDMAEFRTYPE; |
| 665 | |
| 666 | |
| 667 | /** PDC FR ( RCR-27, VSELP 6.7kbps coder) stream format parameters */ |
| 668 | typedef struct OMX_AUDIO_PARAM_PDCFRTYPE { |
| 669 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 670 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 671 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 672 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 673 | necessarily the same as the number of channels |
| 674 | to be rendered. */ |
| 675 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 676 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 677 | } OMX_AUDIO_PARAM_PDCFRTYPE; |
| 678 | |
| 679 | |
| 680 | /** PDC EFR ( RCR-27, ACELP 6.7kbps coder) stream format parameters */ |
| 681 | typedef struct OMX_AUDIO_PARAM_PDCEFRTYPE { |
| 682 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 683 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 684 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 685 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 686 | necessarily the same as the number of channels |
| 687 | to be rendered. */ |
| 688 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 689 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 690 | } OMX_AUDIO_PARAM_PDCEFRTYPE; |
| 691 | |
| 692 | /** PDC HR ( RCR-27, PSI-CELP 3.45kbps coder) stream format parameters */ |
| 693 | typedef struct OMX_AUDIO_PARAM_PDCHRTYPE { |
| 694 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 695 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 696 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 697 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 698 | necessarily the same as the number of channels |
| 699 | to be rendered. */ |
| 700 | OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ |
| 701 | OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ |
| 702 | } OMX_AUDIO_PARAM_PDCHRTYPE; |
| 703 | |
| 704 | |
| 705 | /** CDMA Rate types */ |
| 706 | typedef enum OMX_AUDIO_CDMARATETYPE { |
| 707 | OMX_AUDIO_CDMARateBlank = 0, /**< CDMA encoded frame is blank */ |
| 708 | OMX_AUDIO_CDMARateFull, /**< CDMA encoded frame in full rate */ |
| 709 | OMX_AUDIO_CDMARateHalf, /**< CDMA encoded frame in half rate */ |
| 710 | OMX_AUDIO_CDMARateQuarter, /**< CDMA encoded frame in quarter rate */ |
| 711 | OMX_AUDIO_CDMARateEighth, /**< CDMA encoded frame in eighth rate (DTX)*/ |
| 712 | OMX_AUDIO_CDMARateErasure, /**< CDMA erasure frame */ |
| 713 | OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 714 | OMX_AUDIO_CDMARateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 715 | OMX_AUDIO_CDMARateMax = 0x7FFFFFFF |
| 716 | } OMX_AUDIO_CDMARATETYPE; |
| 717 | |
| 718 | |
| 719 | /** QCELP8 (TIA/EIA-96, up to 8kbps coder) stream format parameters */ |
| 720 | typedef struct OMX_AUDIO_PARAM_QCELP8TYPE { |
| 721 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 722 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 723 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 724 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 725 | necessarily the same as the number of channels |
| 726 | to be rendered. */ |
| 727 | OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable |
| 728 | rate or unknown bit rates */ |
| 729 | OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ |
| 730 | OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ |
| 731 | OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ |
| 732 | } OMX_AUDIO_PARAM_QCELP8TYPE; |
| 733 | |
| 734 | |
| 735 | /** QCELP13 ( CDMA, EIA/TIA-733, 13.3kbps coder) stream format parameters */ |
| 736 | typedef struct OMX_AUDIO_PARAM_QCELP13TYPE { |
| 737 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 738 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 739 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 740 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 741 | necessarily the same as the number of channels |
| 742 | to be rendered. */ |
| 743 | OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ |
| 744 | OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ |
| 745 | OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ |
| 746 | } OMX_AUDIO_PARAM_QCELP13TYPE; |
| 747 | |
| 748 | |
| 749 | /** EVRC ( CDMA, EIA/TIA-127, RCELP up to 8.55kbps coder) stream format parameters */ |
| 750 | typedef struct OMX_AUDIO_PARAM_EVRCTYPE { |
| 751 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 752 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 753 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 754 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 755 | necessarily the same as the number of channels |
| 756 | to be rendered. */ |
| 757 | OMX_AUDIO_CDMARATETYPE eCDMARate; /**< actual Frame rate */ |
| 758 | OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */ |
| 759 | OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ |
| 760 | OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ |
| 761 | OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter */ |
| 762 | OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */ |
| 763 | OMX_BOOL bPostFilter; /**< Enable decoder's post Filter */ |
| 764 | } OMX_AUDIO_PARAM_EVRCTYPE; |
| 765 | |
| 766 | |
| 767 | /** SMV ( up to 8.55kbps coder) stream format parameters */ |
| 768 | typedef struct OMX_AUDIO_PARAM_SMVTYPE { |
| 769 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 770 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 771 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 772 | OMX_U32 nChannels; /**< Number of channels in the data stream (not |
| 773 | necessarily the same as the number of channels |
| 774 | to be rendered. */ |
| 775 | OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ |
| 776 | OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */ |
| 777 | OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 ??*/ |
| 778 | OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 ??*/ |
| 779 | OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter ??*/ |
| 780 | OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */ |
| 781 | OMX_BOOL bPostFilter; /**< Enable decoder's post Filter ??*/ |
| 782 | } OMX_AUDIO_PARAM_SMVTYPE; |
| 783 | |
| 784 | |
| 785 | /** MIDI Format |
| 786 | * @ingroup midi |
| 787 | */ |
| 788 | typedef enum OMX_AUDIO_MIDIFORMATTYPE |
| 789 | { |
| 790 | OMX_AUDIO_MIDIFormatUnknown = 0, /**< MIDI Format unknown or don't care */ |
| 791 | OMX_AUDIO_MIDIFormatSMF0, /**< Standard MIDI File Type 0 */ |
| 792 | OMX_AUDIO_MIDIFormatSMF1, /**< Standard MIDI File Type 1 */ |
| 793 | OMX_AUDIO_MIDIFormatSMF2, /**< Standard MIDI File Type 2 */ |
| 794 | OMX_AUDIO_MIDIFormatSPMIDI, /**< SP-MIDI */ |
| 795 | OMX_AUDIO_MIDIFormatXMF0, /**< eXtensible Music Format type 0 */ |
| 796 | OMX_AUDIO_MIDIFormatXMF1, /**< eXtensible Music Format type 1 */ |
| 797 | OMX_AUDIO_MIDIFormatMobileXMF, /**< Mobile XMF (eXtensible Music Format type 2) */ |
| 798 | OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 799 | OMX_AUDIO_MIDIFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 800 | OMX_AUDIO_MIDIFormatMax = 0x7FFFFFFF |
| 801 | } OMX_AUDIO_MIDIFORMATTYPE; |
| 802 | |
| 803 | |
| 804 | /** MIDI params |
| 805 | * @ingroup midi |
| 806 | */ |
| 807 | typedef struct OMX_AUDIO_PARAM_MIDITYPE { |
| 808 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 809 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 810 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 811 | OMX_U32 nFileSize; /**< size of the MIDI file in bytes, where the entire |
| 812 | MIDI file passed in, otherwise if 0x0, the MIDI data |
| 813 | is merged and streamed (instead of passed as an |
| 814 | entire MIDI file) */ |
| 815 | OMX_BU32 sMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic |
| 816 | voices. A value of zero indicates that the default |
| 817 | polyphony of the device is used */ |
| 818 | OMX_BOOL bLoadDefaultSound; /**< Whether to load default sound |
| 819 | bank at initialization */ |
| 820 | OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */ |
| 821 | } OMX_AUDIO_PARAM_MIDITYPE; |
| 822 | |
| 823 | |
| 824 | /** Type of the MIDI sound bank |
| 825 | * @ingroup midi |
| 826 | */ |
| 827 | typedef enum OMX_AUDIO_MIDISOUNDBANKTYPE { |
| 828 | OMX_AUDIO_MIDISoundBankUnused = 0, /**< unused/unknown soundbank type */ |
| 829 | OMX_AUDIO_MIDISoundBankDLS1, /**< DLS version 1 */ |
| 830 | OMX_AUDIO_MIDISoundBankDLS2, /**< DLS version 2 */ |
| 831 | OMX_AUDIO_MIDISoundBankMobileDLSBase, /**< Mobile DLS, using the base functionality */ |
| 832 | OMX_AUDIO_MIDISoundBankMobileDLSPlusOptions, /**< Mobile DLS, using the specification-defined optional feature set */ |
| 833 | OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 834 | OMX_AUDIO_MIDISoundBankVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 835 | OMX_AUDIO_MIDISoundBankMax = 0x7FFFFFFF |
| 836 | } OMX_AUDIO_MIDISOUNDBANKTYPE; |
| 837 | |
| 838 | |
| 839 | /** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank |
| 840 | * @ingroup midi |
| 841 | */ |
| 842 | typedef enum OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE { |
| 843 | OMX_AUDIO_MIDISoundBankLayoutUnused = 0, /**< unused/unknown soundbank type */ |
| 844 | OMX_AUDIO_MIDISoundBankLayoutGM, /**< GS layout (based on bank MSB 0x00) */ |
| 845 | OMX_AUDIO_MIDISoundBankLayoutGM2, /**< General MIDI 2 layout (using MSB 0x78/0x79, LSB 0x00) */ |
| 846 | OMX_AUDIO_MIDISoundBankLayoutUser, /**< Does not conform to any bank numbering standards */ |
| 847 | OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 848 | OMX_AUDIO_MIDISoundBankLayoutVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 849 | OMX_AUDIO_MIDISoundBankLayoutMax = 0x7FFFFFFF |
| 850 | } OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE; |
| 851 | |
| 852 | |
| 853 | /** MIDI params to load/unload user soundbank |
| 854 | * @ingroup midi |
| 855 | */ |
| 856 | typedef struct OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE { |
| 857 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 858 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 859 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 860 | OMX_U32 nDLSIndex; /**< DLS file index to be loaded */ |
| 861 | OMX_U32 nDLSSize; /**< Size in bytes */ |
| 862 | OMX_PTR pDLSData; /**< Pointer to DLS file data */ |
| 863 | OMX_AUDIO_MIDISOUNDBANKTYPE eMidiSoundBank; /**< Midi sound bank type enumeration */ |
| 864 | OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE eMidiSoundBankLayout; /**< Midi sound bank layout enumeration */ |
| 865 | } OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE; |
| 866 | |
| 867 | |
| 868 | /** Structure for Live MIDI events and MIP messages. |
| 869 | * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.) |
| 870 | * @ingroup midi |
| 871 | */ |
| 872 | typedef struct OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE { |
| 873 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 874 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 875 | OMX_U32 nPortIndex; /**< Port that this structure applies to */ |
| 876 | OMX_U32 nMidiEventSize; /**< Size of immediate MIDI events or MIP message in bytes */ |
| 877 | OMX_U8 nMidiEvents[1]; /**< MIDI event array to be rendered immediately, or an |
| 878 | array for the MIP message buffer, where the size is |
| 879 | indicated by nMidiEventSize */ |
| 880 | } OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE; |
| 881 | |
| 882 | |
| 883 | /** MIDI sound bank/ program pair in a given channel |
| 884 | * @ingroup midi |
| 885 | */ |
| 886 | typedef struct OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE { |
| 887 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 888 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 889 | OMX_U32 nPortIndex; /**< Port that this structure applies to */ |
| 890 | OMX_U32 nChannel; /**< Valid channel values range from 1 to 16 */ |
| 891 | OMX_U16 nIDProgram; /**< Valid program ID range is 1 to 128 */ |
| 892 | OMX_U16 nIDSoundBank; /**< Sound bank ID */ |
| 893 | OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks |
| 894 | by index if multiple banks are present */ |
| 895 | } OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE; |
| 896 | |
| 897 | |
| 898 | /** MIDI control |
| 899 | * @ingroup midi |
| 900 | */ |
| 901 | typedef struct OMX_AUDIO_CONFIG_MIDICONTROLTYPE { |
| 902 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 903 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 904 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 905 | OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10 |
| 906 | format based on JAVA MMAPI (JSR-135) requirement */ |
| 907 | OMX_BU32 sPlayBackRate; /**< Relative playback rate, stored as Q14.17 fixed-point |
| 908 | number based on JSR-135 requirement */ |
| 909 | OMX_BU32 sTempo ; /**< Tempo in beats per minute (BPM), stored as Q22.10 |
| 910 | fixed-point number based on JSR-135 requirement */ |
| 911 | OMX_U32 nMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic |
| 912 | voices. A value of zero indicates that the default |
| 913 | polyphony of the device is used */ |
| 914 | OMX_U32 nNumRepeat; /**< Number of times to repeat playback */ |
| 915 | OMX_U32 nStopTime; /**< Time in milliseconds to indicate when playback |
| 916 | will stop automatically. Set to zero if not used */ |
| 917 | OMX_U16 nChannelMuteMask; /**< 16 bit mask for channel mute status */ |
| 918 | OMX_U16 nChannelSoloMask; /**< 16 bit mask for channel solo status */ |
| 919 | OMX_U32 nTrack0031MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 0-31 */ |
| 920 | OMX_U32 nTrack3263MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 32-63 */ |
| 921 | OMX_U32 nTrack0031SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 0-31 */ |
| 922 | OMX_U32 nTrack3263SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 32-63 */ |
| 923 | |
| 924 | } OMX_AUDIO_CONFIG_MIDICONTROLTYPE; |
| 925 | |
| 926 | |
| 927 | /** MIDI Playback States |
| 928 | * @ingroup midi |
| 929 | */ |
| 930 | typedef enum OMX_AUDIO_MIDIPLAYBACKSTATETYPE { |
| 931 | OMX_AUDIO_MIDIPlayBackStateUnknown = 0, /**< Unknown state or state does not map to |
| 932 | other defined states */ |
| 933 | OMX_AUDIO_MIDIPlayBackStateClosedEngaged, /**< No MIDI resource is currently open. |
| 934 | The MIDI engine is currently processing |
| 935 | MIDI events. */ |
| 936 | OMX_AUDIO_MIDIPlayBackStateParsing, /**< A MIDI resource is open and is being |
| 937 | primed. The MIDI engine is currently |
| 938 | processing MIDI events. */ |
| 939 | OMX_AUDIO_MIDIPlayBackStateOpenEngaged, /**< A MIDI resource is open and primed but |
| 940 | not playing. The MIDI engine is currently |
| 941 | processing MIDI events. The transition to |
| 942 | this state is only possible from the |
| 943 | OMX_AUDIO_MIDIPlayBackStatePlaying state, |
| 944 | when the 'playback head' reaches the end |
| 945 | of media data or the playback stops due |
| 946 | to stop time set.*/ |
| 947 | OMX_AUDIO_MIDIPlayBackStatePlaying, /**< A MIDI resource is open and currently |
| 948 | playing. The MIDI engine is currently |
| 949 | processing MIDI events.*/ |
| 950 | OMX_AUDIO_MIDIPlayBackStatePlayingPartially, /**< Best-effort playback due to SP-MIDI/DLS |
| 951 | resource constraints */ |
| 952 | OMX_AUDIO_MIDIPlayBackStatePlayingSilently, /**< Due to system resource constraints and |
| 953 | SP-MIDI content constraints, there is |
| 954 | no audible MIDI content during playback |
| 955 | currently. The situation may change if |
| 956 | resources are freed later.*/ |
| 957 | OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 958 | OMX_AUDIO_MIDIPlayBackStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 959 | OMX_AUDIO_MIDIPlayBackStateMax = 0x7FFFFFFF |
| 960 | } OMX_AUDIO_MIDIPLAYBACKSTATETYPE; |
| 961 | |
| 962 | |
| 963 | /** MIDI status |
| 964 | * @ingroup midi |
| 965 | */ |
| 966 | typedef struct OMX_AUDIO_CONFIG_MIDISTATUSTYPE { |
| 967 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 968 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 969 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 970 | OMX_U16 nNumTracks; /**< Number of MIDI tracks in the file, read only field. |
| 971 | NOTE: May not return a meaningful value until the entire |
| 972 | file is parsed and buffered. */ |
| 973 | OMX_U32 nDuration; /**< The length of the currently open MIDI resource |
| 974 | in milliseconds. NOTE: May not return a meaningful value |
| 975 | until the entire file is parsed and buffered. */ |
| 976 | OMX_U32 nPosition; /**< Current Position of the MIDI resource being played |
| 977 | in milliseconds */ |
| 978 | OMX_BOOL bVibra; /**< Does Vibra track exist? NOTE: May not return a meaningful |
| 979 | value until the entire file is parsed and buffered. */ |
| 980 | OMX_U32 nNumMetaEvents; /**< Total number of MIDI Meta Events in the currently |
| 981 | open MIDI resource. NOTE: May not return a meaningful value |
| 982 | until the entire file is parsed and buffered. */ |
| 983 | OMX_U32 nNumActiveVoices; /**< Number of active voices in the currently playing |
| 984 | MIDI resource. NOTE: May not return a meaningful value until |
| 985 | the entire file is parsed and buffered. */ |
| 986 | OMX_AUDIO_MIDIPLAYBACKSTATETYPE eMIDIPlayBackState; /**< MIDI playback state enumeration, read only field */ |
| 987 | } OMX_AUDIO_CONFIG_MIDISTATUSTYPE; |
| 988 | |
| 989 | |
| 990 | /** MIDI Meta Event structure one per Meta Event. |
| 991 | * MIDI Meta Events are like audio metadata, except that they are interspersed |
| 992 | * with the MIDI content throughout the file and are not localized in the header. |
| 993 | * As such, it is necessary to retrieve information about these Meta Events from |
| 994 | * the engine, as it encounters these Meta Events within the MIDI content. |
| 995 | * For example, SMF files can have up to 14 types of MIDI Meta Events (copyright, |
| 996 | * author, default tempo, etc.) scattered throughout the file. |
| 997 | * @ingroup midi |
| 998 | */ |
| 999 | typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{ |
| 1000 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1001 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1002 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1003 | OMX_U32 nIndex; /**< Index of Meta Event */ |
| 1004 | OMX_U8 nMetaEventType; /**< Meta Event Type, 7bits (i.e. 0 - 127) */ |
| 1005 | OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */ |
| 1006 | OMX_U32 nTrack; /**< track number for the meta event */ |
| 1007 | OMX_U32 nPosition; /**< Position of the meta-event in milliseconds */ |
| 1008 | } OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE; |
| 1009 | |
| 1010 | |
| 1011 | /** MIDI Meta Event Data structure - one per Meta Event. |
| 1012 | * @ingroup midi |
| 1013 | */ |
| 1014 | typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{ |
| 1015 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1016 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1017 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1018 | OMX_U32 nIndex; /**< Index of Meta Event */ |
| 1019 | OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */ |
| 1020 | OMX_U8 nData[1]; /**< array of one or more bytes of meta data |
| 1021 | as indicated by the nMetaEventSize field */ |
| 1022 | } OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE; |
| 1023 | |
| 1024 | |
| 1025 | /** Audio Volume adjustment for a port */ |
| 1026 | typedef struct OMX_AUDIO_CONFIG_VOLUMETYPE { |
| 1027 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1028 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1029 | OMX_U32 nPortIndex; /**< Port index indicating which port to |
| 1030 | set. Select the input port to set |
| 1031 | just that port's volume. Select the |
| 1032 | output port to adjust the master |
| 1033 | volume. */ |
| 1034 | OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100) |
| 1035 | or logarithmic scale (mB) */ |
| 1036 | OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR |
| 1037 | Volume logarithmic setting for this port. The values |
| 1038 | for volume are in mB (millibels = 1/100 dB) relative |
| 1039 | to a gain of 1 (e.g. the output is the same as the |
| 1040 | input level). Values are in mB from nMax |
| 1041 | (maximum volume) to nMin mB (typically negative). |
| 1042 | Since the volume is "voltage" |
| 1043 | and not a "power", it takes a setting of |
| 1044 | -600 mB to decrease the volume by 1/2. If |
| 1045 | a component cannot accurately set the |
| 1046 | volume to the requested value, it must |
| 1047 | set the volume to the closest value BELOW |
| 1048 | the requested value. When getting the |
| 1049 | volume setting, the current actual volume |
| 1050 | must be returned. */ |
| 1051 | } OMX_AUDIO_CONFIG_VOLUMETYPE; |
| 1052 | |
| 1053 | |
| 1054 | /** Audio Volume adjustment for a channel */ |
| 1055 | typedef struct OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE { |
| 1056 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1057 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1058 | OMX_U32 nPortIndex; /**< Port index indicating which port to |
| 1059 | set. Select the input port to set |
| 1060 | just that port's volume. Select the |
| 1061 | output port to adjust the master |
| 1062 | volume. */ |
| 1063 | OMX_U32 nChannel; /**< channel to select from 0 to N-1, |
| 1064 | using OMX_ALL to apply volume settings |
| 1065 | to all channels */ |
| 1066 | OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100) or |
| 1067 | logarithmic scale (mB) */ |
| 1068 | OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR |
| 1069 | Volume logarithmic setting for this port. |
| 1070 | The values for volume are in mB |
| 1071 | (millibels = 1/100 dB) relative to a gain |
| 1072 | of 1 (e.g. the output is the same as the |
| 1073 | input level). Values are in mB from nMax |
| 1074 | (maximum volume) to nMin mB (typically negative). |
| 1075 | Since the volume is "voltage" |
| 1076 | and not a "power", it takes a setting of |
| 1077 | -600 mB to decrease the volume by 1/2. If |
| 1078 | a component cannot accurately set the |
| 1079 | volume to the requested value, it must |
| 1080 | set the volume to the closest value BELOW |
| 1081 | the requested value. When getting the |
| 1082 | volume setting, the current actual volume |
| 1083 | must be returned. */ |
| 1084 | OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel, |
| 1085 | FALSE otherwise */ |
| 1086 | } OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE; |
| 1087 | |
| 1088 | |
| 1089 | /** Audio balance setting */ |
| 1090 | typedef struct OMX_AUDIO_CONFIG_BALANCETYPE { |
| 1091 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1092 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1093 | OMX_U32 nPortIndex; /**< Port index indicating which port to |
| 1094 | set. Select the input port to set |
| 1095 | just that port's balance. Select the |
| 1096 | output port to adjust the master |
| 1097 | balance. */ |
| 1098 | OMX_S32 nBalance; /**< balance setting for this port |
| 1099 | (-100 to 100, where -100 indicates |
| 1100 | all left, and no right */ |
| 1101 | } OMX_AUDIO_CONFIG_BALANCETYPE; |
| 1102 | |
| 1103 | |
| 1104 | /** Audio Port mute */ |
| 1105 | typedef struct OMX_AUDIO_CONFIG_MUTETYPE { |
| 1106 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1107 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1108 | OMX_U32 nPortIndex; /**< Port index indicating which port to |
| 1109 | set. Select the input port to set |
| 1110 | just that port's mute. Select the |
| 1111 | output port to adjust the master |
| 1112 | mute. */ |
| 1113 | OMX_BOOL bMute; /**< Mute setting for this port */ |
| 1114 | } OMX_AUDIO_CONFIG_MUTETYPE; |
| 1115 | |
| 1116 | |
| 1117 | /** Audio Channel mute */ |
| 1118 | typedef struct OMX_AUDIO_CONFIG_CHANNELMUTETYPE { |
| 1119 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1120 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1121 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1122 | OMX_U32 nChannel; /**< channel to select from 0 to N-1, |
| 1123 | using OMX_ALL to apply mute settings |
| 1124 | to all channels */ |
| 1125 | OMX_BOOL bMute; /**< Mute setting for this channel */ |
| 1126 | OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel, |
| 1127 | FALSE otherwise */ |
| 1128 | } OMX_AUDIO_CONFIG_CHANNELMUTETYPE; |
| 1129 | |
| 1130 | |
| 1131 | |
| 1132 | /** Enable / Disable for loudness control, which boosts bass and to a |
| 1133 | * smaller extent high end frequencies to compensate for hearing |
| 1134 | * ability at the extreme ends of the audio spectrum |
| 1135 | */ |
| 1136 | typedef struct OMX_AUDIO_CONFIG_LOUDNESSTYPE { |
| 1137 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1138 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1139 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1140 | OMX_BOOL bLoudness; /**< Enable/disable for loudness */ |
| 1141 | } OMX_AUDIO_CONFIG_LOUDNESSTYPE; |
| 1142 | |
| 1143 | |
| 1144 | /** Enable / Disable for bass, which controls low frequencies |
| 1145 | */ |
| 1146 | typedef struct OMX_AUDIO_CONFIG_BASSTYPE { |
| 1147 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1148 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1149 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1150 | OMX_BOOL bEnable; /**< Enable/disable for bass control */ |
| 1151 | OMX_S32 nBass; /**< bass setting for the port, as a |
| 1152 | continuous value from -100 to 100 |
| 1153 | (0 means no change in bass level)*/ |
| 1154 | } OMX_AUDIO_CONFIG_BASSTYPE; |
| 1155 | |
| 1156 | |
| 1157 | /** Enable / Disable for treble, which controls high frequencies tones |
| 1158 | */ |
| 1159 | typedef struct OMX_AUDIO_CONFIG_TREBLETYPE { |
| 1160 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1161 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1162 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1163 | OMX_BOOL bEnable; /**< Enable/disable for treble control */ |
| 1164 | OMX_S32 nTreble; /**< treble setting for the port, as a |
| 1165 | continuous value from -100 to 100 |
| 1166 | (0 means no change in treble level) */ |
| 1167 | } OMX_AUDIO_CONFIG_TREBLETYPE; |
| 1168 | |
| 1169 | |
| 1170 | /** An equalizer is typically used for two reasons: to compensate for an |
| 1171 | * sub-optimal frequency response of a system to make it sound more natural |
| 1172 | * or to create intentionally some unnatural coloring to the sound to create |
| 1173 | * an effect. |
| 1174 | * @ingroup effects |
| 1175 | */ |
| 1176 | typedef struct OMX_AUDIO_CONFIG_EQUALIZERTYPE { |
| 1177 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1178 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1179 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1180 | OMX_BOOL bEnable; /**< Enable/disable for equalizer */ |
| 1181 | OMX_BU32 sBandIndex; /**< Band number to be set. Upper Limit is |
| 1182 | N-1, where N is the number of bands, lower limit is 0 */ |
| 1183 | OMX_BU32 sCenterFreq; /**< Center frequecies in Hz. This is a |
| 1184 | read only element and is used to determine |
| 1185 | the lower, center and upper frequency of |
| 1186 | this band. */ |
| 1187 | OMX_BS32 sBandLevel; /**< band level in millibels */ |
| 1188 | } OMX_AUDIO_CONFIG_EQUALIZERTYPE; |
| 1189 | |
| 1190 | |
| 1191 | /** Stereo widening mode type |
| 1192 | * @ingroup effects |
| 1193 | */ |
| 1194 | typedef enum OMX_AUDIO_STEREOWIDENINGTYPE { |
| 1195 | OMX_AUDIO_StereoWideningHeadphones, /**< Stereo widening for loudspeakers */ |
| 1196 | OMX_AUDIO_StereoWideningLoudspeakers, /**< Stereo widening for closely spaced loudspeakers */ |
| 1197 | OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 1198 | OMX_AUDIO_StereoWideningVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 1199 | OMX_AUDIO_StereoWideningMax = 0x7FFFFFFF |
| 1200 | } OMX_AUDIO_STEREOWIDENINGTYPE; |
| 1201 | |
| 1202 | |
| 1203 | /** Control for stereo widening, which is a special 2-channel |
| 1204 | * case of the audio virtualizer effect. For example, for 5.1-channel |
| 1205 | * output, it translates to virtual surround sound. |
| 1206 | * @ingroup effects |
| 1207 | */ |
| 1208 | typedef struct OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE { |
| 1209 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1210 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1211 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1212 | OMX_BOOL bEnable; /**< Enable/disable for stereo widening control */ |
| 1213 | OMX_AUDIO_STEREOWIDENINGTYPE eWideningType; /**< Stereo widening algorithm type */ |
| 1214 | OMX_U32 nStereoWidening; /**< stereo widening setting for the port, |
| 1215 | as a continuous value from 0 to 100 */ |
| 1216 | } OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE; |
| 1217 | |
| 1218 | |
| 1219 | /** The chorus effect (or ``choralizer'') is any signal processor which makes |
| 1220 | * one sound source (such as a voice) sound like many such sources singing |
| 1221 | * (or playing) in unison. Since performance in unison is never exact, chorus |
| 1222 | * effects simulate this by making independently modified copies of the input |
| 1223 | * signal. Modifications may include (1) delay, (2) frequency shift, and |
| 1224 | * (3) amplitude modulation. |
| 1225 | * @ingroup effects |
| 1226 | */ |
| 1227 | typedef struct OMX_AUDIO_CONFIG_CHORUSTYPE { |
| 1228 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1229 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1230 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1231 | OMX_BOOL bEnable; /**< Enable/disable for chorus */ |
| 1232 | OMX_BU32 sDelay; /**< average delay in milliseconds */ |
| 1233 | OMX_BU32 sModulationRate; /**< rate of modulation in millihertz */ |
| 1234 | OMX_U32 nModulationDepth; /**< depth of modulation as a percentage of |
| 1235 | delay (i.e. 0 to 100) */ |
| 1236 | OMX_BU32 nFeedback; /**< Feedback from chorus output to input in percentage */ |
| 1237 | } OMX_AUDIO_CONFIG_CHORUSTYPE; |
| 1238 | |
| 1239 | |
| 1240 | /** Reverberation is part of the reflected sound that follows the early |
| 1241 | * reflections. In a typical room, this consists of a dense succession of |
| 1242 | * echoes whose energy decays exponentially. The reverberation effect structure |
| 1243 | * as defined here includes both (early) reflections as well as (late) reverberations. |
| 1244 | * @ingroup effects |
| 1245 | */ |
| 1246 | typedef struct OMX_AUDIO_CONFIG_REVERBERATIONTYPE { |
| 1247 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1248 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1249 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1250 | OMX_BOOL bEnable; /**< Enable/disable for reverberation control */ |
| 1251 | OMX_BS32 sRoomLevel; /**< Intensity level for the whole room effect |
| 1252 | (i.e. both early reflections and late |
| 1253 | reverberation) in millibels */ |
| 1254 | OMX_BS32 sRoomHighFreqLevel; /**< Attenuation at high frequencies |
| 1255 | relative to the intensity at low |
| 1256 | frequencies in millibels */ |
| 1257 | OMX_BS32 sReflectionsLevel; /**< Intensity level of early reflections |
| 1258 | (relative to room value), in millibels */ |
| 1259 | OMX_BU32 sReflectionsDelay; /**< Delay time of the first reflection relative |
| 1260 | to the direct path, in milliseconds */ |
| 1261 | OMX_BS32 sReverbLevel; /**< Intensity level of late reverberation |
| 1262 | relative to room level, in millibels */ |
| 1263 | OMX_BU32 sReverbDelay; /**< Time delay from the first early reflection |
| 1264 | to the beginning of the late reverberation |
| 1265 | section, in milliseconds */ |
| 1266 | OMX_BU32 sDecayTime; /**< Late reverberation decay time at low |
| 1267 | frequencies, in milliseconds */ |
| 1268 | OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative |
| 1269 | to low frequency decay time in percent */ |
| 1270 | OMX_U32 nDensity; /**< Modal density in the late reverberation decay, |
| 1271 | in percent (i.e. 0 - 100) */ |
| 1272 | OMX_U32 nDiffusion; /**< Echo density in the late reverberation decay, |
| 1273 | in percent (i.e. 0 - 100) */ |
| 1274 | OMX_BU32 sReferenceHighFreq; /**< Reference high frequency in Hertz. This is |
| 1275 | the frequency used as the reference for all |
| 1276 | the high-frequency settings above */ |
| 1277 | |
| 1278 | } OMX_AUDIO_CONFIG_REVERBERATIONTYPE; |
| 1279 | |
| 1280 | |
| 1281 | /** Possible settings for the Echo Cancelation structure to use |
| 1282 | * @ingroup effects |
| 1283 | */ |
| 1284 | typedef enum OMX_AUDIO_ECHOCANTYPE { |
| 1285 | OMX_AUDIO_EchoCanOff = 0, /**< Echo Cancellation is disabled */ |
| 1286 | OMX_AUDIO_EchoCanNormal, /**< Echo Cancellation normal operation - |
| 1287 | echo from plastics and face */ |
| 1288 | OMX_AUDIO_EchoCanHFree, /**< Echo Cancellation optimized for |
| 1289 | Hands Free operation */ |
| 1290 | OMX_AUDIO_EchoCanCarKit, /**< Echo Cancellation optimized for |
| 1291 | Car Kit (longer echo) */ |
| 1292 | OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ |
| 1293 | OMX_AUDIO_EchoCanVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ |
| 1294 | OMX_AUDIO_EchoCanMax = 0x7FFFFFFF |
| 1295 | } OMX_AUDIO_ECHOCANTYPE; |
| 1296 | |
| 1297 | |
| 1298 | /** Enable / Disable for echo cancelation, which removes undesired echo's |
| 1299 | * from the audio |
| 1300 | * @ingroup effects |
| 1301 | */ |
| 1302 | typedef struct OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE { |
| 1303 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1304 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1305 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1306 | OMX_AUDIO_ECHOCANTYPE eEchoCancelation; /**< Echo cancelation settings */ |
| 1307 | } OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE; |
| 1308 | |
| 1309 | |
| 1310 | /** Enable / Disable for noise reduction, which undesired noise from |
| 1311 | * the audio |
| 1312 | * @ingroup effects |
| 1313 | */ |
| 1314 | typedef struct OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE { |
| 1315 | OMX_U32 nSize; /**< size of the structure in bytes */ |
| 1316 | OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
| 1317 | OMX_U32 nPortIndex; /**< port that this structure applies to */ |
| 1318 | OMX_BOOL bNoiseReduction; /**< Enable/disable for noise reduction */ |
| 1319 | } OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE; |
| 1320 | |
| 1321 | /** @} */ |
| 1322 | |
| 1323 | #ifdef __cplusplus |
| 1324 | } |
| 1325 | #endif /* __cplusplus */ |
| 1326 | |
| 1327 | #endif |
| 1328 | /* File EOF */ |