Audio Signal Processing/audio_codecs_chipset_api.h
author Daniel Rubio <danielr@symbian.org>
Fri, 26 Jun 2009 15:44:04 +0100
changeset 0 bb4b476bbb96
child 2 ea09f30a96a5
permissions -rw-r--r--
Initial contribution of SHAI APIs from Nokia.

/*
  audio_codecs_chipset_api.h

  Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
  All rights reserved.

  This program and the accompanying materials are made available 
  under the terms of the Eclipse Public License v1.0 which accompanies 
  this distribution, and is available at 
  http://www.eclipse.org/legal/epl-v10.html

  Initial Contributors:
  Nokia Corporation - initial contribution.

  Contributors:
*/

#ifndef AUDIO_CODECS_CHIPSET_API_H
#define AUDIO_CODECS_CHIPSET_API_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/* Each OMX header must include all required header files to allow the
 *  header to compile without errors.  The includes below are required
 *  for this header file to compile successfully 
 */

#include <OMX_Audio.h>

/** AMR-WB+ related **/

typedef enum OMX_AUDIOCODINGEXTTYPE {
    OMX_AudioCodingExtStart = 0x6F000000,    /* =  OMX_AUDIO_CodingExtensions */
    /* Add Khronos approved extended components indexes here */
    OMX_AUDIO_CodingAMRWBPLUS,
    OMX_AudioCodingExtMax = 0x6FFFFFFF
} OMX_AUDIOCODINGEXTTYPE;

/** AMR Wideband Plus Extensions */
/** AMR Frame format Extension */ 
typedef enum OMX_AUDIO_AMREXT_FRAMEFORMATTYPE { 
    OMX_AUDIO_AMRFrameFormatConformance = 0,  /**< Frame Format is AMR Conformance 
                                                   (Standard) Format */ 
    OMX_AUDIO_AMRFrameFormatIF1,              /**< Frame Format is AMR Interface 
                                                   Format 1 */ 
    OMX_AUDIO_AMRFrameFormatIF2,              /**< Frame Format is AMR Interface 
                                                   Format 2*/ 
    OMX_AUDIO_AMRFrameFormatFSF,              /**< Frame Format is AMR File Storage 
                                                   Format */ 
    OMX_AUDIO_AMRFrameFormatRTPPayload,       /**< Frame Format is AMR Real-Time 
                                                   Transport Protocol Payload Format */ 
    OMX_AUDIO_AMRFrameFormatITU,              /**< Frame Format is ITU Format (added at Motorola request) */ 
    OMX_AUDIO_AMRWideBandPlusFrameFormat,     /**< 3GPP TS 26.290, clause 8.2 */
    OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF 
} OMX_AUDIO_AMREXT_FRAMEFORMATTYPE; 

typedef enum OMX_AUDIO_AMRDTXMODETYPE { 
    OMX_AUDIO_AMRDTXModeUsed = 0,  /**< DTX used or unused */ 
    OMX_AUDIO_AMRDTXModeOnVAD1,    /**< Use Type 1 VAD */ 
    OMX_AUDIO_AMRDTXModeOnVAD2,    /**< Use Type 2 VAD */
    OMX_AUDIO_AMRDTXModeOnAuto,    /**< VAD type automatic */
    OMX_AUDIO_AMRDTXModeAsEFR,     /**< DTX frames as EFR */
    OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF 

 } OMX_AUDIO_AMRDTXMODETYPE; 



