147e37c4428509524ee576920a98381f3e4872493Nick Pelly/*-------------------------------------------------------------------------- 247e37c4428509524ee576920a98381f3e4872493Nick PellyCopyright (c) 2009, Code Aurora Forum. All rights reserved. 347e37c4428509524ee576920a98381f3e4872493Nick Pelly 447e37c4428509524ee576920a98381f3e4872493Nick PellyRedistribution and use in source and binary forms, with or without 547e37c4428509524ee576920a98381f3e4872493Nick Pellymodification, are permitted provided that the following conditions are met: 647e37c4428509524ee576920a98381f3e4872493Nick Pelly * Redistributions of source code must retain the above copyright 747e37c4428509524ee576920a98381f3e4872493Nick Pelly notice, this list of conditions and the following disclaimer. 847e37c4428509524ee576920a98381f3e4872493Nick Pelly * Redistributions in binary form must reproduce the above copyright 947e37c4428509524ee576920a98381f3e4872493Nick Pelly notice, this list of conditions and the following disclaimer in the 1047e37c4428509524ee576920a98381f3e4872493Nick Pelly documentation and/or other materials provided with the distribution. 1147e37c4428509524ee576920a98381f3e4872493Nick Pelly * Neither the name of Code Aurora nor 1247e37c4428509524ee576920a98381f3e4872493Nick Pelly the names of its contributors may be used to endorse or promote 1347e37c4428509524ee576920a98381f3e4872493Nick Pelly products derived from this software without specific prior written 1447e37c4428509524ee576920a98381f3e4872493Nick Pelly permission. 1547e37c4428509524ee576920a98381f3e4872493Nick Pelly 1647e37c4428509524ee576920a98381f3e4872493Nick PellyTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1747e37c4428509524ee576920a98381f3e4872493Nick PellyAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1847e37c4428509524ee576920a98381f3e4872493Nick PellyIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1947e37c4428509524ee576920a98381f3e4872493Nick PellyNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2047e37c4428509524ee576920a98381f3e4872493Nick PellyCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2147e37c4428509524ee576920a98381f3e4872493Nick PellyEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2247e37c4428509524ee576920a98381f3e4872493Nick PellyPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 2347e37c4428509524ee576920a98381f3e4872493Nick PellyOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2447e37c4428509524ee576920a98381f3e4872493Nick PellyWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 2547e37c4428509524ee576920a98381f3e4872493Nick PellyOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 2647e37c4428509524ee576920a98381f3e4872493Nick PellyADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2747e37c4428509524ee576920a98381f3e4872493Nick Pelly--------------------------------------------------------------------------*/ 2847e37c4428509524ee576920a98381f3e4872493Nick Pelly/*============================================================================ 2947e37c4428509524ee576920a98381f3e4872493Nick Pelly O p e n M A X w r a p p e r s 3047e37c4428509524ee576920a98381f3e4872493Nick Pelly O p e n M A X C o r e 3147e37c4428509524ee576920a98381f3e4872493Nick Pelly 3247e37c4428509524ee576920a98381f3e4872493Nick Pelly*//** @file QOMX_AudioExtensions.h 3347e37c4428509524ee576920a98381f3e4872493Nick Pelly This module contains the extensions for Audio 3447e37c4428509524ee576920a98381f3e4872493Nick Pelly 3547e37c4428509524ee576920a98381f3e4872493Nick Pelly*//*========================================================================*/ 3647e37c4428509524ee576920a98381f3e4872493Nick Pelly 3747e37c4428509524ee576920a98381f3e4872493Nick Pelly#ifndef __H_QOMX_AUDIOEXTENSIONS_H__ 3847e37c4428509524ee576920a98381f3e4872493Nick Pelly#define __H_QOMX_AUDIOEXTENSIONS_H__ 3947e37c4428509524ee576920a98381f3e4872493Nick Pelly 4047e37c4428509524ee576920a98381f3e4872493Nick Pelly/*======================================================================== 4147e37c4428509524ee576920a98381f3e4872493Nick Pelly 4247e37c4428509524ee576920a98381f3e4872493Nick Pelly INCLUDE FILES FOR MODULE 4347e37c4428509524ee576920a98381f3e4872493Nick Pelly 4447e37c4428509524ee576920a98381f3e4872493Nick Pelly========================================================================== */ 4547e37c4428509524ee576920a98381f3e4872493Nick Pelly#include <OMX_Audio.h> 4647e37c4428509524ee576920a98381f3e4872493Nick Pelly 4747e37c4428509524ee576920a98381f3e4872493Nick Pelly/*======================================================================== 4847e37c4428509524ee576920a98381f3e4872493Nick Pelly 4947e37c4428509524ee576920a98381f3e4872493Nick Pelly DEFINITIONS AND DECLARATIONS 5047e37c4428509524ee576920a98381f3e4872493Nick Pelly 5147e37c4428509524ee576920a98381f3e4872493Nick Pelly========================================================================== */ 5247e37c4428509524ee576920a98381f3e4872493Nick Pelly 5347e37c4428509524ee576920a98381f3e4872493Nick Pelly#if defined( __cplusplus ) 5447e37c4428509524ee576920a98381f3e4872493Nick Pellyextern "C" 5547e37c4428509524ee576920a98381f3e4872493Nick Pelly{ 5647e37c4428509524ee576920a98381f3e4872493Nick Pelly#endif /* end of macro __cplusplus */ 5747e37c4428509524ee576920a98381f3e4872493Nick Pelly 5847e37c4428509524ee576920a98381f3e4872493Nick Pelly/* Audio extension strings */ 5947e37c4428509524ee576920a98381f3e4872493Nick Pelly#define OMX_QCOM_INDEX_PARAM_AMRWBPLUS "OMX.Qualcomm.index.audio.amrwbplus" 6047e37c4428509524ee576920a98381f3e4872493Nick Pelly#define OMX_QCOM_INDEX_PARAM_WMA10PRO "OMX.Qualcomm.index.audio.wma10pro" 6147e37c4428509524ee576920a98381f3e4872493Nick Pelly#define OMX_QCOM_INDEX_PARAM_SESSIONID "OMX.Qualcomm.index.audio.sessionId" 6247e37c4428509524ee576920a98381f3e4872493Nick Pelly#define OMX_QCOM_INDEX_PARAM_VOICERECORDTYPE "OMX.Qualcomm.index.audio.VoiceRecord" 6347e37c4428509524ee576920a98381f3e4872493Nick Pelly 6447e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef enum QOMX_AUDIO_AMRBANDMODETYPE { 6547e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB9 = 0x7F000001,/**< AMRWB Mode 9 = SID*/ 6647e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB10 = 0x7F000002,/**< AMRWB Mode 10 = 13600 bps */ 6747e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB11 = 0x7F000003,/**< AMRWB Mode 11 = 18000 bps */ 6847e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB12 = 0x7F000004,/**< AMRWB Mode 12 = 24000 bps */ 6947e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB13 = 0x7F000005,/**< AMRWB Mode 13 = 24000 bps */ 7047e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB14 = 0x7F000006,/**< AMRWB Mode 14 = FRAME_ERASE*/ 7147e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBandModeWB15 = 0x7F000007,/**< AMRWB Mode 15 = NO_DATA */ 7247e37c4428509524ee576920a98381f3e4872493Nick Pelly}QOMX_AUDIO_AMRBANDMODETYPE; 7347e37c4428509524ee576920a98381f3e4872493Nick Pelly 7447e37c4428509524ee576920a98381f3e4872493Nick Pelly/** 7547e37c4428509524ee576920a98381f3e4872493Nick Pelly * AMR WB PLUS type 7647e37c4428509524ee576920a98381f3e4872493Nick Pelly * 7747e37c4428509524ee576920a98381f3e4872493Nick Pelly * STRUCT MEMBERS: 7847e37c4428509524ee576920a98381f3e4872493Nick Pelly * nSize : Size of the structure in bytes 7947e37c4428509524ee576920a98381f3e4872493Nick Pelly * nVersion : OMX specification version information 8047e37c4428509524ee576920a98381f3e4872493Nick Pelly * nPortIndex : Port that this structure applies to 8147e37c4428509524ee576920a98381f3e4872493Nick Pelly * nChannels : Number of channels 8247e37c4428509524ee576920a98381f3e4872493Nick Pelly * nBitRate : Bit rate read only field 8347e37c4428509524ee576920a98381f3e4872493Nick Pelly * nSampleRate : Sampling frequency for the clip(16/24/32/48KHz) 8447e37c4428509524ee576920a98381f3e4872493Nick Pelly * eAMRBandMode : AMR Band Mode enumeration 8547e37c4428509524ee576920a98381f3e4872493Nick Pelly * eAMRDTXMode : AMR DTX Mode enumeration 8647e37c4428509524ee576920a98381f3e4872493Nick Pelly * eAMRFrameFormat : AMR frame format enumeration 8747e37c4428509524ee576920a98381f3e4872493Nick Pelly */ 8847e37c4428509524ee576920a98381f3e4872493Nick Pelly 8947e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef struct QOMX_AUDIO_PARAM_AMRWBPLUSTYPE { 9047e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nSize; 9147e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_VERSIONTYPE nVersion; 9247e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nPortIndex; 9347e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nChannels; 9447e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nBitRate; 9547e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nSampleRate; 9647e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; 9747e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_AUDIO_AMRDTXMODETYPE eAMRDTXMode; 9847e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; 9947e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_PARAM_AMRWBPLUSTYPE; 10047e37c4428509524ee576920a98381f3e4872493Nick Pelly 10147e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef enum QOMX_AUDIO_WMAFORMATTYPE { 10247e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_WMAFormat10Pro = 0x7F000001, /**< Windows Media Audio format 10*/ 10347e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_WMAFORMATTYPE; 10447e37c4428509524ee576920a98381f3e4872493Nick Pelly 10547e37c4428509524ee576920a98381f3e4872493Nick Pelly/** 10647e37c4428509524ee576920a98381f3e4872493Nick Pelly * WMA 10 PRO type 10747e37c4428509524ee576920a98381f3e4872493Nick Pelly * 10847e37c4428509524ee576920a98381f3e4872493Nick Pelly * STRUCT MEMBERS: 10947e37c4428509524ee576920a98381f3e4872493Nick Pelly * nSize : Size of the structure in bytes 11047e37c4428509524ee576920a98381f3e4872493Nick Pelly * nVersion : OMX specification version information 11147e37c4428509524ee576920a98381f3e4872493Nick Pelly * nPortIndex : Port that this structure applies to 11247e37c4428509524ee576920a98381f3e4872493Nick Pelly * nChannels : Number of channels 11347e37c4428509524ee576920a98381f3e4872493Nick Pelly * nBitRate : Bit rate read only field 11447e37c4428509524ee576920a98381f3e4872493Nick Pelly * eFormat : Version of WMA stream / data 11547e37c4428509524ee576920a98381f3e4872493Nick Pelly * eProfile : Profile of WMA stream / data 11647e37c4428509524ee576920a98381f3e4872493Nick Pelly * nSamplingRate : Sampling rate of the source data 11747e37c4428509524ee576920a98381f3e4872493Nick Pelly * nBlockAlign : block alignment, or block size, in bytes of the audio codec 11847e37c4428509524ee576920a98381f3e4872493Nick Pelly * nEncodeOptions : WMA Type-specific data 11947e37c4428509524ee576920a98381f3e4872493Nick Pelly * nSuperBlockAlign : WMA Type-specific data 12047e37c4428509524ee576920a98381f3e4872493Nick Pelly * validBitsPerSample : encoded stream (24-bit or 16-bit) 12147e37c4428509524ee576920a98381f3e4872493Nick Pelly * formatTag : codec ID(0x162 or 0x166) 12247e37c4428509524ee576920a98381f3e4872493Nick Pelly * advancedEncodeOpt : bit packed words indicating the features supported for LBR bitstream 12347e37c4428509524ee576920a98381f3e4872493Nick Pelly * advancedEncodeOpt2 : bit packed words indicating the features supported for LBR bitstream 12447e37c4428509524ee576920a98381f3e4872493Nick Pelly */ 12547e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef struct QOMX_AUDIO_PARAM_WMA10PROTYPE { 12647e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nSize; 12747e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_VERSIONTYPE nVersion; 12847e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nPortIndex; 12947e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U16 nChannels; 13047e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nBitRate; 13147e37c4428509524ee576920a98381f3e4872493Nick Pelly QOMX_AUDIO_WMAFORMATTYPE eFormat; 13247e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_AUDIO_WMAPROFILETYPE eProfile; 13347e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nSamplingRate; 13447e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U16 nBlockAlign; 13547e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U16 nEncodeOptions; 13647e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 nSuperBlockAlign; 13747e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 validBitsPerSample; 13847e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 formatTag; 13947e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 advancedEncodeOpt; 14047e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U32 advancedEncodeOpt2; 14147e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_PARAM_WMA10PROTYPE; 14247e37c4428509524ee576920a98381f3e4872493Nick Pelly 14347e37c4428509524ee576920a98381f3e4872493Nick Pelly/** 14447e37c4428509524ee576920a98381f3e4872493Nick Pelly * Stream info data 14547e37c4428509524ee576920a98381f3e4872493Nick Pelly * 14647e37c4428509524ee576920a98381f3e4872493Nick Pelly * STRUCT MEMBERS: 14747e37c4428509524ee576920a98381f3e4872493Nick Pelly * sessionId : session Id for alsa to route data 14847e37c4428509524ee576920a98381f3e4872493Nick Pelly */ 14947e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef struct QOMX_AUDIO_STREAM_INFO_DATA { 15047e37c4428509524ee576920a98381f3e4872493Nick Pelly OMX_U8 sessionId; 15147e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_STREAM_INFO_DATA; 15247e37c4428509524ee576920a98381f3e4872493Nick Pelly 15347e37c4428509524ee576920a98381f3e4872493Nick Pelly 15447e37c4428509524ee576920a98381f3e4872493Nick Pelly/** 15547e37c4428509524ee576920a98381f3e4872493Nick Pelly * Record Path 15647e37c4428509524ee576920a98381f3e4872493Nick Pelly * 15747e37c4428509524ee576920a98381f3e4872493Nick Pelly * STRUCT MEMBERS: 15847e37c4428509524ee576920a98381f3e4872493Nick Pelly * recPath : Record Path for encoding 15947e37c4428509524ee576920a98381f3e4872493Nick Pelly */ 16047e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef enum{ 16147e37c4428509524ee576920a98381f3e4872493Nick Pelly 16247e37c4428509524ee576920a98381f3e4872493Nick PellyQOMX_AUDIO_VOICE_TX, 16347e37c4428509524ee576920a98381f3e4872493Nick PellyQOMX_AUDIO_VOICE_RX, 16447e37c4428509524ee576920a98381f3e4872493Nick PellyQOMX_AUDIO_VOICE_MIXED, 16547e37c4428509524ee576920a98381f3e4872493Nick Pelly 16647e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_VOICERECORDMODETYPE; 16747e37c4428509524ee576920a98381f3e4872493Nick Pellytypedef struct QOMX_AUDIO_CONFIG_VOICERECORDTYPE { 16847e37c4428509524ee576920a98381f3e4872493Nick Pelly 16947e37c4428509524ee576920a98381f3e4872493Nick PellyOMX_U32 nSize; 17047e37c4428509524ee576920a98381f3e4872493Nick PellyOMX_VERSIONTYPE nVersion; 17147e37c4428509524ee576920a98381f3e4872493Nick PellyQOMX_AUDIO_VOICERECORDMODETYPE eVoiceRecordMode; 17247e37c4428509524ee576920a98381f3e4872493Nick Pelly} QOMX_AUDIO_CONFIG_VOICERECORDTYPE; 17347e37c4428509524ee576920a98381f3e4872493Nick Pelly 17447e37c4428509524ee576920a98381f3e4872493Nick Pelly 17547e37c4428509524ee576920a98381f3e4872493Nick Pelly 17647e37c4428509524ee576920a98381f3e4872493Nick Pelly 17747e37c4428509524ee576920a98381f3e4872493Nick Pelly#if defined( __cplusplus ) 17847e37c4428509524ee576920a98381f3e4872493Nick Pelly} 17947e37c4428509524ee576920a98381f3e4872493Nick Pelly#endif /* end of macro __cplusplus */ 18047e37c4428509524ee576920a98381f3e4872493Nick Pelly 18147e37c4428509524ee576920a98381f3e4872493Nick Pelly#endif /* end of macro __H_QOMX_AUDIOEXTENSIONS_H__ */ 182