Home | History | Annotate | Download | only in inc
      1 /*--------------------------------------------------------------------------
      2 Copyright (c) 2009, The Linux Foundation. All rights reserved.
      3 
      4 Redistribution and use in source and binary forms, with or without
      5 modification, are permitted provided that the following conditions are met:
      6     * Redistributions of source code must retain the above copyright
      7       notice, this list of conditions and the following disclaimer.
      8     * Redistributions in binary form must reproduce the above copyright
      9       notice, this list of conditions and the following disclaimer in the
     10       documentation and/or other materials provided with the distribution.
     11     * Neither the name of The Linux Foundation nor
     12       the names of its contributors may be used to endorse or promote
     13       products derived from this software without specific prior written
     14       permission.
     15 
     16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18 IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     19 NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     20 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     21 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     22 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     23 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     24 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     25 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     26 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 --------------------------------------------------------------------------*/
     28 /*============================================================================
     29                             O p e n M A X   w r a p p e r s
     30                              O p e n  M A X   C o r e
     31 
     32 *//** @file QOMX_AudioExtensions.h
     33   This module contains the extensions for Audio
     34 
     35 *//*========================================================================*/
     36 
     37 #ifndef __H_QOMX_AUDIOEXTENSIONS_H__
     38 #define __H_QOMX_AUDIOEXTENSIONS_H__
     39 
     40 /*========================================================================
     41 
     42                      INCLUDE FILES FOR MODULE
     43 
     44 ========================================================================== */
     45 #include <OMX_Audio.h>
     46 
     47 /*========================================================================
     48 
     49                       DEFINITIONS AND DECLARATIONS
     50 
     51 ========================================================================== */
     52 
     53 #if defined( __cplusplus )
     54 extern "C"
     55 {
     56 #endif /* end of macro __cplusplus */
     57 
     58 /* Audio extension strings */
     59 #define OMX_QCOM_INDEX_PARAM_AMRWBPLUS       "OMX.Qualcomm.index.audio.amrwbplus"
     60 #define OMX_QCOM_INDEX_PARAM_WMA10PRO        "OMX.Qualcomm.index.audio.wma10pro"
     61 #define OMX_QCOM_INDEX_PARAM_SESSIONID       "OMX.Qualcomm.index.audio.sessionId"
     62 #define OMX_QCOM_INDEX_PARAM_VOICERECORDTYPE "OMX.Qualcomm.index.audio.VoiceRecord"
     63 
     64 typedef enum QOMX_AUDIO_AMRBANDMODETYPE {
     65     QOMX_AUDIO_AMRBandModeWB9              = 0x7F000001,/**< AMRWB Mode 9 = SID*/
     66     QOMX_AUDIO_AMRBandModeWB10             = 0x7F000002,/**< AMRWB Mode 10 = 13600 bps */
     67     QOMX_AUDIO_AMRBandModeWB11             = 0x7F000003,/**< AMRWB Mode 11 = 18000 bps */
     68     QOMX_AUDIO_AMRBandModeWB12             = 0x7F000004,/**< AMRWB Mode 12 = 24000 bps */
     69     QOMX_AUDIO_AMRBandModeWB13             = 0x7F000005,/**< AMRWB Mode 13 = 24000 bps */
     70     QOMX_AUDIO_AMRBandModeWB14             = 0x7F000006,/**< AMRWB Mode 14 = FRAME_ERASE*/
     71     QOMX_AUDIO_AMRBandModeWB15             = 0x7F000007,/**< AMRWB Mode 15 = NO_DATA */
     72 }QOMX_AUDIO_AMRBANDMODETYPE;
     73 
     74 /**
     75  * AMR WB PLUS type
     76  *
     77  *  STRUCT MEMBERS:
     78  *  nSize           : Size of the structure in bytes
     79  *  nVersion        : OMX specification version information
     80  *  nPortIndex      : Port that this structure applies to
     81  *  nChannels       : Number of channels
     82  *  nBitRate        : Bit rate read only field
     83  *  nSampleRate     : Sampling frequency for the clip(16/24/32/48KHz)
     84  *  eAMRBandMode    : AMR Band Mode enumeration
     85  *  eAMRDTXMode     : AMR DTX Mode enumeration
     86  *  eAMRFrameFormat : AMR frame format enumeration
     87  */
     88 
     89 typedef struct QOMX_AUDIO_PARAM_AMRWBPLUSTYPE {
     90     OMX_U32 nSize;
     91     OMX_VERSIONTYPE nVersion;
     92     OMX_U32 nPortIndex;
     93     OMX_U32 nChannels;
     94     OMX_U32 nBitRate;
     95     OMX_U32 nSampleRate;
     96     QOMX_AUDIO_AMRBANDMODETYPE   eAMRBandMode;
     97     OMX_AUDIO_AMRDTXMODETYPE     eAMRDTXMode;
     98     OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat;
     99 } QOMX_AUDIO_PARAM_AMRWBPLUSTYPE;
    100 
    101 typedef enum QOMX_AUDIO_WMAFORMATTYPE {
    102     QOMX_AUDIO_WMAFormat10Pro = 0x7F000001, /**< Windows Media Audio format 10*/
    103 } QOMX_AUDIO_WMAFORMATTYPE;
    104 
    105 /**
    106  * WMA 10 PRO type
    107  *
    108  *  STRUCT MEMBERS:
    109  *  nSize              : Size of the structure in bytes
    110  *  nVersion           : OMX specification version information
    111  *  nPortIndex         : Port that this structure applies to
    112  *  nChannels          : Number of channels
    113  *  nBitRate           : Bit rate read only field
    114  *  eFormat            : Version of WMA stream / data
    115  *  eProfile           : Profile of WMA stream / data
    116  *  nSamplingRate      : Sampling rate of the source data
    117  *  nBlockAlign        : block alignment, or block size, in bytes of the audio codec
    118  *  nEncodeOptions     : WMA Type-specific data
    119  *  nSuperBlockAlign   : WMA Type-specific data
    120  *  validBitsPerSample : encoded stream (24-bit or 16-bit)
    121  *  formatTag          : codec ID(0x162 or 0x166)
    122  *  advancedEncodeOpt  : bit packed words indicating the features supported for LBR bitstream
    123  *  advancedEncodeOpt2 : bit packed words indicating the features supported for LBR bitstream
    124  */
    125 typedef struct QOMX_AUDIO_PARAM_WMA10PROTYPE {
    126     OMX_U32 nSize;
    127     OMX_VERSIONTYPE nVersion;
    128     OMX_U32 nPortIndex;
    129     OMX_U16 nChannels;
    130     OMX_U32 nBitRate;
    131     QOMX_AUDIO_WMAFORMATTYPE eFormat;
    132     OMX_AUDIO_WMAPROFILETYPE eProfile;
    133     OMX_U32 nSamplingRate;
    134     OMX_U16 nBlockAlign;
    135     OMX_U16 nEncodeOptions;
    136     OMX_U32 nSuperBlockAlign;
    137     OMX_U32 validBitsPerSample;
    138     OMX_U32 formatTag;
    139     OMX_U32 advancedEncodeOpt;
    140     OMX_U32 advancedEncodeOpt2;
    141 } QOMX_AUDIO_PARAM_WMA10PROTYPE;
    142 
    143 /**
    144  * Stream info data
    145  *
    146  *  STRUCT MEMBERS:
    147  *  sessionId :  session Id for alsa to route data
    148  */
    149 typedef struct QOMX_AUDIO_STREAM_INFO_DATA {
    150     OMX_U8  sessionId;
    151 } QOMX_AUDIO_STREAM_INFO_DATA;
    152 
    153 
    154 /**
    155  * Record Path
    156  *
    157  * STRUCT MEMBERS:
    158  * recPath : Record Path for encoding
    159  */
    160 typedef enum{
    161 
    162 QOMX_AUDIO_VOICE_TX,
    163 QOMX_AUDIO_VOICE_RX,
    164 QOMX_AUDIO_VOICE_MIXED,
    165 
    166 } QOMX_AUDIO_VOICERECORDMODETYPE;
    167 typedef struct QOMX_AUDIO_CONFIG_VOICERECORDTYPE {
    168 
    169 OMX_U32                            nSize;
    170 OMX_VERSIONTYPE                    nVersion;
    171 QOMX_AUDIO_VOICERECORDMODETYPE     eVoiceRecordMode;
    172 }  QOMX_AUDIO_CONFIG_VOICERECORDTYPE;
    173 
    174 
    175 
    176 
    177 #if defined( __cplusplus )
    178 }
    179 #endif /* end of macro __cplusplus */
    180 
    181 #endif /* end of macro __H_QOMX_AUDIOEXTENSIONS_H__ */
    182