/** AMR band mode extension */
typedef enum OMX_AUDIO_AMREXT_BANDMODETYPE {
    OMX_AUDIO_AMRBandModeUnused = 0,          /**< AMRNB Mode unused / unknown */
    OMX_AUDIO_AMRBandModeNB0,                 /**< AMRNB Mode 0 =  4750 bps */
    OMX_AUDIO_AMRBandModeNB1,                 /**< AMRNB Mode 1 =  5150 bps */
    OMX_AUDIO_AMRBandModeNB2,                 /**< AMRNB Mode 2 =  5900 bps */ 
    OMX_AUDIO_AMRBandModeNB3,                 /**< AMRNB Mode 3 =  6700 bps */
    OMX_AUDIO_AMRBandModeNB4,                 /**< AMRNB Mode 4 =  7400 bps */
    OMX_AUDIO_AMRBandModeNB5,                 /**< AMRNB Mode 5 =  7950 bps */
    OMX_AUDIO_AMRBandModeNB6,                 /**< AMRNB Mode 6 = 10200 bps */
    OMX_AUDIO_AMRBandModeNB7,                 /**< AMRNB Mode 7 = 12200 bps */
    OMX_AUDIO_AMRBandModeWB0,                 /**< AMRWB Mode 0 =  6600 bps */
    OMX_AUDIO_AMRBandModeWB1,                 /**< AMRWB Mode 1 =  8850 bps */
    OMX_AUDIO_AMRBandModeWB2,                 /**< AMRWB Mode 2 = 12650 bps */ 
    OMX_AUDIO_AMRBandModeWB3,                 /**< AMRWB Mode 3 = 14250 bps */ 
    OMX_AUDIO_AMRBandModeWB4,                 /**< AMRWB Mode 4 = 15850 bps */
    OMX_AUDIO_AMRBandModeWB5,                 /**< AMRWB Mode 5 = 18250 bps */
    OMX_AUDIO_AMRBandModeWB6,                 /**< AMRWB Mode 6 = 19850 bps */
    OMX_AUDIO_AMRBandModeWB7,                 /**< AMRWB Mode 7 = 23050 bps */
    OMX_AUDIO_AMRBandModeWB8,                 /**< AMRWB Mode 8 = 23850 bps */      
    OMX_AUDIO_AMRBandModeWP0,                 /**< AMR-WB+ 13.6 kbps (mono, 16/24kHz output) */
    OMX_AUDIO_AMRBandModeWP1,                 /**< AMR-WB+ 18 kbps (stereo, 16/24kHz output) */
    OMX_AUDIO_AMRBandModeWP2,                 /**< AMR-WB+ 24 kbps (mono, 16/24kHz output) */
    OMX_AUDIO_AMRBandModeWP3,                 /**< AMR-WB+ 24 kbps (stereo, 16/24kHz output) */
    OMX_AUDIO_AMRBandModeWP4,                 /**< AMR-WB+ 10.4 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP5,                 /**< AMR-WB+ 12.0 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP6,                 /**< AMR-WB+ 13.6 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP7,                 /**< AMR-WB+ 15.2 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP8,                 /**< AMR-WB+ 16.8 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP9,                 /**< AMR-WB+ 19.2 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP10,                /**< AMR-WB+ 20.8 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP11,                /**< AMR-WB+ 24.0 kbps (mono) */
    OMX_AUDIO_AMRBandModeWP12,                /**< AMR-WB+ 12.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP13,                /**< AMR-WB+ 12.8 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP14,                /**< AMR-WB+ 14.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP15,                /**< AMR-WB+ 14.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP16,                /**< AMR-WB+ 15.2 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP17,                /**< AMR-WB+ 16.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP18,                /**< AMR-WB+ 16.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP19,                /**< AMR-WB+ 17.2 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP20,                /**< AMR-WB+ 18.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP21,                /**< AMR-WB+ 18.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP22,                /**< AMR-WB+ 19.2 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP23,                /**< AMR-WB+ 20.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP24,                /**< AMR-WB+ 20.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP25,                /**< AMR-WB+ 21.2 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP26,                /**< AMR-WB+ 22.4 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP27,                /**< AMR-WB+ 23.2 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP28,                /**< AMR-WB+ 24.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP29,                /**< AMR-WB+ 25.6 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP30,                /**< AMR-WB+ 26.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP31,                /**< AMR-WB+ 26.8 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP32,                /**< AMR-WB+ 28.8 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP33,                /**< AMR-WB+ 29.6 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP34,                /**< AMR-WB+ 30.0 kbps (stereo) */
    OMX_AUDIO_AMRBandModeWP35,                /**< AMR-WB+ 32.0 kbps (stereo) */
    
    OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF /**< 5.15 kbps */
} OMX_AUDIO_AMREXT_BANDMODETYPE;
     

/** AMR params extension */


