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