16ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* ------------------------------------------------------------------
26ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Copyright (C) 1998-2009 PacketVideo
36ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
46ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
56ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * you may not use this file except in compliance with the License.
66ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * You may obtain a copy of the License at
76ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
86ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
96ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Unless required by applicable law or agreed to in writing, software
116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * express or implied.
146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * See the License for the specific language governing permissions
156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * and limitations under the License.
166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * -------------------------------------------------------------------
176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/*
196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Copyright (c) 2008 The Khronos Group Inc.
206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Permission is hereby granted, free of charge, to any person obtaining
226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * a copy of this software and associated documentation files (the
236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * "Software"), to deal in the Software without restriction, including
246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * without limitation the rights to use, copy, modify, merge, publish,
256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distribute, sublicense, and/or sell copies of the Software, and to
266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * permit persons to whom the Software is furnished to do so, subject
276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * to the following conditions:
286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * The above copyright notice and this permission notice shall be included
296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * in all copies or substantial portions of the Software.
306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @file OMX_Audio.h - OpenMax IL version 1.1.2
426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  The structures needed by Audio components to exchange
436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  parameters and configuration data with the componenmilts.
446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifndef OMX_Audio_h
476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_Audio_h
486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus
506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huberextern "C" {
516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */
526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* Each OMX header must include all required header files to allow the
556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  header to compile without errors.  The includes below are required
566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  for this header file to compile successfully
576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Core.h>
606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @defgroup midi MIDI
626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup audio
636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @defgroup effects Audio effects
666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup audio
676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @defgroup audio OpenMAX IL Audio Domain
706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Structures for OpenMAX IL Audio domain
716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @{
726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enumeration used to define the possible audio codings.
756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  If "OMX_AUDIO_CodingUnused" is selected, the coding selection must
766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  be done in a vendor specific way.  Since this is for an audio
776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  processing element this enum is relevant.  However, for another
786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  type of component other enums would be in this area.
796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_CODINGTYPE {
816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingUnused = 0,  /**< Placeholder value when coding is N/A  */
826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingAutoDetect,  /**< auto detection of audio format */
836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingPCM,         /**< Any variant of PCM coding */
846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingADPCM,       /**< Any variant of ADPCM encoded data */
856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingAMR,         /**< Any variant of AMR encoded data */
866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingGSMFR,       /**< Any variant of GSM fullrate (i.e. GSM610) */
876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingGSMEFR,      /**< Any variant of GSM Enhanced Fullrate encoded data*/
886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingGSMHR,       /**< Any variant of GSM Halfrate encoded data */
896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingPDCFR,       /**< Any variant of PDC Fullrate encoded data */
906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingPDCEFR,      /**< Any variant of PDC Enhanced Fullrate encoded data */
916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingPDCHR,       /**< Any variant of PDC Halfrate encoded data */
926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingTDMAFR,      /**< Any variant of TDMA Fullrate encoded data (TIA/EIA-136-420) */
936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingTDMAEFR,     /**< Any variant of TDMA Enhanced Fullrate encoded data (TIA/EIA-136-410) */
946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingQCELP8,      /**< Any variant of QCELP 8kbps encoded data */
956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingQCELP13,     /**< Any variant of QCELP 13kbps encoded data */
966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingEVRC,        /**< Any variant of EVRC encoded data */
976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingSMV,         /**< Any variant of SMV encoded data */
986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingG711,        /**< Any variant of G.711 encoded data */
996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingG723,        /**< Any variant of G.723 dot 1 encoded data */
1006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingG726,        /**< Any variant of G.726 encoded data */
1016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingG729,        /**< Any variant of G.729 encoded data */
1026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingAAC,         /**< Any variant of AAC encoded data */
1036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingMP3,         /**< Any variant of MP3 encoded data */
1046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingSBC,         /**< Any variant of SBC encoded data */
1056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingVORBIS,      /**< Any variant of VORBIS encoded data */
1066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingWMA,         /**< Any variant of WMA encoded data */
1076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingRA,          /**< Any variant of RA encoded data */
1086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingMIDI,        /**< Any variant of MIDI encoded data */
1096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
1106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
1116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CodingMax = 0x7FFFFFFF
1126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CODINGTYPE;
1136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** The PortDefinition structure is used to define all of the parameters
1166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  necessary for the compliant component to setup an input or an output audio
1176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  path.  If additional information is needed to define the parameters of the
1186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  port (such as frequency), additional structures must be sent such as the
1196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  OMX_AUDIO_PARAM_PCMMODETYPE structure to supply the extra parameters for the port.
1206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PORTDEFINITIONTYPE {
1226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_STRING cMIMEType;            /**< MIME type of data for the port */
1236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_NATIVE_DEVICETYPE pNativeRender; /** < platform specific reference
1246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                               for an output device,
1256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                               otherwise this field is 0 */
1266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bFlagErrorConcealment;  /**< Turns on error concealment if it is
1276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                          supported by the OMX component */
1286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CODINGTYPE eEncoding;  /**< Type of data expected for this
1296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                          port (e.g. PCM, AMR, MP3, etc) */
1306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PORTDEFINITIONTYPE;
1316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**  Port format parameter.  This structure is used to enumerate
1346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  *  the various data input/output format supported by the port.
1356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  */
1366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_PORTFORMATTYPE {
1376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                  /**< size of the structure in bytes */
1386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
1396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;             /**< Indicates which port to set */
1406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nIndex;                 /**< Indicates the enumeration index for the format from 0x0 to N-1 */
1416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this port (e.g. PCM, AMR, MP3, etc) */
1426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_PORTFORMATTYPE;
1436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** PCM mode type  */
1466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_PCMMODETYPE {
1476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeLinear = 0,  /**< Linear PCM encoded data */
1486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeALaw,        /**< A law PCM encoded data (G.711) */
1496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeMULaw,       /**< Mu law PCM encoded data (G.711)  */
1506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
1516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
1526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMModeMax = 0x7FFFFFFF
1536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PCMMODETYPE;
1546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_CHANNELTYPE {
1576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelNone = 0x0,    /**< Unused or empty */
1586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelLF   = 0x1,    /**< Left front */
1596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelRF   = 0x2,    /**< Right front */
1606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelCF   = 0x3,    /**< Center front */
1616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelLS   = 0x4,    /**< Left surround */
1626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelRS   = 0x5,    /**< Right surround */
1636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelLFE  = 0x6,    /**< Low frequency effects */
1646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelCS   = 0x7,    /**< Back surround */
1656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelLR   = 0x8,    /**< Left rear. */
1666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelRR   = 0x9,    /**< Right rear. */
1676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
1686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
1696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelMax  = 0x7FFFFFFF
1706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CHANNELTYPE;
1716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_MAXCHANNELS 16  /**< maximum number distinct audio channels that a buffer may contain */
1736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_MIN_PCMPAYLOAD_MSEC 5 /**< Minimum audio buffer payload size for uncompressed (PCM) audio */
1746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** PCM format description */
1766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_PCMMODETYPE {
1776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */
1786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
1796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;               /**< port that this structure applies to */
1806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;                /**< Number of channels (e.g. 2 for stereo) */
1816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_NUMERICALDATATYPE eNumData;   /**< indicates PCM data as signed or unsigned */
1826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ENDIANTYPE eEndian;           /**< indicates PCM data as little or big endian */
1836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bInterleaved;            /**< True for normal interleaved data; false for
1846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                           non-interleaved data (e.g. block data) */
1856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitPerSample;            /**< Bit per sample */
1866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSamplingRate;            /**< Sampling rate of the source data.  Use 0 for
1876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                           variable or unknown sampling rate. */
1886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_PCMMODETYPE ePCMMode;   /**< PCM mode enumeration */
1896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CHANNELTYPE eChannelMapping[OMX_AUDIO_MAXCHANNELS]; /**< Slot i contains channel defined by eChannelMap[i] */
1906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_PCMMODETYPE;
1926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio channel mode.  This is used by both AAC and MP3, although the names are more appropriate
1956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * for the MP3.  For example, JointStereo for MP3 is CouplingChannels for AAC.
1966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_CHANNELMODETYPE {
1986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeStereo = 0,  /**< 2 channels, the bitrate allocation between those
1996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                          two channels changes accordingly to each channel information */
2006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between
2016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                           2 channels for higher compression gain */
2026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeDual,        /**< 2 mono-channels, each channel is encoded with half
2036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                           the bitrate of the overall bitrate */
2046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeMono,        /**< Mono channel mode */
2056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ChannelModeMax = 0x7FFFFFFF
2086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CHANNELMODETYPE;
2096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_MP3STREAMFORMATTYPE {
2126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatMP1Layer3 = 0, /**< MP3 Audio MPEG 1 Layer 3 Stream format */
2136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatMP2Layer3,     /**< MP3 Audio MPEG 2 Layer 3 Stream format */
2146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatMP2_5Layer3,   /**< MP3 Audio MPEG2.5 Layer 3 Stream format */
2156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3StreamFormatMax = 0x7FFFFFFF
2186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_MP3STREAMFORMATTYPE;
2196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MP3 params */
2216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_MP3TYPE {
2226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                 /**< size of the structure in bytes */
2236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
2246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;            /**< port that this structure applies to */
2256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;             /**< Number of channels */
2266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
2276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        rate or unknown bit rates */
2286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSampleRate;           /**< Sampling rate of the source data.  Use 0 for
2296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        variable or unknown sampling rate. */
2306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAudioBandWidth;       /**< Audio band width (in Hz) to which an encoder should
2316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        limit the audio signal. Use 0 to let encoder decide */
2326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
2336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MP3STREAMFORMATTYPE eFormat;  /**< MP3 stream format */
2346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_MP3TYPE;
2356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_AACSTREAMFORMATTYPE {
2386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMP2ADTS = 0, /**< AAC Audio Data Transport Stream 2 format */
2396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMP4ADTS,     /**< AAC Audio Data Transport Stream 4 format */
2406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMP4LOAS,     /**< AAC Low Overhead Audio Stream format */
2416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMP4LATM,     /**< AAC Low overhead Audio Transport Multiplex */
2426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatADIF,        /**< AAC Audio Data Interchange Format */
2436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMP4FF,       /**< AAC inside MPEG-4/ISO File Format */
2446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatRAW,         /**< AAC Raw Format */
2456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACStreamFormatMax = 0x7FFFFFFF
2486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_AACSTREAMFORMATTYPE;
2496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AAC mode type.  Note that the term profile is used with the MPEG-2
2526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * standard and the term object type and profile is used with MPEG-4 */
2536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_AACPROFILETYPE{
2546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectNull = 0,      /**< Null, not used */
2556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectMain = 1,      /**< AAC Main object */
2566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectLC,            /**< AAC Low Complexity object (AAC profile) */
2576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectSSR,           /**< AAC Scalable Sample Rate object */
2586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectLTP,           /**< AAC Long Term Prediction object */
2596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectHE,            /**< AAC High Efficiency (object type SBR, HE-AAC profile) */
2606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectScalable,      /**< AAC Scalable object */
2616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectERLC = 17,     /**< ER AAC Low Complexity object (Error Resilient AAC-LC) */
2626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectLD = 23,       /**< AAC Low Delay object (Error Resilient) */
2636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectHE_PS = 29,    /**< AAC High Efficiency with Parametric Stereo coding (HE-AAC v2, object type PS) */
2646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_AACObjectMax = 0x7FFFFFFF
2676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_AACPROFILETYPE;
2686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AAC tool usage (for nAACtools in OMX_AUDIO_PARAM_AACPROFILETYPE).
2716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Required for encoder configuration and optional as decoder info output.
2726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * For MP3, OMX_AUDIO_CHANNELMODETYPE is sufficient. */
2736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolNone 0x00000000 /**< no AAC tools allowed (encoder config) or active (decoder info output) */
2746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolMS   0x00000001 /**< MS: Mid/side joint coding tool allowed or active */
2756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolIS   0x00000002 /**< IS: Intensity stereo tool allowed or active */
2766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolTNS  0x00000004 /**< TNS: Temporal Noise Shaping tool allowed or active */
2776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolPNS  0x00000008 /**< PNS: MPEG-4 Perceptual Noise substitution tool allowed or active */
2786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolLTP  0x00000010 /**< LTP: MPEG-4 Long Term Prediction tool allowed or active */
2796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACToolAll  0x7FFFFFFF /**< all AAC tools allowed or active (*/
2806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MPEG-4 AAC error resilience (ER) tool usage (for nAACERtools in OMX_AUDIO_PARAM_AACPROFILETYPE).
2826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Required for ER encoder configuration and optional as decoder info output */
2836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACERNone  0x00000000  /**< no AAC ER tools allowed/used */
2846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACERVCB11 0x00000001  /**< VCB11: Virtual Code Books for AAC section data */
2856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACERRVLC  0x00000002  /**< RVLC: Reversible Variable Length Coding */
2866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACERHCR   0x00000004  /**< HCR: Huffman Codeword Reordering */
2876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_AUDIO_AACERAll   0x7FFFFFFF  /**< all AAC ER tools allowed/used */
2886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AAC params */
2916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_AACPROFILETYPE {
2926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                 /**< Size of this structure, in Bytes */
2936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
2946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;            /**< Port that this structure applies to */
2956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;             /**< Number of channels */
2966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSampleRate;           /**< Sampling rate of the source data.  Use 0 for
2976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        variable or unknown sampling rate. */
2986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
2996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        rate or unknown bit rates */
3006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAudioBandWidth;       /**< Audio band width (in Hz) to which an encoder should
3016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        limit the audio signal. Use 0 to let encoder decide */
3026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nFrameLength;          /**< Frame length (in audio samples per channel) of the codec.
3036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        Can be 1024 or 960 (AAC-LC), 2048 (HE-AAC), 480 or 512 (AAC-LD).
3046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        Use 0 to let encoder decide */
3056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAACtools;             /**< AAC tool usage */
3066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAACERtools;           /**< MPEG-4 AAC error resilience tool usage */
3076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACPROFILETYPE eAACProfile;   /**< AAC profile enumeration */
3086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AACSTREAMFORMATTYPE eAACStreamFormat; /**< AAC stream format enumeration */
3096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
3106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_AACPROFILETYPE;
3116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** VORBIS params */
3146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_VORBISTYPE {
3156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
3166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
3176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
3186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;        /**< Number of channels */
3196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;         /**< Bit rate of the encoded data data.  Use 0 for variable
3206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   rate or unknown bit rates. Encoding is set to the
3216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   bitrate closest to specified  value (in bps) */
3226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMinBitRate;      /**< Sets minimum bitrate (in bps). */
3236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxBitRate;      /**< Sets maximum bitrate (in bps). */
3246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSampleRate;      /**< Sampling rate of the source data.  Use 0 for
3266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   variable or unknown sampling rate. */
3276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAudioBandWidth;  /**< Audio band width (in Hz) to which an encoder should
3286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   limit the audio signal. Use 0 to let encoder decide */
3296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nQuality;		  /**< Sets encoding quality to n, between -1 (low) and 10 (high).
3306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   In the default mode of operation, teh quality level is 3.
3316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   Normal quality range is 0 - 10. */
3326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bManaged;		  /**< Set  bitrate  management  mode. This turns off the
3336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   normal VBR encoding, but allows hard or soft bitrate
3346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   constraints to be enforced by the encoder. This mode can
3356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   be slower, and may also be lower quality. It is
3366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   primarily useful for streaming. */
3376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDownmix;		  /**< Downmix input from stereo to mono (has no effect on
3386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   non-stereo streams). Useful for lower-bitrate encoding. */
3396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_VORBISTYPE;
3406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** WMA Version */
3436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_WMAFORMATTYPE {
3446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */
3456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormat7,          /**< Windows Media Audio format 7 */
3466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormat8,          /**< Windows Media Audio format 8 */
3476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormat9,          /**< Windows Media Audio format 9 */
3486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
3496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAFormatMax = 0x7FFFFFFF
3516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_WMAFORMATTYPE;
3526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** WMA Profile */
3556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_WMAPROFILETYPE {
3566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileUnused = 0,  /**< profile unused or unknown */
3576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileL1,          /**< Windows Media audio version 9 profile L1 */
3586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileL2,          /**< Windows Media audio version 9 profile L2 */
3596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileL3,          /**< Windows Media audio version 9 profile L3 */
3606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
3616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_WMAProfileMax = 0x7FFFFFFF
3636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_WMAPROFILETYPE;
3646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** WMA params */
3676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_WMATYPE {
3686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
3696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
3706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
3716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nChannels;        /**< Number of channels */
3726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;         /**< Bit rate of the input data.  Use 0 for variable
3736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   rate or unknown bit rates */
3746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_WMAFORMATTYPE eFormat; /**< Version of WMA stream / data */
3756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber	OMX_AUDIO_WMAPROFILETYPE eProfile;  /**< Profile of WMA stream / data */
3766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSamplingRate;    /**< Sampling rate of the source data */
3776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nBlockAlign;      /**< is the block alignment, or block size, in bytes of the audio codec */
3786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nEncodeOptions;   /**< WMA Type-specific data */
3796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSuperBlockAlign; /**< WMA Type-specific data */
3806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_WMATYPE;
3816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**
3836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * RealAudio format
3846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_RAFORMATTYPE {
3866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RAFormatUnused = 0, /**< Format unused or unknown */
3876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA8,                /**< RealAudio 8 codec */
3886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA9,                /**< RealAudio 9 codec */
3896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA10_AAC,           /**< MPEG-4 AAC codec for bitrates of more than 128kbps */
3906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA10_CODEC,         /**< RealAudio codec for bitrates less than 128 kbps */
3916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA10_LOSSLESS,      /**< RealAudio Lossless */
3926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA10_MULTICHANNEL,  /**< RealAudio Multichannel */
3936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RA10_VOICE,         /**< RealAudio Voice for bitrates below 15 kbps */
3946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
3956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VIDEO_RAFormatMax = 0x7FFFFFFF
3976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_RAFORMATTYPE;
3986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** RA (Real Audio) params */
4006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_RATYPE {
4016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< Size of this structure, in Bytes */
4026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
4036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port that this structure applies to */
4046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;          /**< Number of channels */
4056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSamplingRate;      /**< is the sampling rate of the source data */
4066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitsPerFrame;      /**< is the value for bits per frame  */
4076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSamplePerFrame;    /**< is the value for samples per frame */
4086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */
4096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nCouplingStartRegion;   /**< is the coupling start region in the stream  */
4106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nNumRegions;        /**< is the number of regions value */
4116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_RAFORMATTYPE eFormat; /**< is the RealAudio audio format */
4126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_RATYPE;
4136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** SBC Allocation Method Type */
4166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_SBCALLOCMETHODTYPE {
4176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_SBCAllocMethodLoudness, /**< Loudness allocation method */
4186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_SBCAllocMethodSNR,      /**< SNR allocation method */
4196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
4206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_SBCAllocMethodVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
4216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_SBCAllocMethodMax = 0x7FFFFFFF
4226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_SBCALLOCMETHODTYPE;
4236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** SBC params */
4266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_SBCTYPE {
4276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
4286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
4296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
4306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;         /**< Number of channels */
4316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;          /**< Bit rate of the input data.  Use 0 for variable
4326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    rate or unknown bit rates */
4336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSampleRate;       /**< Sampling rate of the source data.  Use 0 for
4346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    variable or unknown sampling rate. */
4356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBlocks;           /**< Number of blocks */
4366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSubbands;         /**< Number of subbands */
4376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitPool;          /**< Bitpool value */
4386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnableBitrate;   /**< Use bitrate value instead of bitpool */
4396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */
4406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_SBCALLOCMETHODTYPE eSBCAllocType;   /**< SBC Allocation method type */
4416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_SBCTYPE;
4426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** ADPCM stream format parameters */
4456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_ADPCMTYPE {
4466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
4476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
4486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< port that this structure applies to */
4496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;          /**< Number of channels in the data stream (not
4506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     necessarily the same as the number of channels
4516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     to be rendered. */
4526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitsPerSample;     /**< Number of bits in each sample */
4536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSampleRate;        /**< Sampling rate of the source data.  Use 0 for
4546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    variable or unknown sampling rate. */
4556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_ADPCMTYPE;
4566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** G723 rate */
4596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_G723RATE {
4606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeUnused = 0,  /**< AMRNB Mode unused / unknown */
4616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeLow,         /**< 5300 bps */
4626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeHigh,        /**< 6300 bps */
4636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
4646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
4656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723ModeMax = 0x7FFFFFFF
4666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_G723RATE;
4676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** G723 - Sample rate must be 8 KHz */
4706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_G723TYPE {
4716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
4726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
4736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
4746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
4756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
4766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
4776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
4786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G723RATE eBitRate;  /**< todo: Should this be moved to a config? */
4796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
4806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bPostFilter;         /**< Enable Post Filter */
4816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_G723TYPE;
4826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** ITU G726 (ADPCM) rate */
4856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_G726MODE {
4866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726ModeUnused = 0,  /**< G726 Mode unused / unknown */
4876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726Mode16,          /**< 16 kbps */
4886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726Mode24,          /**< 24 kbps */
4896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726Mode32,          /**< 32 kbps, most common rate, also G721 */
4906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726Mode40,          /**< 40 kbps */
4916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
4926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
4936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G726ModeMax = 0x7FFFFFFF
4946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_G726MODE;
4956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** G.726 stream format parameters - must be at 8KHz */
4986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_G726TYPE {
4996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
5006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
5016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< port that this structure applies to */
5026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;          /**< Number of channels in the data stream (not
5036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     necessarily the same as the number of channels
5046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     to be rendered. */
5056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber     OMX_AUDIO_G726MODE eG726Mode;
5066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_G726TYPE;
5076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** G729 coder type */
5106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_G729TYPE {
5116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729 = 0,           /**< ITU G.729  encoded data */
5126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729A,              /**< ITU G.729 annex A  encoded data */
5136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729B,              /**< ITU G.729 with annex B encoded data */
5146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729AB,             /**< ITU G.729 annexes A and B encoded data */
5156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
5166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729VendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
5176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729Max = 0x7FFFFFFF
5186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_G729TYPE;
5196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** G729 stream format parameters - fixed 6KHz sample rate */
5226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_G729TYPE {
5236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
5246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
5256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
5266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;        /**< Number of channels in the data stream (not
5276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   necessarily the same as the number of channels
5286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   to be rendered. */
5296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;            /**< Enable Discontinuous Transmisssion */
5306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_G729TYPE eBitType;
5316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_G729TYPE;
5326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AMR Frame format */
5356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE {
5366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatConformance = 0,  /**< Frame Format is AMR Conformance
5376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                   (Standard) Format */
5386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatIF1,              /**< Frame Format is AMR Interface
5396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                   Format 1 */
5406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatIF2,              /**< Frame Format is AMR Interface
5416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                   Format 2*/
5426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatFSF,              /**< Frame Format is AMR File Storage
5436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                   Format */
5446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatRTPPayload,       /**< Frame Format is AMR Real-Time
5456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                   Transport Protocol Payload Format */
5466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatITU,              /**< Frame Format is ITU Format (added at Motorola request) */
5476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
5486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
5496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF
5506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_AMRFRAMEFORMATTYPE;
5516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AMR band mode */
5546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_AMRBANDMODETYPE {
5556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeUnused = 0,          /**< AMRNB Mode unused / unknown */
5566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB0,                 /**< AMRNB Mode 0 =  4750 bps */
5576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB1,                 /**< AMRNB Mode 1 =  5150 bps */
5586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB2,                 /**< AMRNB Mode 2 =  5900 bps */
5596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB3,                 /**< AMRNB Mode 3 =  6700 bps */
5606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB4,                 /**< AMRNB Mode 4 =  7400 bps */
5616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB5,                 /**< AMRNB Mode 5 =  7950 bps */
5626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB6,                 /**< AMRNB Mode 6 = 10200 bps */
5636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeNB7,                 /**< AMRNB Mode 7 = 12200 bps */
5646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB0,                 /**< AMRWB Mode 0 =  6600 bps */
5656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB1,                 /**< AMRWB Mode 1 =  8850 bps */
5666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB2,                 /**< AMRWB Mode 2 = 12650 bps */
5676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB3,                 /**< AMRWB Mode 3 = 14250 bps */
5686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB4,                 /**< AMRWB Mode 4 = 15850 bps */
5696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB5,                 /**< AMRWB Mode 5 = 18250 bps */
5706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB6,                 /**< AMRWB Mode 6 = 19850 bps */
5716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB7,                 /**< AMRWB Mode 7 = 23050 bps */
5726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeWB8,                 /**< AMRWB Mode 8 = 23850 bps */
5736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
5746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
5756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF
5766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_AMRBANDMODETYPE;
5776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AMR Discontinuous Transmission mode */
5806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_AMRDTXMODETYPE {
5816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeOff = 0,        /**< AMR Discontinuous Transmission Mode is disabled */
5826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeOnVAD1,         /**< AMR Discontinuous Transmission Mode using
5836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                             Voice Activity Detector 1 (VAD1) is enabled */
5846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeOnVAD2,         /**< AMR Discontinuous Transmission Mode using
5856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                             Voice Activity Detector 2 (VAD2) is enabled */
5866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeOnAuto,         /**< The codec will automatically select between
5876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                             Off, VAD1 or VAD2 modes */
5886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXasEFR,             /**< DTX as EFR instead of AMR standard (3GPP 26.101, frame type =8,9,10) */
5906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
5926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
5936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF
5946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_AMRDTXMODETYPE;
5956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** AMR params */
5986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_AMRTYPE {
5996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                          /**< size of the structure in bytes */
6006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;               /**< OMX specification version information */
6016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;                     /**< port that this structure applies to */
6026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;                      /**< Number of channels */
6036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;                       /**< Bit rate read only field */
6046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */
6056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRDTXMODETYPE  eAMRDTXMode;  /**< AMR DTX Mode enumeration */
6066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
6076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_AMRTYPE;
6086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** GSM_FR (ETSI 06.10, 3GPP 46.010) stream format parameters */
6116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_GSMFRTYPE {
6126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
6136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
6146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
6156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;            /**< Enable Discontinuous Transmisssion */
6166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;   /**< Enable High Pass Filter */
6176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_GSMFRTYPE;
6186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** GSM-HR (ETSI 06.20, 3GPP 46.020) stream format parameters */
6216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_GSMHRTYPE {
6226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
6236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
6246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
6256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;            /**< Enable Discontinuous Transmisssion */
6266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;   /**< Enable High Pass Filter */
6276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_GSMHRTYPE;
6286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** GSM-EFR (ETSI 06.60, 3GPP 46.060) stream format parameters */
6316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_GSMEFRTYPE {
6326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
6336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
6346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
6356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;            /**< Enable Discontinuous Transmisssion */
6366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;   /**< Enable High Pass Filter */
6376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_GSMEFRTYPE;
6386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** TDMA FR (TIA/EIA-136-420, VSELP 7.95kbps coder) stream format parameters */
6416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_TDMAFRTYPE {
6426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
6436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
6446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
6456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
6466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
6476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
6486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
6496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
6506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_TDMAFRTYPE;
6516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** TDMA EFR (TIA/EIA-136-410, ACELP 7.4kbps coder) stream format parameters */
6546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_TDMAEFRTYPE {
6556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
6566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
6576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
6586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
6596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
6606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
6616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
6626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
6636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_TDMAEFRTYPE;
6646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** PDC FR ( RCR-27, VSELP 6.7kbps coder) stream format parameters */
6676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_PDCFRTYPE {
6686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
6696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
6706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
6716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
6726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
6736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
6746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
6756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
6766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_PDCFRTYPE;
6776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** PDC EFR ( RCR-27, ACELP 6.7kbps coder) stream format parameters */
6806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_PDCEFRTYPE {
6816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
6826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
6836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
6846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
6856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
6866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
6876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
6886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
6896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_PDCEFRTYPE;
6906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** PDC HR ( RCR-27, PSI-CELP 3.45kbps coder) stream format parameters */
6926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_PDCHRTYPE {
6936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
6946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
6956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
6966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
6976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
6986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
6996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
7006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
7016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_PDCHRTYPE;
7026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** CDMA Rate types */
7056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_CDMARATETYPE {
7066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateBlank = 0,          /**< CDMA encoded frame is blank */
7076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateFull,               /**< CDMA encoded frame in full rate */
7086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateHalf,               /**< CDMA encoded frame in half rate */
7096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateQuarter,            /**< CDMA encoded frame in quarter rate */
7106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateEighth,             /**< CDMA encoded frame in eighth rate (DTX)*/
7116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateErasure,            /**< CDMA erasure frame */
7126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
7136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
7146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARateMax = 0x7FFFFFFF
7156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CDMARATETYPE;
7166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** QCELP8 (TIA/EIA-96, up to 8kbps coder) stream format parameters */
7196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_QCELP8TYPE {
7206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
7216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
7226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
7236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
7246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
7256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
7266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBitRate;             /**< Bit rate of the input data.  Use 0 for variable
7276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       rate or unknown bit rates */
7286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
7296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMinBitRate;          /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
7306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxBitRate;          /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
7316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_QCELP8TYPE;
7326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** QCELP13 ( CDMA, EIA/TIA-733, 13.3kbps coder) stream format parameters */
7356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_QCELP13TYPE {
7366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
7376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
7386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
7396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
7406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
7416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
7426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
7436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMinBitRate;          /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
7446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxBitRate;          /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
7456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_QCELP13TYPE;
7466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** EVRC ( CDMA, EIA/TIA-127, RCELP up to 8.55kbps coder) stream format parameters */
7496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_EVRCTYPE {
7506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
7516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
7526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
7536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
7546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
7556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
7566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARATETYPE eCDMARate; /**< actual Frame rate */
7576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bRATE_REDUCon;       /**< RATE_REDUCtion is requested for this frame */
7586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMinBitRate;          /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
7596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxBitRate;          /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
7606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable encoder's High Pass Filter */
7616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bNoiseSuppressor;    /**< Enable encoder's noise suppressor pre-processing */
7626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bPostFilter;         /**< Enable decoder's post Filter */
7636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_EVRCTYPE;
7646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** SMV ( up to 8.55kbps coder) stream format parameters */
7676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_SMVTYPE {
7686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
7696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
7706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
7716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
7726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       necessarily the same as the number of channels
7736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to be rendered. */
7746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
7756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bRATE_REDUCon;           /**< RATE_REDUCtion is requested for this frame */
7766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMinBitRate;          /**< minmal rate for the encoder = 1,2,3,4, default = 1 ??*/
7776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxBitRate;          /**< maximal rate for the encoder = 1,2,3,4, default = 4 ??*/
7786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bHiPassFilter;       /**< Enable encoder's High Pass Filter ??*/
7796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bNoiseSuppressor;    /**< Enable encoder's noise suppressor pre-processing */
7806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bPostFilter;         /**< Enable decoder's post Filter ??*/
7816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_SMVTYPE;
7826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI Format
7856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
7866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_MIDIFORMATTYPE
7886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{
7896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatUnknown = 0, /**< MIDI Format unknown or don't care */
7906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatSMF0,        /**< Standard MIDI File Type 0 */
7916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatSMF1,        /**< Standard MIDI File Type 1 */
7926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatSMF2,        /**< Standard MIDI File Type 2 */
7936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatSPMIDI,      /**< SP-MIDI */
7946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatXMF0,        /**< eXtensible Music Format type 0 */
7956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatXMF1,        /**< eXtensible Music Format type 1 */
7966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatMobileXMF,   /**< Mobile XMF (eXtensible Music Format type 2) */
7976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
7986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
7996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFormatMax = 0x7FFFFFFF
8006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_MIDIFORMATTYPE;
8016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI params
8046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_MIDITYPE {
8076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                 /**< size of the structure in bytes */
8086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
8096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;            /**< port that this structure applies to */
8106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nFileSize;             /**< size of the MIDI file in bytes, where the entire
8116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        MIDI file passed in, otherwise if 0x0, the MIDI data
8126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        is merged and streamed (instead of passed as an
8136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        entire MIDI file) */
8146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic
8156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        voices. A value of zero indicates that the default
8166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        polyphony of the device is used  */
8176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLoadDefaultSound;    /**< Whether to load default sound
8186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                        bank at initialization */
8196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */
8206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_MIDITYPE;
8216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Type of the MIDI sound bank
8246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_MIDISOUNDBANKTYPE {
8276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankUnused = 0,           /**< unused/unknown soundbank type */
8286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankDLS1,                 /**< DLS version 1 */
8296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankDLS2,                 /**< DLS version 2 */
8306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankMobileDLSBase,        /**< Mobile DLS, using the base functionality */
8316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankMobileDLSPlusOptions, /**< Mobile DLS, using the specification-defined optional feature set */
8326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
8336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
8346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISoundBankMax = 0x7FFFFFFF
8356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_MIDISOUNDBANKTYPE;
8366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank
8396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE {
8426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutUnused = 0,   /**< unused/unknown soundbank type */
8436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutGM,           /**< GS layout (based on bank MSB 0x00) */
8446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutGM2,          /**< General MIDI 2 layout (using MSB 0x78/0x79, LSB 0x00) */
8456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutUser,         /**< Does not conform to any bank numbering standards */
8466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
8476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
8486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_MIDISoundBankLayoutMax = 0x7FFFFFFF
8496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE;
8506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI params to load/unload user soundbank
8536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE {
8566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
8576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
8586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
8596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDLSIndex;        /**< DLS file index to be loaded */
8606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDLSSize;         /**< Size in bytes */
8616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_PTR pDLSData;         /**< Pointer to DLS file data */
8626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISOUNDBANKTYPE eMidiSoundBank;   /**< Midi sound bank type enumeration */
8636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE eMidiSoundBankLayout; /**< Midi sound bank layout enumeration */
8646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE;
8656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Structure for Live MIDI events and MIP messages.
8686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.)
8696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE {
8726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
8736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
8746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
8756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMidiEventSize;   /**< Size of immediate MIDI events or MIP message in bytes  */
8766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U8 nMidiEvents[1];    /**< MIDI event array to be rendered immediately, or an
8776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   array for the MIP message buffer, where the size is
8786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   indicated by nMidiEventSize */
8796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE;
8806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI sound bank/ program pair in a given channel
8836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE {
8866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
8876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
8886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port that this structure applies to */
8896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannel;           /**< Valid channel values range from 1 to 16 */
8906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nIDProgram;         /**< Valid program ID range is 1 to 128 */
8916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nIDSoundBank;       /**< Sound bank ID */
8926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks
8936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     by index if multiple banks are present */
8946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE;
8956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI control
8986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
8996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
9006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDICONTROLTYPE {
9016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
9026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
9036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
9046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10
9056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       format based on JAVA MMAPI (JSR-135) requirement */
9066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sPlayBackRate;       /**< Relative playback rate, stored as Q14.17 fixed-point
9076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       number based on JSR-135 requirement */
9086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sTempo ;             /**< Tempo in beats per minute (BPM), stored as Q22.10
9096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       fixed-point number based on JSR-135 requirement */
9106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic
9116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       voices. A value of zero indicates that the default
9126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       polyphony of the device is used  */
9136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nNumRepeat;           /**< Number of times to repeat playback */
9146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nStopTime;            /**< Time in milliseconds to indicate when playback
9156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       will stop automatically.  Set to zero if not used */
9166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nChannelMuteMask;     /**< 16 bit mask for channel mute status */
9176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nChannelSoloMask;     /**< 16 bit mask for channel solo status */
9186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTrack0031MuteMask;   /**< 32 bit mask for track mute status. Note: This is for tracks 0-31 */
9196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTrack3263MuteMask;   /**< 32 bit mask for track mute status. Note: This is for tracks 32-63 */
9206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTrack0031SoloMask;   /**< 32 bit mask for track solo status. Note: This is for tracks 0-31 */
9216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTrack3263SoloMask;   /**< 32 bit mask for track solo status. Note: This is for tracks 32-63 */
9226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MIDICONTROLTYPE;
9246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI Playback States
9276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
9286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
9296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_MIDIPLAYBACKSTATETYPE {
9306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateUnknown = 0,      /**< Unknown state or state does not map to
9316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  													other defined states */
9326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateClosedEngaged,    /**< No MIDI resource is currently open.
9336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    The MIDI engine is currently processing
9346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    MIDI events. */
9356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateParsing,          /**< A MIDI resource is open and is being
9366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    primed. The MIDI engine is currently
9376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    processing MIDI events. */
9386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateOpenEngaged,      /**< A MIDI resource is open and primed but
9396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    not playing. The MIDI engine is currently
9406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    processing MIDI events. The transition to
9416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    this state is only possible from the
9426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    OMX_AUDIO_MIDIPlayBackStatePlaying state,
9436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    when the 'playback head' reaches the end
9446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    of media data or the playback stops due
9456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    to stop time set.*/
9466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStatePlaying,          /**< A MIDI resource is open and currently
9476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    playing. The MIDI engine is currently
9486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    processing MIDI events.*/
9496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStatePlayingPartially, /**< Best-effort playback due to SP-MIDI/DLS
9506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    resource constraints */
9516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStatePlayingSilently,  /**< Due to system resource constraints and
9526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    SP-MIDI content constraints, there is
9536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    no audible MIDI content during playback
9546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    currently. The situation may change if
9556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                                    resources are freed later.*/
9566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
9576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
9586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber  OMX_AUDIO_MIDIPlayBackStateMax = 0x7FFFFFFF
9596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_MIDIPLAYBACKSTATETYPE;
9606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI status
9636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
9646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
9656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDISTATUSTYPE {
9666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
9676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
9686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< port that this structure applies to */
9696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U16 nNumTracks;         /**< Number of MIDI tracks in the file, read only field.
9706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     NOTE: May not return a meaningful value until the entire
9716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     file is parsed and buffered.  */
9726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDuration;          /**< The length of the currently open MIDI resource
9736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     in milliseconds. NOTE: May not return a meaningful value
9746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     until the entire file is parsed and buffered.  */
9756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPosition;          /**< Current Position of the MIDI resource being played
9766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     in milliseconds */
9776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bVibra;            /**< Does Vibra track exist? NOTE: May not return a meaningful
9786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     value until the entire file is parsed and buffered. */
9796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nNumMetaEvents;     /**< Total number of MIDI Meta Events in the currently
9806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     open MIDI resource. NOTE: May not return a meaningful value
9816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     until the entire file is parsed and buffered.  */
9826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nNumActiveVoices;   /**< Number of active voices in the currently playing
9836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     MIDI resource. NOTE: May not return a meaningful value until
9846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     the entire file is parsed and buffered. */
9856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_MIDIPLAYBACKSTATETYPE eMIDIPlayBackState;  /**< MIDI playback state enumeration, read only field */
9866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MIDISTATUSTYPE;
9876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI Meta Event structure one per Meta Event.
9906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  MIDI Meta Events are like audio metadata, except that they are interspersed
9916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  with the MIDI content throughout the file and are not localized in the header.
9926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  As such, it is necessary to retrieve information about these Meta Events from
9936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  the engine, as it encounters these Meta Events within the MIDI content.
9946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  For example, SMF files can have up to 14 types of MIDI Meta Events (copyright,
9956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  author, default tempo, etc.) scattered throughout the file.
9966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  @ingroup midi
9976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
9986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{
9996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
10006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
10016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
10026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nIndex;           /**< Index of Meta Event */
10036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U8 nMetaEventType;    /**< Meta Event Type, 7bits (i.e. 0 - 127) */
10046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */
10056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTrack;           /**< track number for the meta event */
10066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPosition;        /**< Position of the meta-event in milliseconds */
10076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE;
10086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** MIDI Meta Event Data structure - one per Meta Event.
10116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup midi
10126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
10136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{
10146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< size of the structure in bytes */
10156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
10166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< port that this structure applies to */
10176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nIndex;           /**< Index of Meta Event */
10186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */
10196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U8 nData[1];          /**< array of one or more bytes of meta data
10206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                   as indicated by the nMetaEventSize field */
10216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE;
10226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio Volume adjustment for a port */
10256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_VOLUMETYPE {
10266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
10276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
10286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port index indicating which port to
10296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set.  Select the input port to set
10306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     just that port's volume.  Select the
10316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     output port to adjust the master
10326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume. */
10336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100)
10346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     or logarithmic scale (mB) */
10356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sVolume;           /**< Volume linear setting in the 0..100 range, OR
10366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Volume logarithmic setting for this port.  The values
10376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     for volume are in mB (millibels = 1/100 dB) relative
10386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     to a gain of 1 (e.g. the output is the same as the
10396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     input level).  Values are in mB from nMax
10406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     (maximum volume) to nMin mB (typically negative).
10416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Since the volume is "voltage"
10426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     and not a "power", it takes a setting of
10436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     -600 mB to decrease the volume by 1/2.  If
10446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     a component cannot accurately set the
10456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume to the requested value, it must
10466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set the volume to the closest value BELOW
10476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     the requested value.  When getting the
10486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume setting, the current actual volume
10496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     must be returned. */
10506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_VOLUMETYPE;
10516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio Volume adjustment for a channel */
10546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE {
10556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
10566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
10576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port index indicating which port to
10586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set.  Select the input port to set
10596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     just that port's volume.  Select the
10606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     output port to adjust the master
10616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume. */
10626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannel;           /**< channel to select from 0 to N-1,
10636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     using OMX_ALL to apply volume settings
10646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     to all channels */
10656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100) or
10666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     logarithmic scale (mB) */
10676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sVolume;           /**< Volume linear setting in the 0..100 range, OR
10686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Volume logarithmic setting for this port.
10696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     The values for volume are in mB
10706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     (millibels = 1/100 dB) relative to a gain
10716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     of 1 (e.g. the output is the same as the
10726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     input level).  Values are in mB from nMax
10736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     (maximum volume) to nMin mB (typically negative).
10746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Since the volume is "voltage"
10756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     and not a "power", it takes a setting of
10766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     -600 mB to decrease the volume by 1/2.  If
10776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     a component cannot accurately set the
10786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume to the requested value, it must
10796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set the volume to the closest value BELOW
10806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     the requested value.  When getting the
10816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     volume setting, the current actual volume
10826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     must be returned. */
10836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bIsMIDI;           /**< TRUE if nChannel refers to a MIDI channel,
10846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     FALSE otherwise */
10856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE;
10866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
10886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio balance setting */
10896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_BALANCETYPE {
10906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
10916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
10926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port index indicating which port to
10936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set.  Select the input port to set
10946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     just that port's balance.  Select the
10956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     output port to adjust the master
10966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     balance. */
10976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nBalance;           /**< balance setting for this port
10986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     (-100 to 100, where -100 indicates
10996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     all left, and no right */
11006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_BALANCETYPE;
11016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio Port mute */
11046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_MUTETYPE {
11056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
11066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
11076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port index indicating which port to
11086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     set.  Select the input port to set
11096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     just that port's mute.  Select the
11106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     output port to adjust the master
11116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     mute. */
11126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bMute;             /**< Mute setting for this port */
11136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_MUTETYPE;
11146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Audio Channel mute */
11176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_CHANNELMUTETYPE {
11186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< size of the structure in bytes */
11196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
11206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< port that this structure applies to */
11216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nChannel;           /**< channel to select from 0 to N-1,
11226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     using OMX_ALL to apply mute settings
11236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     to all channels */
11246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bMute;             /**< Mute setting for this channel */
11256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bIsMIDI;           /**< TRUE if nChannel refers to a MIDI channel,
11266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     FALSE otherwise */
11276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_CHANNELMUTETYPE;
11286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enable / Disable for loudness control, which boosts bass and to a
11326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  smaller extent high end frequencies to compensate for hearing
11336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  ability at the extreme ends of the audio spectrum
11346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
11356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_LOUDNESSTYPE {
11366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
11376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
11386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
11396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLoudness;        /**< Enable/disable for loudness */
11406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_LOUDNESSTYPE;
11416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enable / Disable for bass, which controls low frequencies
11446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
11456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_BASSTYPE {
11466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
11476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
11486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
11496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;          /**< Enable/disable for bass control */
11506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nBass;             /**< bass setting for the port, as a
11516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    continuous value from -100 to 100
11526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    (0 means no change in bass level)*/
11536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_BASSTYPE;
11546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enable / Disable for treble, which controls high frequencies tones
11576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
11586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_TREBLETYPE {
11596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
11606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
11616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
11626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;          /**< Enable/disable for treble control */
11636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32  nTreble;          /**< treble setting for the port, as a
11646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    continuous value from -100 to 100
11656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    (0 means no change in treble level) */
11666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_TREBLETYPE;
11676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** An equalizer is typically used for two reasons: to compensate for an
11706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  sub-optimal frequency response of a system to make it sound more natural
11716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  or to create intentionally some unnatural coloring to the sound to create
11726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  an effect.
11736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  @ingroup effects
11746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
11756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_EQUALIZERTYPE {
11766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
11776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
11786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
11796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;          /**< Enable/disable for equalizer */
11806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sBandIndex;       /**< Band number to be set.  Upper Limit is
11816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    N-1, where N is the number of bands, lower limit is 0 */
11826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sCenterFreq;      /**< Center frequecies in Hz.  This is a
11836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    read only element and is used to determine
11846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    the lower, center and upper frequency of
11856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    this band.  */
11866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sBandLevel;       /**< band level in millibels */
11876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_EQUALIZERTYPE;
11886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
11906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Stereo widening mode type
11916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
11926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
11936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_STEREOWIDENINGTYPE {
11946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_StereoWideningHeadphones,    /**< Stereo widening for loudspeakers */
11956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_StereoWideningLoudspeakers,  /**< Stereo widening for closely spaced loudspeakers */
11966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
11976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_StereoWideningVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
11986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_StereoWideningMax = 0x7FFFFFFF
11996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_STEREOWIDENINGTYPE;
12006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Control for stereo widening, which is a special 2-channel
12036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  case of the audio virtualizer effect. For example, for 5.1-channel
12046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  output, it translates to virtual surround sound.
12056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
12066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
12076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE {
12086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
12096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
12106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
12116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;          /**< Enable/disable for stereo widening control */
12126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_STEREOWIDENINGTYPE eWideningType; /**< Stereo widening algorithm type */
12136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32  nStereoWidening;  /**< stereo widening setting for the port,
12146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    as a continuous value from 0 to 100  */
12156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE;
12166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** The chorus effect (or ``choralizer'') is any signal processor which makes
12196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  one sound source (such as a voice) sound like many such sources singing
12206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  (or playing) in unison. Since performance in unison is never exact, chorus
12216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  effects simulate this by making independently modified copies of the input
12226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  signal. Modifications may include (1) delay, (2) frequency shift, and
12236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  (3) amplitude modulation.
12246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
12256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
12266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_CHORUSTYPE {
12276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
12286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
12296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
12306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;          /**< Enable/disable for chorus */
12316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sDelay;           /**< average delay in milliseconds */
12326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sModulationRate;  /**< rate of modulation in millihertz */
12336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nModulationDepth;  /**< depth of modulation as a percentage of
12346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                    delay (i.e. 0 to 100) */
12356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 nFeedback;        /**< Feedback from chorus output to input in percentage */
12366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_CHORUSTYPE;
12376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Reverberation is part of the reflected sound that follows the early
12406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  reflections. In a typical room, this consists of a dense succession of
12416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  echoes whose energy decays exponentially. The reverberation effect structure
12426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  as defined here includes both (early) reflections as well as (late) reverberations.
12436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
12446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
12456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_REVERBERATIONTYPE {
12466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;                /**< size of the structure in bytes */
12476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
12486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;           /**< port that this structure applies to */
12496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;             /**< Enable/disable for reverberation control */
12506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sRoomLevel;          /**< Intensity level for the whole room effect
12516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       (i.e. both early reflections and late
12526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       reverberation) in millibels */
12536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sRoomHighFreqLevel;  /**< Attenuation at high frequencies
12546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       relative to the intensity at low
12556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       frequencies in millibels */
12566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sReflectionsLevel;   /**< Intensity level of early reflections
12576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       (relative to room value), in millibels */
12586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sReflectionsDelay;   /**< Delay time of the first reflection relative
12596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to the direct path, in milliseconds */
12606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BS32 sReverbLevel;        /**< Intensity level of late reverberation
12616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       relative to room level, in millibels */
12626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sReverbDelay;        /**< Time delay from the first early reflection
12636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to the beginning of the late reverberation
12646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       section, in milliseconds */
12656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sDecayTime;          /**< Late reverberation decay time at low
12666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       frequencies, in milliseconds */
12676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative
12686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       to low frequency decay time in percent  */
12696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDensity;             /**< Modal density in the late reverberation decay,
12706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       in percent (i.e. 0 - 100) */
12716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDiffusion;           /**< Echo density in the late reverberation decay,
12726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       in percent (i.e. 0 - 100) */
12736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BU32 sReferenceHighFreq;  /**< Reference high frequency in Hertz. This is
12746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       the frequency used as the reference for all
12756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                       the high-frequency settings above */
12766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_REVERBERATIONTYPE;
12786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Possible settings for the Echo Cancelation structure to use
12816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
12826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
12836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_AUDIO_ECHOCANTYPE {
12846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanOff = 0,    /**< Echo Cancellation is disabled */
12856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanNormal,     /**< Echo Cancellation normal operation -
12866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     echo from plastics and face */
12876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanHFree,      /**< Echo Cancellation optimized for
12886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Hands Free operation */
12896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanCarKit,    /**< Echo Cancellation optimized for
12906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                                     Car Kit (longer echo) */
12916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
12926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
12936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber   OMX_AUDIO_EchoCanMax = 0x7FFFFFFF
12946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_ECHOCANTYPE;
12956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
12976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enable / Disable for echo cancelation, which removes undesired echo's
12986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  from the audio
12996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
13006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
13016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE {
13026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
13036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
13046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
13056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_AUDIO_ECHOCANTYPE eEchoCancelation; /**< Echo cancelation settings */
13066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE;
13076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
13086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
13096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** Enable / Disable for noise reduction, which undesired noise from
13106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * the audio
13116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup effects
13126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
13136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE {
13146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;             /**< size of the structure in bytes */
13156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
13166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;        /**< port that this structure applies to */
13176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bNoiseReduction;  /**< Enable/disable for noise reduction */
13186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE;
13196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
13206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @} */
13216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
13226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus
13236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber}
13246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */
13256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
13266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif
13276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* File EOF */
13286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1329