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