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