typedef struct OMX_AUDIO_PARAM_AMREXT_TYPE {
    OMX_U32 nSize;                          /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;               /**< OMX specification version information */
    OMX_U32 nPortIndex;                     /**< port that this structure applies to */
    OMX_U32 nChannels;                      /**< Number of channels */
    OMX_U32 nBitRate;                       /**< Bit rate read only field */
    OMX_AUDIO_AMREXT_BANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ 
    OMX_AUDIO_AMRDTXMODETYPE  eAMRDTXMode;  /**< AMR DTX Mode enumeration */
    OMX_AUDIO_AMREXT_FRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
    OMX_U32 nAMRWideBandPlusISF;            /**< AMR-WB+ internal Sampling Frequency Factor expressed in percentage */
    OMX_BOOL bAMRWideBandPlusLC;            /**< Activates/deactivates AMR-WB+ low complexity Extended AMR Wide Band encoding mode */
    OMX_BOOL bAMRWideBandPlusLimiter        /**< Activates/deactivates the limiter option of the decoder */

} OMX_AUDIO_PARAM_AMREXT_TYPE;

/** End of AMR-WB+ related **/

/** WMA Pro related **/

/** WMA Pro params **/

typedef enum OMX_AUDIO_WMAPROFORMATTYPE {
    OMX_AUDIO_WMAPROFormatUnused = 0,          /**< AMRNB Mode unused / unknown */
    OMX_AUDIO_WMAPROFormat9,           
    OMX_AUDIO_WMAPROFormat10,
    OMX_AUDIO_WMAPROFormatMax = 0x7FFFFFFF    
} OMX_AUDIO_WMAPROFORMATTYPE;

typedef enum OMX_AUDIO_WMAPROPROFILETYPE {
    OMX_AUDIO_WMAPROProfileUnused = 0,          /**< AMRNB Mode unused / unknown */
    OMX_AUDIO_WMAPROProfileM0,
    OMX_AUDIO_WMAPROProfileM1,
    OMX_AUDIO_WMAPROProfileM2,
    OMX_AUDIO_WMAPROProfileM3,               
    OMX_AUDIO_WMAPROProfileMax = 0x7FFFFFFF
} OMX_AUDIO_WMAPROPROFILETYPE;
    
typedef struct OMX_AUDIO_PARAM_WMAPROTYPE {
		OMX_U32 nSize;
		OMX_VERSIONTYPE nVersion;
		OMX_U32 nPortIndex;
		OMX_U16 nChannels;
		OMX_U32 nBitRate;
		OMX_AUDIO_WMAPROFORMATTYPE eFormat;
		OMX_AUDIO_WMAPROPROFILETYPE eProfile;
		OMX_U32 nSamplingRate;
		OMX_U32 nBlockAlign;
		OMX_U32 nSuperBlockAlign;
		OMX_U32 nEncodeOptions;
		OMX_U32 nAdvancedEncodeOptions;
		OMX_U32 nAdvancedEncodeOptions2;
		OMX_U32 nChannelMask;
} OMX_AUDIO_PARAM_WMAPROTYPE;

/** End of WMA Pro related **/

/** iLBC related **/
typedef struct OMX_AUDIO_PARAM_ILBCTYPE  { 
     OMX_U32 nSize;                                    
     OMX_VERSIONTYPE nVersion;                   
     OMX_U32 nPortIndex;            
     OMX_U32 nFrameLength;
     OMX_BOOL bIsDTXCNGSupported;
     OMX_BOOL bDTXCNGSelected;                       
     OMX_BOOL bPLCSelected;                                                                       
 } OMX_AUDIO_PARAM_ILBCTYPE;

/** End of iLBC related **/

/** G711 related **/
typedef struct OMX_AUDIO_PARAM_G711TYPE  { 
     OMX_U32 nSize;                                    
     OMX_VERSIONTYPE nVersion;                   
     OMX_U32 nPortIndex; 
     OMX_BOOL bIsDTXCNGSupported;
     OMX_BOOL bIsPLCSupported;       
     OMX_BOOL bDTXCNGEnabled;           
     OMX_BOOL bPLCEnabled;
     OMX_U32  nFrameLength;                                                                     
 } OMX_AUDIO_PARAM_G711TYPE;

/** End of G711 related **/


/** End of Dummy component **/

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif