Home | History | Annotate | Download | only in inc
      1 
      2 /*
      3  * Copyright (C) Texas Instruments - http://www.ti.com/
      4  *
      5  * This library is free software; you can redistribute it and/or
      6  * modify it under the terms of the GNU Lesser General Public
      7  * License as published by the Free Software Foundation; either
      8  * version 2.1 of the License, or (at your option) any later version.
      9  *
     10  *
     11  * This library is distributed in the hope that it will be useful,
     12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14  * Lesser General Public License for more details.
     15  *
     16  *
     17  * You should have received a copy of the GNU Lesser General Public
     18  * License along with this library; if not, write to the Free Software
     19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     20  */
     21 /* =============================================================================
     22  *             Texas Instruments OMAP (TM) Platform Software
     23  *  (c) Copyright Texas Instruments, Incorporated.  All Rights Reserved.
     24  *
     25  *  Use of this software is controlled by the terms and conditions found
     26  *  in the license agreement under which this software has been supplied.
     27  * =========================================================================== */
     28 /**
     29  * @file OMX_G729Dec_Utils.h
     30  *
     31  * This header file contains data and function prototypes for G729 DECODER OMX
     32  *
     33  * @path  $(OMAPSW_MPU)\linux\audio\src\openmax_il\g729_dec\inc
     34  *
     35  * @rev  0.1
     36  */
     37 /* -----------------------------------------------------------------------------
     38  *!
     39  *! Revision History
     40  *! ===================================
     41  *! Date         Author(s)            Version  Description
     42  *! ---------    -------------------  -------  ---------------------------------
     43  *! 03-Jan-2007  A.Donjon             0.1      Code update for G729 DECODER
     44  *!
     45  *!
     46  * ================================================================================= */
     47 /* ------compilation control switches -------------------------*/
     48 
     49 #ifndef OMX_G729DEC_UTILS__H
     50 #define OMX_G729DEC_UTILS__H
     51 
     52 /* ======================================================================= */
     53 /**
     54  * @def    G729DEC_MAJOR_VER              Define value for "major" version
     55  */
     56 /* ======================================================================= */
     57 #define  G729DEC_MAJOR_VER 0x1
     58 
     59 /* ======================================================================= */
     60 /**
     61  * @def    G729DEC_MINOR_VER              Define value for "minor" version
     62  */
     63 /* ======================================================================= */
     64 #define  G729DEC_MINOR_VER 0x1
     65 
     66 /* ======================================================================= */
     67 /**
     68  * @def    NOT_USED                            Define a not used value
     69  */
     70 /* ======================================================================= */
     71 #define NOT_USED 10
     72 
     73 /* ======================================================================= */
     74 /**
     75  * @def    NORMAL_BUFFER                       Define a normal buffer value
     76  */
     77 /* ======================================================================= */
     78 #define NORMAL_BUFFER 0
     79 
     80 /* ======================================================================= */
     81 /**
     82  * @def    OMX_G729DEC_DEFAULT_SEGMENT        Define the default segment
     83  */
     84 /* ======================================================================= */
     85 #define OMX_G729DEC_DEFAULT_SEGMENT (0)
     86 
     87 /* ======================================================================= */
     88 /**
     89  * @def    OMX_G729DEC_SN_TIMEOUT            Define a value for SN Timeout
     90  */
     91 /* ======================================================================= */
     92 #define OMX_G729DEC_SN_TIMEOUT (-1)
     93 
     94 /* ======================================================================= */
     95 /**
     96  * @def    OMX_G729DEC_SN_PRIORITY           Define a value for SN Priority
     97  */
     98 /* ======================================================================= */
     99 #define OMX_G729DEC_SN_PRIORITY (10)
    100 
    101 /* ======================================================================= */
    102 /**
    103  * @def    OMX_G729DEC_NUM_DLLS              Define a num of DLLS to be used
    104  */
    105 /* ======================================================================= */
    106 #define OMX_G729DEC_NUM_DLLS (2)
    107 
    108 /* ======================================================================= */
    109 /**
    110  * @def    G729DEC_USN_DLL_NAME             Path & Name of USN DLL to be used
    111  *                                           at initialization
    112  */
    113 /* ======================================================================= */
    114 #ifdef UNDER_CE
    115 #define G729DEC_USN_DLL_NAME "\\windows\\usn.dll64P"
    116 #else
    117 #define G729DEC_USN_DLL_NAME "usn.dll64P"
    118 #endif
    119 
    120 /* ======================================================================= */
    121 /**
    122  * @def    G729DEC_USN_DLL_NAME             Path & Name of DLL to be useda
    123  *                                           at initialization
    124  */
    125 /* ======================================================================= */
    126 #ifdef UNDER_CE
    127 #define G729DEC_DLL_NAME "\\windows\\g729dec_sn.dll64P"
    128 #else
    129 #define G729DEC_DLL_NAME "g729dec_sn.dll64P"
    130 #endif
    131 
    132 /****************************************************************
    133  *  INCLUDE FILES
    134  ****************************************************************/
    135 /* ----- system and platform files ----------------------------*/
    136 
    137 /*-------program files ----------------------------------------*/
    138 #include <OMX_Component.h>
    139 #include "OMX_G729Decoder.h"
    140 /****************************************************************
    141  * EXTERNAL REFERENCES NOTE : only use if not found in header file
    142  ****************************************************************/
    143 /*--------data declarations -----------------------------------*/
    144 /*--------function prototypes ---------------------------------*/
    145 
    146 /****************************************************************
    147  * PUBLIC DECLARATIONS Defined here, used elsewhere
    148  ****************************************************************/
    149 /*--------data declarations -----------------------------------*/
    150 
    151 /*--------function prototypes ---------------------------------*/
    152 
    153 /****************************************************************
    154  * PRIVATE DECLARATIONS Defined here, used only here
    155  ****************************************************************/
    156 /*--------data declarations -----------------------------------*/
    157 /*--------function prototypes ---------------------------------*/
    158 
    159 
    160 OMX_ERRORTYPE G729DECGetCorresponding_LCMLHeader(G729DEC_COMPONENT_PRIVATE* pComponentPrivate,
    161                                                  OMX_U8 *pBuffer,
    162                                                  OMX_DIRTYPE eDir,
    163                                                  LCML_G729DEC_BUFHEADERTYPE **ppLcmlHdr);
    164 
    165 OMX_ERRORTYPE G729DECLCML_Callback (TUsnCodecEvent event,void * args [10]);
    166 
    167 OMX_ERRORTYPE G729DECFill_LCMLInitParams(OMX_HANDLETYPE pHandle,
    168                                          LCML_DSP *plcml_Init,OMX_U16 arr[]);
    169 
    170 
    171 OMX_ERRORTYPE G729DECGetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_DIRTYPE *eDir);
    172 OMX_U32 G729DECHandleCommand (G729DEC_COMPONENT_PRIVATE *pComponentPrivate);
    173 
    174 OMX_ERRORTYPE G729DECHandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader,
    175                                            G729DEC_COMPONENT_PRIVATE *pComponentPrivate);
    176 
    177 
    178 OMX_ERRORTYPE G729DECHandleDataBuf_FromLCML(G729DEC_COMPONENT_PRIVATE* pComponentPrivate);
    179 
    180 
    181 void  AddHeader(BYTE **pFileBuf);
    182 void  ResetPtr(BYTE **pFileBuf);
    183 OMX_HANDLETYPE G729DECGetLCMLHandle(G729DEC_COMPONENT_PRIVATE* pComponentPrivate);
    184 OMX_ERRORTYPE G729DECFreeLCMLHandle(G729DEC_COMPONENT_PRIVATE* pComponentPrivate);
    185 OMX_ERRORTYPE G729DEC_CleanupInitParams(OMX_HANDLETYPE pComponent);
    186 void G729DEC_SetPending(G729DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir);
    187 void G729DEC_ClearPending(G729DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir) ;
    188 OMX_U32 G729DEC_IsPending(G729DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir);
    189 OMX_ERRORTYPE G729DECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent);
    190 OMX_U32 G729DEC_IsValid(G729DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U8 *pBuffer, OMX_DIRTYPE eDir) ;
    191 OMX_ERRORTYPE G729DEC_TransitionToIdle(G729DEC_COMPONENT_PRIVATE *pComponentPrivate);
    192 
    193 /*--------macros ----------------------------------------------*/
    194 
    195 #endif
    196