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