120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Copyright (c) 2008 The Khronos Group Inc. 320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Permission is hereby granted, free of charge, to any person obtaining 520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * a copy of this software and associated documentation files (the 620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * "Software"), to deal in the Software without restriction, including 720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * without limitation the rights to use, copy, modify, merge, publish, 820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distribute, sublicense, and/or sell copies of the Software, and to 920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * permit persons to whom the Software is furnished to do so, subject 1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * to the following conditions: 1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The above copyright notice and this permission notice shall be included 1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * in all copies or substantial portions of the Software. 1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 2220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @file OMX_Audio.h - OpenMax IL version 1.1.2 2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The structures needed by Audio components to exchange 2620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * parameters and configuration data with the componenmilts. 2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifndef OMX_Audio_h 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_Audio_h 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* Each OMX header must include all required header files to allow the 3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * header to compile without errors. The includes below are required 3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * for this header file to compile successfully 4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_Core.h> 4320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @defgroup midi MIDI 4520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup audio 4620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 4720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @defgroup effects Audio effects 4920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup audio 5020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 5120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @defgroup audio OpenMAX IL Audio Domain 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Structures for OpenMAX IL Audio domain 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @{ 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 5620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enumeration used to define the possible audio codings. 5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * If "OMX_AUDIO_CodingUnused" is selected, the coding selection must 5920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * be done in a vendor specific way. Since this is for an audio 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * processing element this enum is relevant. However, for another 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * type of component other enums would be in this area. 6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_CODINGTYPE { 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingUnused = 0, /**< Placeholder value when coding is N/A */ 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingAutoDetect, /**< auto detection of audio format */ 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingPCM, /**< Any variant of PCM coding */ 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingADPCM, /**< Any variant of ADPCM encoded data */ 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingAMR, /**< Any variant of AMR encoded data */ 6920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingGSMFR, /**< Any variant of GSM fullrate (i.e. GSM610) */ 7020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingGSMEFR, /**< Any variant of GSM Enhanced Fullrate encoded data*/ 7120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingGSMHR, /**< Any variant of GSM Halfrate encoded data */ 7220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingPDCFR, /**< Any variant of PDC Fullrate encoded data */ 7320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingPDCEFR, /**< Any variant of PDC Enhanced Fullrate encoded data */ 7420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingPDCHR, /**< Any variant of PDC Halfrate encoded data */ 7520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingTDMAFR, /**< Any variant of TDMA Fullrate encoded data (TIA/EIA-136-420) */ 7620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingTDMAEFR, /**< Any variant of TDMA Enhanced Fullrate encoded data (TIA/EIA-136-410) */ 7720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingQCELP8, /**< Any variant of QCELP 8kbps encoded data */ 7820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingQCELP13, /**< Any variant of QCELP 13kbps encoded data */ 7920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingEVRC, /**< Any variant of EVRC encoded data */ 8020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingSMV, /**< Any variant of SMV encoded data */ 8120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingG711, /**< Any variant of G.711 encoded data */ 8220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingG723, /**< Any variant of G.723 dot 1 encoded data */ 8320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingG726, /**< Any variant of G.726 encoded data */ 8420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingG729, /**< Any variant of G.729 encoded data */ 8520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingAAC, /**< Any variant of AAC encoded data */ 8620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingMP3, /**< Any variant of MP3 encoded data */ 8720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingSBC, /**< Any variant of SBC encoded data */ 8820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingVORBIS, /**< Any variant of VORBIS encoded data */ 8920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingWMA, /**< Any variant of WMA encoded data */ 9020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingRA, /**< Any variant of RA encoded data */ 9120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingMIDI, /**< Any variant of MIDI encoded data */ 9220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 9320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 9420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CodingMax = 0x7FFFFFFF 9520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CODINGTYPE; 9620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** The PortDefinition structure is used to define all of the parameters 9920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * necessary for the compliant component to setup an input or an output audio 10020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * path. If additional information is needed to define the parameters of the 10120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * port (such as frequency), additional structures must be sent such as the 10220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * OMX_AUDIO_PARAM_PCMMODETYPE structure to supply the extra parameters for the port. 10320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 10420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PORTDEFINITIONTYPE { 10520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_STRING cMIMEType; /**< MIME type of data for the port */ 10620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_NATIVE_DEVICETYPE pNativeRender; /** < platform specific reference 10720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang for an output device, 10820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang otherwise this field is 0 */ 10920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bFlagErrorConcealment; /**< Turns on error concealment if it is 11020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang supported by the OMX component */ 11120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this 11220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang port (e.g. PCM, AMR, MP3, etc) */ 11320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PORTDEFINITIONTYPE; 11420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 11520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 11620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Port format parameter. This structure is used to enumerate 11720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the various data input/output format supported by the port. 11820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 11920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_PORTFORMATTYPE { 12020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 12120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 12220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Indicates which port to set */ 12320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */ 12420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this port (e.g. PCM, AMR, MP3, etc) */ 12520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_PORTFORMATTYPE; 12620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** PCM mode type */ 12920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_PCMMODETYPE { 13020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeLinear = 0, /**< Linear PCM encoded data */ 13120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeALaw, /**< A law PCM encoded data (G.711) */ 13220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeMULaw, /**< Mu law PCM encoded data (G.711) */ 13320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 13420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 13520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMModeMax = 0x7FFFFFFF 13620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PCMMODETYPE; 13720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 13820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 13920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_CHANNELTYPE { 14020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelNone = 0x0, /**< Unused or empty */ 14120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelLF = 0x1, /**< Left front */ 14220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelRF = 0x2, /**< Right front */ 14320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelCF = 0x3, /**< Center front */ 14420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelLS = 0x4, /**< Left surround */ 14520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelRS = 0x5, /**< Right surround */ 14620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelLFE = 0x6, /**< Low frequency effects */ 14720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelCS = 0x7, /**< Back surround */ 14820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelLR = 0x8, /**< Left rear. */ 14920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelRR = 0x9, /**< Right rear. */ 15020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 15120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 15220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelMax = 0x7FFFFFFF 15320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CHANNELTYPE; 15420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 15520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_MAXCHANNELS 16 /**< maximum number distinct audio channels that a buffer may contain */ 15620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_MIN_PCMPAYLOAD_MSEC 5 /**< Minimum audio buffer payload size for uncompressed (PCM) audio */ 15720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 15820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** PCM format description */ 15920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_PCMMODETYPE { 16020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< Size of this structure, in Bytes */ 16120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 16220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 16320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels (e.g. 2 for stereo) */ 16420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_NUMERICALDATATYPE eNumData; /**< indicates PCM data as signed or unsigned */ 16520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ENDIANTYPE eEndian; /**< indicates PCM data as little or big endian */ 16620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bInterleaved; /**< True for normal interleaved data; false for 16720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang non-interleaved data (e.g. block data) */ 16820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitPerSample; /**< Bit per sample */ 16920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSamplingRate; /**< Sampling rate of the source data. Use 0 for 17020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 17120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PCMMODETYPE ePCMMode; /**< PCM mode enumeration */ 17220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CHANNELTYPE eChannelMapping[OMX_AUDIO_MAXCHANNELS]; /**< Slot i contains channel defined by eChannelMap[i] */ 17320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 17420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_PCMMODETYPE; 17520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 17620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 17720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio channel mode. This is used by both AAC and MP3, although the names are more appropriate 17820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * for the MP3. For example, JointStereo for MP3 is CouplingChannels for AAC. 17920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 18020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_CHANNELMODETYPE { 18120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeStereo = 0, /**< 2 channels, the bitrate allocation between those 18220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang two channels changes accordingly to each channel information */ 18320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between 18420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2 channels for higher compression gain */ 18520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeDual, /**< 2 mono-channels, each channel is encoded with half 18620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the bitrate of the overall bitrate */ 18720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeMono, /**< Mono channel mode */ 18820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 18920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 19020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ChannelModeMax = 0x7FFFFFFF 19120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CHANNELMODETYPE; 19220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 19320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 19420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_MP3STREAMFORMATTYPE { 19520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatMP1Layer3 = 0, /**< MP3 Audio MPEG 1 Layer 3 Stream format */ 19620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatMP2Layer3, /**< MP3 Audio MPEG 2 Layer 3 Stream format */ 19720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatMP2_5Layer3, /**< MP3 Audio MPEG2.5 Layer 3 Stream format */ 19820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 19920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 20020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3StreamFormatMax = 0x7FFFFFFF 20120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_MP3STREAMFORMATTYPE; 20220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 20320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MP3 params */ 20420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_MP3TYPE { 20520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 20620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 20720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 20820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 20920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable 21020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates */ 21120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for 21220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 21320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should 21420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang limit the audio signal. Use 0 to let encoder decide */ 21520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ 21620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MP3STREAMFORMATTYPE eFormat; /**< MP3 stream format */ 21720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_MP3TYPE; 21820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 21920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 22020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_AACSTREAMFORMATTYPE { 22120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMP2ADTS = 0, /**< AAC Audio Data Transport Stream 2 format */ 22220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMP4ADTS, /**< AAC Audio Data Transport Stream 4 format */ 22320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMP4LOAS, /**< AAC Low Overhead Audio Stream format */ 22420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMP4LATM, /**< AAC Low overhead Audio Transport Multiplex */ 22520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatADIF, /**< AAC Audio Data Interchange Format */ 22620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMP4FF, /**< AAC inside MPEG-4/ISO File Format */ 22720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatRAW, /**< AAC Raw Format */ 22820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 22920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 23020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACStreamFormatMax = 0x7FFFFFFF 23120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_AACSTREAMFORMATTYPE; 23220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 23320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 23420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AAC mode type. Note that the term profile is used with the MPEG-2 23520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * standard and the term object type and profile is used with MPEG-4 */ 23620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_AACPROFILETYPE{ 23720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectNull = 0, /**< Null, not used */ 23820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectMain = 1, /**< AAC Main object */ 23920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectLC, /**< AAC Low Complexity object (AAC profile) */ 24020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectSSR, /**< AAC Scalable Sample Rate object */ 24120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectLTP, /**< AAC Long Term Prediction object */ 24220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectHE, /**< AAC High Efficiency (object type SBR, HE-AAC profile) */ 24320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectScalable, /**< AAC Scalable object */ 24420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectERLC = 17, /**< ER AAC Low Complexity object (Error Resilient AAC-LC) */ 24520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectLD = 23, /**< AAC Low Delay object (Error Resilient) */ 24620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectHE_PS = 29, /**< AAC High Efficiency with Parametric Stereo coding (HE-AAC v2, object type PS) */ 24720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 24820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 24920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACObjectMax = 0x7FFFFFFF 25020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_AACPROFILETYPE; 25120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 25220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 25320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AAC tool usage (for nAACtools in OMX_AUDIO_PARAM_AACPROFILETYPE). 25420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Required for encoder configuration and optional as decoder info output. 25520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * For MP3, OMX_AUDIO_CHANNELMODETYPE is sufficient. */ 25620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolNone 0x00000000 /**< no AAC tools allowed (encoder config) or active (decoder info output) */ 25720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolMS 0x00000001 /**< MS: Mid/side joint coding tool allowed or active */ 25820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolIS 0x00000002 /**< IS: Intensity stereo tool allowed or active */ 25920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolTNS 0x00000004 /**< TNS: Temporal Noise Shaping tool allowed or active */ 26020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolPNS 0x00000008 /**< PNS: MPEG-4 Perceptual Noise substitution tool allowed or active */ 26120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolLTP 0x00000010 /**< LTP: MPEG-4 Long Term Prediction tool allowed or active */ 26220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACToolAll 0x7FFFFFFF /**< all AAC tools allowed or active (*/ 26320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 26420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MPEG-4 AAC error resilience (ER) tool usage (for nAACERtools in OMX_AUDIO_PARAM_AACPROFILETYPE). 26520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Required for ER encoder configuration and optional as decoder info output */ 26620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACERNone 0x00000000 /**< no AAC ER tools allowed/used */ 26720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACERVCB11 0x00000001 /**< VCB11: Virtual Code Books for AAC section data */ 26820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACERRVLC 0x00000002 /**< RVLC: Reversible Variable Length Coding */ 26920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACERHCR 0x00000004 /**< HCR: Huffman Codeword Reordering */ 27020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_AUDIO_AACERAll 0x7FFFFFFF /**< all AAC ER tools allowed/used */ 27120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 27220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 27320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AAC params */ 27420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_AACPROFILETYPE { 27520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< Size of this structure, in Bytes */ 27620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 27720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port that this structure applies to */ 27820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 27920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for 28020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 28120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable 28220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates */ 28320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should 28420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang limit the audio signal. Use 0 to let encoder decide */ 28520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFrameLength; /**< Frame length (in audio samples per channel) of the codec. 28620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Can be 1024 or 960 (AAC-LC), 2048 (HE-AAC), 480 or 512 (AAC-LD). 28720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Use 0 to let encoder decide */ 28820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nAACtools; /**< AAC tool usage */ 28920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nAACERtools; /**< MPEG-4 AAC error resilience tool usage */ 29020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACPROFILETYPE eAACProfile; /**< AAC profile enumeration */ 29120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AACSTREAMFORMATTYPE eAACStreamFormat; /**< AAC stream format enumeration */ 29220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ 29320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_AACPROFILETYPE; 29420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 29520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 29620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** VORBIS params */ 29720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_VORBISTYPE { 29820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 29920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 30020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 30120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 30220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the encoded data data. Use 0 for variable 30320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates. Encoding is set to the 30420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang bitrate closest to specified value (in bps) */ 30520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMinBitRate; /**< Sets minimum bitrate (in bps). */ 30620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxBitRate; /**< Sets maximum bitrate (in bps). */ 30720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 30820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for 30920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 31020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should 31120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang limit the audio signal. Use 0 to let encoder decide */ 31220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_S32 nQuality; /**< Sets encoding quality to n, between -1 (low) and 10 (high). 31320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang In the default mode of operation, teh quality level is 3. 31420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Normal quality range is 0 - 10. */ 31520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bManaged; /**< Set bitrate management mode. This turns off the 31620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang normal VBR encoding, but allows hard or soft bitrate 31720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang constraints to be enforced by the encoder. This mode can 31820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang be slower, and may also be lower quality. It is 31920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang primarily useful for streaming. */ 32020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDownmix; /**< Downmix input from stereo to mono (has no effect on 32120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang non-stereo streams). Useful for lower-bitrate encoding. */ 32220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_VORBISTYPE; 32320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** WMA Version */ 32620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_WMAFORMATTYPE { 32720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */ 32820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormat7, /**< Windows Media Audio format 7 */ 32920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormat8, /**< Windows Media Audio format 8 */ 33020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormat9, /**< Windows Media Audio format 9 */ 33120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 33220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 33320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFormatMax = 0x7FFFFFFF 33420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_WMAFORMATTYPE; 33520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 33620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 33720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** WMA Profile */ 33820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_WMAPROFILETYPE { 33920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileUnused = 0, /**< profile unused or unknown */ 34020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileL1, /**< Windows Media audio version 9 profile L1 */ 34120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileL2, /**< Windows Media audio version 9 profile L2 */ 34220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileL3, /**< Windows Media audio version 9 profile L3 */ 34320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 34420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 34520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAProfileMax = 0x7FFFFFFF 34620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_WMAPROFILETYPE; 34720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 34820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 34920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** WMA params */ 35020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_WMATYPE { 35120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 35220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 35320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 35420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nChannels; /**< Number of channels */ 35520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable 35620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates */ 35720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAFORMATTYPE eFormat; /**< Version of WMA stream / data */ 35820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_WMAPROFILETYPE eProfile; /**< Profile of WMA stream / data */ 35920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSamplingRate; /**< Sampling rate of the source data */ 36020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nBlockAlign; /**< is the block alignment, or block size, in bytes of the audio codec */ 36120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nEncodeOptions; /**< WMA Type-specific data */ 36220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSuperBlockAlign; /**< WMA Type-specific data */ 36320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_WMATYPE; 36420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 36520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 36620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * RealAudio format 36720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 36820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_RAFORMATTYPE { 36920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RAFormatUnused = 0, /**< Format unused or unknown */ 37020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA8, /**< RealAudio 8 codec */ 37120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA9, /**< RealAudio 9 codec */ 37220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA10_AAC, /**< MPEG-4 AAC codec for bitrates of more than 128kbps */ 37320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA10_CODEC, /**< RealAudio codec for bitrates less than 128 kbps */ 37420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA10_LOSSLESS, /**< RealAudio Lossless */ 37520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA10_MULTICHANNEL, /**< RealAudio Multichannel */ 37620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RA10_VOICE, /**< RealAudio Voice for bitrates below 15 kbps */ 37720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 37820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 37920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VIDEO_RAFormatMax = 0x7FFFFFFF 38020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_RAFORMATTYPE; 38120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 38220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** RA (Real Audio) params */ 38320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_RATYPE { 38420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< Size of this structure, in Bytes */ 38520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 38620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port that this structure applies to */ 38720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 38820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSamplingRate; /**< is the sampling rate of the source data */ 38920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitsPerFrame; /**< is the value for bits per frame */ 39020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSamplePerFrame; /**< is the value for samples per frame */ 39120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */ 39220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nCouplingStartRegion; /**< is the coupling start region in the stream */ 39320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNumRegions; /**< is the number of regions value */ 39420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_RAFORMATTYPE eFormat; /**< is the RealAudio audio format */ 39520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_RATYPE; 39620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 39720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 39820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** SBC Allocation Method Type */ 39920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_SBCALLOCMETHODTYPE { 40020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCAllocMethodLoudness, /**< Loudness allocation method */ 40120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCAllocMethodSNR, /**< SNR allocation method */ 40220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 40320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCAllocMethodVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 40420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCAllocMethodMax = 0x7FFFFFFF 40520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_SBCALLOCMETHODTYPE; 40620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 40720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 40820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** SBC params */ 40920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_SBCTYPE { 41020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 41120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 41220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 41320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 41420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable 41520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates */ 41620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for 41720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 41820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBlocks; /**< Number of blocks */ 41920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSubbands; /**< Number of subbands */ 42020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitPool; /**< Bitpool value */ 42120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnableBitrate; /**< Use bitrate value instead of bitpool */ 42220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */ 42320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_SBCALLOCMETHODTYPE eSBCAllocType; /**< SBC Allocation method type */ 42420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_SBCTYPE; 42520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 42620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 42720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** ADPCM stream format parameters */ 42820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_ADPCMTYPE { 42920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 43020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 43120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 43220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 43320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 43420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 43520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitsPerSample; /**< Number of bits in each sample */ 43620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for 43720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang variable or unknown sampling rate. */ 43820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_ADPCMTYPE; 43920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 44020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 44120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** G723 rate */ 44220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_G723RATE { 44320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeUnused = 0, /**< AMRNB Mode unused / unknown */ 44420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeLow, /**< 5300 bps */ 44520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeHigh, /**< 6300 bps */ 44620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 44720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 44820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723ModeMax = 0x7FFFFFFF 44920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_G723RATE; 45020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 45120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 45220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** G723 - Sample rate must be 8 KHz */ 45320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_G723TYPE { 45420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 45520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 45620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 45720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 45820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 45920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 46020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 46120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G723RATE eBitRate; /**< todo: Should this be moved to a config? */ 46220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 46320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bPostFilter; /**< Enable Post Filter */ 46420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_G723TYPE; 46520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 46620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 46720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** ITU G726 (ADPCM) rate */ 46820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_G726MODE { 46920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726ModeUnused = 0, /**< G726 Mode unused / unknown */ 47020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726Mode16, /**< 16 kbps */ 47120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726Mode24, /**< 24 kbps */ 47220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726Mode32, /**< 32 kbps, most common rate, also G721 */ 47320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726Mode40, /**< 40 kbps */ 47420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 47520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 47620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726ModeMax = 0x7FFFFFFF 47720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_G726MODE; 47820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 47920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 48020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** G.726 stream format parameters - must be at 8KHz */ 48120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_G726TYPE { 48220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 48320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 48420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 48520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 48620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 48720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 48820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G726MODE eG726Mode; 48920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_G726TYPE; 49020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 49120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 49220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** G729 coder type */ 49320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_G729TYPE { 49420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729 = 0, /**< ITU G.729 encoded data */ 49520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729A, /**< ITU G.729 annex A encoded data */ 49620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729B, /**< ITU G.729 with annex B encoded data */ 49720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729AB, /**< ITU G.729 annexes A and B encoded data */ 49820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 49920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729VendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 50020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729Max = 0x7FFFFFFF 50120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_G729TYPE; 50220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 50320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 50420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** G729 stream format parameters - fixed 6KHz sample rate */ 50520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_G729TYPE { 50620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 50720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 50820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 50920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 51020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 51120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 51220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 51320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_G729TYPE eBitType; 51420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_G729TYPE; 51520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 51620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 51720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AMR Frame format */ 51820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE { 51920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatConformance = 0, /**< Frame Format is AMR Conformance 52020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (Standard) Format */ 52120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatIF1, /**< Frame Format is AMR Interface 52220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Format 1 */ 52320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatIF2, /**< Frame Format is AMR Interface 52420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Format 2*/ 52520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatFSF, /**< Frame Format is AMR File Storage 52620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Format */ 52720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatRTPPayload, /**< Frame Format is AMR Real-Time 52820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Transport Protocol Payload Format */ 52920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatITU, /**< Frame Format is ITU Format (added at Motorola request) */ 53020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 53120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 53220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF 53320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_AMRFRAMEFORMATTYPE; 53420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 53520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 53620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AMR band mode */ 53720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_AMRBANDMODETYPE { 53820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeUnused = 0, /**< AMRNB Mode unused / unknown */ 53920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB0, /**< AMRNB Mode 0 = 4750 bps */ 54020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB1, /**< AMRNB Mode 1 = 5150 bps */ 54120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB2, /**< AMRNB Mode 2 = 5900 bps */ 54220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB3, /**< AMRNB Mode 3 = 6700 bps */ 54320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB4, /**< AMRNB Mode 4 = 7400 bps */ 54420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB5, /**< AMRNB Mode 5 = 7950 bps */ 54520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB6, /**< AMRNB Mode 6 = 10200 bps */ 54620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeNB7, /**< AMRNB Mode 7 = 12200 bps */ 54720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB0, /**< AMRWB Mode 0 = 6600 bps */ 54820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB1, /**< AMRWB Mode 1 = 8850 bps */ 54920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB2, /**< AMRWB Mode 2 = 12650 bps */ 55020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB3, /**< AMRWB Mode 3 = 14250 bps */ 55120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB4, /**< AMRWB Mode 4 = 15850 bps */ 55220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB5, /**< AMRWB Mode 5 = 18250 bps */ 55320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB6, /**< AMRWB Mode 6 = 19850 bps */ 55420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB7, /**< AMRWB Mode 7 = 23050 bps */ 55520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeWB8, /**< AMRWB Mode 8 = 23850 bps */ 55620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 55720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 55820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF 55920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_AMRBANDMODETYPE; 56020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 56120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 56220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AMR Discontinuous Transmission mode */ 56320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_AMRDTXMODETYPE { 56420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeOff = 0, /**< AMR Discontinuous Transmission Mode is disabled */ 56520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeOnVAD1, /**< AMR Discontinuous Transmission Mode using 56620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Voice Activity Detector 1 (VAD1) is enabled */ 56720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeOnVAD2, /**< AMR Discontinuous Transmission Mode using 56820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Voice Activity Detector 2 (VAD2) is enabled */ 56920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeOnAuto, /**< The codec will automatically select between 57020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Off, VAD1 or VAD2 modes */ 57120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXasEFR, /**< DTX as EFR instead of AMR standard (3GPP 26.101, frame type =8,9,10) */ 57320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 57520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 57620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF 57720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_AMRDTXMODETYPE; 57820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 58020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** AMR params */ 58120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_AMRTYPE { 58220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 58320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 58420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 58520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels */ 58620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate read only field */ 58720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ 58820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRDTXMODETYPE eAMRDTXMode; /**< AMR DTX Mode enumeration */ 58920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */ 59020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_AMRTYPE; 59120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 59220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 59320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** GSM_FR (ETSI 06.10, 3GPP 46.010) stream format parameters */ 59420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_GSMFRTYPE { 59520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 59620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 59720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 59820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 59920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 60020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_GSMFRTYPE; 60120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 60220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 60320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** GSM-HR (ETSI 06.20, 3GPP 46.020) stream format parameters */ 60420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_GSMHRTYPE { 60520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 60620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 60720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 60820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 60920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 61020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_GSMHRTYPE; 61120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 61220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 61320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** GSM-EFR (ETSI 06.60, 3GPP 46.060) stream format parameters */ 61420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_GSMEFRTYPE { 61520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 61620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 61720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 61820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 61920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 62020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_GSMEFRTYPE; 62120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 62220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 62320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** TDMA FR (TIA/EIA-136-420, VSELP 7.95kbps coder) stream format parameters */ 62420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_TDMAFRTYPE { 62520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 62620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 62720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 62820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 62920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 63020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 63120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 63220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 63320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_TDMAFRTYPE; 63420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 63520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 63620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** TDMA EFR (TIA/EIA-136-410, ACELP 7.4kbps coder) stream format parameters */ 63720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_TDMAEFRTYPE { 63820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 63920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 64020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 64120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 64220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 64320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 64420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 64520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 64620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_TDMAEFRTYPE; 64720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 64820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 64920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** PDC FR ( RCR-27, VSELP 6.7kbps coder) stream format parameters */ 65020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_PDCFRTYPE { 65120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 65220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 65320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 65420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 65520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 65620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 65720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 65820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 65920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_PDCFRTYPE; 66020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 66120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 66220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** PDC EFR ( RCR-27, ACELP 6.7kbps coder) stream format parameters */ 66320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_PDCEFRTYPE { 66420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 66520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 66620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 66720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 66820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 66920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 67020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 67120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 67220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_PDCEFRTYPE; 67320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 67420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** PDC HR ( RCR-27, PSI-CELP 3.45kbps coder) stream format parameters */ 67520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_PDCHRTYPE { 67620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 67720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 67820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 67920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 68020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 68120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 68220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */ 68320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */ 68420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_PDCHRTYPE; 68520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 68620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 68720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** CDMA Rate types */ 68820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_CDMARATETYPE { 68920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateBlank = 0, /**< CDMA encoded frame is blank */ 69020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateFull, /**< CDMA encoded frame in full rate */ 69120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateHalf, /**< CDMA encoded frame in half rate */ 69220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateQuarter, /**< CDMA encoded frame in quarter rate */ 69320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateEighth, /**< CDMA encoded frame in eighth rate (DTX)*/ 69420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateErasure, /**< CDMA erasure frame */ 69520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 69620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 69720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARateMax = 0x7FFFFFFF 69820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CDMARATETYPE; 69920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 70020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 70120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** QCELP8 (TIA/EIA-96, up to 8kbps coder) stream format parameters */ 70220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_QCELP8TYPE { 70320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 70420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 70520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 70620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 70720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 70820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 70920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable 71020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang rate or unknown bit rates */ 71120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ 71220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ 71320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ 71420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_QCELP8TYPE; 71520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 71620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 71720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** QCELP13 ( CDMA, EIA/TIA-733, 13.3kbps coder) stream format parameters */ 71820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_QCELP13TYPE { 71920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 72020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 72120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 72220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 72320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 72420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 72520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ 72620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ 72720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ 72820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_QCELP13TYPE; 72920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 73020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 73120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** EVRC ( CDMA, EIA/TIA-127, RCELP up to 8.55kbps coder) stream format parameters */ 73220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_EVRCTYPE { 73320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 73420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 73520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 73620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 73720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 73820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 73920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARATETYPE eCDMARate; /**< actual Frame rate */ 74020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */ 74120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */ 74220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */ 74320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter */ 74420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */ 74520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bPostFilter; /**< Enable decoder's post Filter */ 74620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_EVRCTYPE; 74720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 74820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 74920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** SMV ( up to 8.55kbps coder) stream format parameters */ 75020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_SMVTYPE { 75120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 75220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 75320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 75420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannels; /**< Number of channels in the data stream (not 75520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang necessarily the same as the number of channels 75620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to be rendered. */ 75720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */ 75820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */ 75920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 ??*/ 76020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 ??*/ 76120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter ??*/ 76220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */ 76320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bPostFilter; /**< Enable decoder's post Filter ??*/ 76420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_SMVTYPE; 76520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 76620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 76720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI Format 76820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 76920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 77020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_MIDIFORMATTYPE 77120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 77220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatUnknown = 0, /**< MIDI Format unknown or don't care */ 77320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatSMF0, /**< Standard MIDI File Type 0 */ 77420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatSMF1, /**< Standard MIDI File Type 1 */ 77520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatSMF2, /**< Standard MIDI File Type 2 */ 77620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatSPMIDI, /**< SP-MIDI */ 77720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatXMF0, /**< eXtensible Music Format type 0 */ 77820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatXMF1, /**< eXtensible Music Format type 1 */ 77920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatMobileXMF, /**< Mobile XMF (eXtensible Music Format type 2) */ 78020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 78120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 78220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFormatMax = 0x7FFFFFFF 78320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_MIDIFORMATTYPE; 78420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 78520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 78620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI params 78720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 78820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 78920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_MIDITYPE { 79020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 79120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 79220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 79320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFileSize; /**< size of the MIDI file in bytes, where the entire 79420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang MIDI file passed in, otherwise if 0x0, the MIDI data 79520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang is merged and streamed (instead of passed as an 79620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang entire MIDI file) */ 79720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic 79820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang voices. A value of zero indicates that the default 79920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang polyphony of the device is used */ 80020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bLoadDefaultSound; /**< Whether to load default sound 80120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang bank at initialization */ 80220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */ 80320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_MIDITYPE; 80420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 80520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 80620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Type of the MIDI sound bank 80720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 80820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 80920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_MIDISOUNDBANKTYPE { 81020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankUnused = 0, /**< unused/unknown soundbank type */ 81120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankDLS1, /**< DLS version 1 */ 81220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankDLS2, /**< DLS version 2 */ 81320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankMobileDLSBase, /**< Mobile DLS, using the base functionality */ 81420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankMobileDLSPlusOptions, /**< Mobile DLS, using the specification-defined optional feature set */ 81520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 81620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 81720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankMax = 0x7FFFFFFF 81820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_MIDISOUNDBANKTYPE; 81920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 82020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 82120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank 82220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 82320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 82420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE { 82520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutUnused = 0, /**< unused/unknown soundbank type */ 82620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutGM, /**< GS layout (based on bank MSB 0x00) */ 82720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutGM2, /**< General MIDI 2 layout (using MSB 0x78/0x79, LSB 0x00) */ 82820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutUser, /**< Does not conform to any bank numbering standards */ 82920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 83020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 83120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISoundBankLayoutMax = 0x7FFFFFFF 83220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE; 83320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 83420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 83520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI params to load/unload user soundbank 83620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 83720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 83820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE { 83920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 84020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 84120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 84220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nDLSIndex; /**< DLS file index to be loaded */ 84320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nDLSSize; /**< Size in bytes */ 84420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PTR pDLSData; /**< Pointer to DLS file data */ 84520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISOUNDBANKTYPE eMidiSoundBank; /**< Midi sound bank type enumeration */ 84620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE eMidiSoundBankLayout; /**< Midi sound bank layout enumeration */ 84720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE; 84820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 84920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 85020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Structure for Live MIDI events and MIP messages. 85120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.) 85220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 85320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 85420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE { 85520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 85620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 85720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port that this structure applies to */ 85820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMidiEventSize; /**< Size of immediate MIDI events or MIP message in bytes */ 85920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nMidiEvents[1]; /**< MIDI event array to be rendered immediately, or an 86020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang array for the MIP message buffer, where the size is 86120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang indicated by nMidiEventSize */ 86220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE; 86320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 86420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 86520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI sound bank/ program pair in a given channel 86620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 86720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 86820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE { 86920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 87020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 87120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port that this structure applies to */ 87220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannel; /**< Valid channel values range from 1 to 16 */ 87320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nIDProgram; /**< Valid program ID range is 1 to 128 */ 87420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nIDSoundBank; /**< Sound bank ID */ 87520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks 87620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang by index if multiple banks are present */ 87720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE; 87820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 87920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 88020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI control 88120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 88220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 88320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDICONTROLTYPE { 88420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 88520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 88620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 88720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10 88820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang format based on JAVA MMAPI (JSR-135) requirement */ 88920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sPlayBackRate; /**< Relative playback rate, stored as Q14.17 fixed-point 89020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang number based on JSR-135 requirement */ 89120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sTempo ; /**< Tempo in beats per minute (BPM), stored as Q22.10 89220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang fixed-point number based on JSR-135 requirement */ 89320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic 89420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang voices. A value of zero indicates that the default 89520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang polyphony of the device is used */ 89620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNumRepeat; /**< Number of times to repeat playback */ 89720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nStopTime; /**< Time in milliseconds to indicate when playback 89820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang will stop automatically. Set to zero if not used */ 89920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nChannelMuteMask; /**< 16 bit mask for channel mute status */ 90020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nChannelSoloMask; /**< 16 bit mask for channel solo status */ 90120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nTrack0031MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 0-31 */ 90220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nTrack3263MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 32-63 */ 90320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nTrack0031SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 0-31 */ 90420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nTrack3263SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 32-63 */ 90520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 90620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MIDICONTROLTYPE; 90720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 90820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 90920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI Playback States 91020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 91120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 91220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_MIDIPLAYBACKSTATETYPE { 91320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateUnknown = 0, /**< Unknown state or state does not map to 91420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang other defined states */ 91520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateClosedEngaged, /**< No MIDI resource is currently open. 91620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang The MIDI engine is currently processing 91720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang MIDI events. */ 91820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateParsing, /**< A MIDI resource is open and is being 91920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang primed. The MIDI engine is currently 92020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang processing MIDI events. */ 92120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateOpenEngaged, /**< A MIDI resource is open and primed but 92220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang not playing. The MIDI engine is currently 92320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang processing MIDI events. The transition to 92420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang this state is only possible from the 92520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStatePlaying state, 92620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang when the 'playback head' reaches the end 92720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang of media data or the playback stops due 92820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to stop time set.*/ 92920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStatePlaying, /**< A MIDI resource is open and currently 93020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang playing. The MIDI engine is currently 93120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang processing MIDI events.*/ 93220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStatePlayingPartially, /**< Best-effort playback due to SP-MIDI/DLS 93320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang resource constraints */ 93420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStatePlayingSilently, /**< Due to system resource constraints and 93520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang SP-MIDI content constraints, there is 93620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang no audible MIDI content during playback 93720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang currently. The situation may change if 93820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang resources are freed later.*/ 93920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 94020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 94120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPlayBackStateMax = 0x7FFFFFFF 94220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_MIDIPLAYBACKSTATETYPE; 94320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 94420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 94520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI status 94620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 94720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 94820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDISTATUSTYPE { 94920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 95020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 95120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 95220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U16 nNumTracks; /**< Number of MIDI tracks in the file, read only field. 95320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang NOTE: May not return a meaningful value until the entire 95420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang file is parsed and buffered. */ 95520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nDuration; /**< The length of the currently open MIDI resource 95620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang in milliseconds. NOTE: May not return a meaningful value 95720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang until the entire file is parsed and buffered. */ 95820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPosition; /**< Current Position of the MIDI resource being played 95920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang in milliseconds */ 96020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bVibra; /**< Does Vibra track exist? NOTE: May not return a meaningful 96120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang value until the entire file is parsed and buffered. */ 96220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNumMetaEvents; /**< Total number of MIDI Meta Events in the currently 96320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang open MIDI resource. NOTE: May not return a meaningful value 96420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang until the entire file is parsed and buffered. */ 96520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNumActiveVoices; /**< Number of active voices in the currently playing 96620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang MIDI resource. NOTE: May not return a meaningful value until 96720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the entire file is parsed and buffered. */ 96820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_MIDIPLAYBACKSTATETYPE eMIDIPlayBackState; /**< MIDI playback state enumeration, read only field */ 96920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MIDISTATUSTYPE; 97020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 97120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 97220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI Meta Event structure one per Meta Event. 97320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * MIDI Meta Events are like audio metadata, except that they are interspersed 97420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * with the MIDI content throughout the file and are not localized in the header. 97520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * As such, it is necessary to retrieve information about these Meta Events from 97620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the engine, as it encounters these Meta Events within the MIDI content. 97720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * For example, SMF files can have up to 14 types of MIDI Meta Events (copyright, 97820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * author, default tempo, etc.) scattered throughout the file. 97920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 98020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 98120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{ 98220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 98320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 98420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 98520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nIndex; /**< Index of Meta Event */ 98620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nMetaEventType; /**< Meta Event Type, 7bits (i.e. 0 - 127) */ 98720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */ 98820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nTrack; /**< track number for the meta event */ 98920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPosition; /**< Position of the meta-event in milliseconds */ 99020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE; 99120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 99220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 99320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** MIDI Meta Event Data structure - one per Meta Event. 99420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup midi 99520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 99620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{ 99720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 99820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 99920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 100020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nIndex; /**< Index of Meta Event */ 100120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */ 100220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nData[1]; /**< array of one or more bytes of meta data 100320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang as indicated by the nMetaEventSize field */ 100420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE; 100520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 100620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 100720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio Volume adjustment for a port */ 100820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_VOLUMETYPE { 100920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 101020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 101120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port index indicating which port to 101220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set. Select the input port to set 101320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang just that port's volume. Select the 101420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang output port to adjust the master 101520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume. */ 101620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100) 101720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang or logarithmic scale (mB) */ 101820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR 101920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Volume logarithmic setting for this port. The values 102020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang for volume are in mB (millibels = 1/100 dB) relative 102120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to a gain of 1 (e.g. the output is the same as the 102220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang input level). Values are in mB from nMax 102320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (maximum volume) to nMin mB (typically negative). 102420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Since the volume is "voltage" 102520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang and not a "power", it takes a setting of 102620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang -600 mB to decrease the volume by 1/2. If 102720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang a component cannot accurately set the 102820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume to the requested value, it must 102920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set the volume to the closest value BELOW 103020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the requested value. When getting the 103120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume setting, the current actual volume 103220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang must be returned. */ 103320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_VOLUMETYPE; 103420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 103520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 103620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio Volume adjustment for a channel */ 103720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE { 103820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 103920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 104020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port index indicating which port to 104120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set. Select the input port to set 104220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang just that port's volume. Select the 104320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang output port to adjust the master 104420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume. */ 104520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannel; /**< channel to select from 0 to N-1, 104620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang using OMX_ALL to apply volume settings 104720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to all channels */ 104820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100) or 104920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang logarithmic scale (mB) */ 105020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR 105120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Volume logarithmic setting for this port. 105220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang The values for volume are in mB 105320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (millibels = 1/100 dB) relative to a gain 105420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang of 1 (e.g. the output is the same as the 105520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang input level). Values are in mB from nMax 105620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (maximum volume) to nMin mB (typically negative). 105720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Since the volume is "voltage" 105820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang and not a "power", it takes a setting of 105920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang -600 mB to decrease the volume by 1/2. If 106020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang a component cannot accurately set the 106120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume to the requested value, it must 106220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set the volume to the closest value BELOW 106320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the requested value. When getting the 106420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang volume setting, the current actual volume 106520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang must be returned. */ 106620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel, 106720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang FALSE otherwise */ 106820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE; 106920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 107020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 107120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio balance setting */ 107220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_BALANCETYPE { 107320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 107420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 107520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port index indicating which port to 107620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set. Select the input port to set 107720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang just that port's balance. Select the 107820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang output port to adjust the master 107920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang balance. */ 108020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_S32 nBalance; /**< balance setting for this port 108120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (-100 to 100, where -100 indicates 108220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang all left, and no right */ 108320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_BALANCETYPE; 108420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 108520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 108620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio Port mute */ 108720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_MUTETYPE { 108820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 108920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 109020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port index indicating which port to 109120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang set. Select the input port to set 109220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang just that port's mute. Select the 109320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang output port to adjust the master 109420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang mute. */ 109520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bMute; /**< Mute setting for this port */ 109620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_MUTETYPE; 109720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 109820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 109920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Audio Channel mute */ 110020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_CHANNELMUTETYPE { 110120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 110220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 110320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 110420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nChannel; /**< channel to select from 0 to N-1, 110520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang using OMX_ALL to apply mute settings 110620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to all channels */ 110720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bMute; /**< Mute setting for this channel */ 110820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel, 110920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang FALSE otherwise */ 111020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_CHANNELMUTETYPE; 111120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 111220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 111320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 111420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enable / Disable for loudness control, which boosts bass and to a 111520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * smaller extent high end frequencies to compensate for hearing 111620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * ability at the extreme ends of the audio spectrum 111720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 111820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_LOUDNESSTYPE { 111920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 112020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 112120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 112220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bLoudness; /**< Enable/disable for loudness */ 112320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_LOUDNESSTYPE; 112420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 112520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 112620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enable / Disable for bass, which controls low frequencies 112720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 112820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_BASSTYPE { 112920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 113020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 113120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 113220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for bass control */ 113320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_S32 nBass; /**< bass setting for the port, as a 113420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang continuous value from -100 to 100 113520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (0 means no change in bass level)*/ 113620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_BASSTYPE; 113720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 113820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 113920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enable / Disable for treble, which controls high frequencies tones 114020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 114120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_TREBLETYPE { 114220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 114320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 114420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 114520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for treble control */ 114620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_S32 nTreble; /**< treble setting for the port, as a 114720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang continuous value from -100 to 100 114820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (0 means no change in treble level) */ 114920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_TREBLETYPE; 115020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 115120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 115220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** An equalizer is typically used for two reasons: to compensate for an 115320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * sub-optimal frequency response of a system to make it sound more natural 115420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * or to create intentionally some unnatural coloring to the sound to create 115520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * an effect. 115620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 115720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 115820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_EQUALIZERTYPE { 115920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 116020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 116120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 116220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for equalizer */ 116320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sBandIndex; /**< Band number to be set. Upper Limit is 116420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang N-1, where N is the number of bands, lower limit is 0 */ 116520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sCenterFreq; /**< Center frequecies in Hz. This is a 116620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang read only element and is used to determine 116720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the lower, center and upper frequency of 116820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang this band. */ 116920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sBandLevel; /**< band level in millibels */ 117020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_EQUALIZERTYPE; 117120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 117220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 117320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Stereo widening mode type 117420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 117520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 117620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_STEREOWIDENINGTYPE { 117720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_StereoWideningHeadphones, /**< Stereo widening for loudspeakers */ 117820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_StereoWideningLoudspeakers, /**< Stereo widening for closely spaced loudspeakers */ 117920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 118020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_StereoWideningVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 118120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_StereoWideningMax = 0x7FFFFFFF 118220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_STEREOWIDENINGTYPE; 118320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 118420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 118520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Control for stereo widening, which is a special 2-channel 118620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * case of the audio virtualizer effect. For example, for 5.1-channel 118720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * output, it translates to virtual surround sound. 118820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 118920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 119020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE { 119120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 119220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 119320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 119420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for stereo widening control */ 119520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_STEREOWIDENINGTYPE eWideningType; /**< Stereo widening algorithm type */ 119620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nStereoWidening; /**< stereo widening setting for the port, 119720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang as a continuous value from 0 to 100 */ 119820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE; 119920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 120020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 120120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** The chorus effect (or ``choralizer'') is any signal processor which makes 120220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * one sound source (such as a voice) sound like many such sources singing 120320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * (or playing) in unison. Since performance in unison is never exact, chorus 120420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * effects simulate this by making independently modified copies of the input 120520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * signal. Modifications may include (1) delay, (2) frequency shift, and 120620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * (3) amplitude modulation. 120720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 120820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 120920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_CHORUSTYPE { 121020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 121120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 121220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 121320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for chorus */ 121420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sDelay; /**< average delay in milliseconds */ 121520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sModulationRate; /**< rate of modulation in millihertz */ 121620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nModulationDepth; /**< depth of modulation as a percentage of 121720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang delay (i.e. 0 to 100) */ 121820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 nFeedback; /**< Feedback from chorus output to input in percentage */ 121920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_CHORUSTYPE; 122020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 122120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 122220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Reverberation is part of the reflected sound that follows the early 122320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * reflections. In a typical room, this consists of a dense succession of 122420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * echoes whose energy decays exponentially. The reverberation effect structure 122520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * as defined here includes both (early) reflections as well as (late) reverberations. 122620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 122720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 122820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_REVERBERATIONTYPE { 122920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 123020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 123120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 123220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnable; /**< Enable/disable for reverberation control */ 123320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sRoomLevel; /**< Intensity level for the whole room effect 123420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (i.e. both early reflections and late 123520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang reverberation) in millibels */ 123620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sRoomHighFreqLevel; /**< Attenuation at high frequencies 123720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang relative to the intensity at low 123820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang frequencies in millibels */ 123920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sReflectionsLevel; /**< Intensity level of early reflections 124020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang (relative to room value), in millibels */ 124120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sReflectionsDelay; /**< Delay time of the first reflection relative 124220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to the direct path, in milliseconds */ 124320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BS32 sReverbLevel; /**< Intensity level of late reverberation 124420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang relative to room level, in millibels */ 124520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sReverbDelay; /**< Time delay from the first early reflection 124620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to the beginning of the late reverberation 124720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang section, in milliseconds */ 124820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sDecayTime; /**< Late reverberation decay time at low 124920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang frequencies, in milliseconds */ 125020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative 125120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to low frequency decay time in percent */ 125220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nDensity; /**< Modal density in the late reverberation decay, 125320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang in percent (i.e. 0 - 100) */ 125420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nDiffusion; /**< Echo density in the late reverberation decay, 125520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang in percent (i.e. 0 - 100) */ 125620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BU32 sReferenceHighFreq; /**< Reference high frequency in Hertz. This is 125720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the frequency used as the reference for all 125820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the high-frequency settings above */ 125920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 126020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_REVERBERATIONTYPE; 126120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 126220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 126320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Possible settings for the Echo Cancelation structure to use 126420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 126520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 126620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_AUDIO_ECHOCANTYPE { 126720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanOff = 0, /**< Echo Cancellation is disabled */ 126820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanNormal, /**< Echo Cancellation normal operation - 126920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang echo from plastics and face */ 127020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanHFree, /**< Echo Cancellation optimized for 127120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Hands Free operation */ 127220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanCarKit, /**< Echo Cancellation optimized for 127320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Car Kit (longer echo) */ 127420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 127520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 127620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_EchoCanMax = 0x7FFFFFFF 127720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_ECHOCANTYPE; 127820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 127920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 128020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enable / Disable for echo cancelation, which removes undesired echo's 128120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * from the audio 128220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 128320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 128420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE { 128520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 128620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 128720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 128820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_ECHOCANTYPE eEchoCancelation; /**< Echo cancelation settings */ 128920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE; 129020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 129120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 129220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** Enable / Disable for noise reduction, which undesired noise from 129320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the audio 129420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup effects 129520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 129620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE { 129720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 129820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 129920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 130020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bNoiseReduction; /**< Enable/disable for noise reduction */ 130120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE; 130220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 130320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @} */ 130420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 130520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 130620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 130720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 130820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 130920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 131020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* File EOF */ 131120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1312