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