OMX_G711Dec_Utils.h revision eaaadaf5ebb5e352e2ed4a12714f5d2363da0dcd
1b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 2b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* 3b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/ 4b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 5b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is free software; you can redistribute it and/or 6b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public 7b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License as published by the Free Software Foundation; either 8b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version. 9b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 10b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 11b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is distributed in the hope that it will be useful, 12b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of 13b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Lesser General Public License for more details. 15b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 16b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 17b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public 18b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License along with this library; if not, write to the Free Software 19b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 21b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ============================================================================= 22b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Texas Instruments OMAP(TM) Platform Software 23b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. 24b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 25b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Use of this software is controlled by the terms and conditions found 26b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * in the license agreement under which this software has been supplied. 27b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * ============================================================================ */ 28b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 29b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @file OMX_G711Dec_Utils.h 30b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 31b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This is an header file for an audio PCM decoder that is fully 32b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * compliant with the OMX Audio specification. 33b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This the header file with the utils necesary to for the G711_DEC component. 34b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * in its code. 35b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 36b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @path $(CSLPATH)\ 37b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 38b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @rev 0.1 39b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 40b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* --------------------------------------------------------------------------- */ 41b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 42b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef OMX_G711DEC_UTILS__H 43b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_UTILS__H 44b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 45b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "LCML_DspCodec.h" 46b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Component.h> 47b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <pthread.h> 48b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 49b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 50b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 51b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 52b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def G711DEC_MAJOR_VER Define value for "major" version 53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MAJOR_VER 0xF1 56b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 57b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 58b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 59b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def G711DEC_MINOR_VER Define value for "minor" version 60b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 61b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 62b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MINOR_VER 0xF2 63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 65b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 66b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NOT_USED Define a not used value 67b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 68b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 69b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NOT_USED 10 70b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 71b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 72b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 73b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NORMAL_BUFFER Define a normal buffer value 74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 76b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NORMAL_BUFFER 0 77b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 78b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 79b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 80b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def OMX_G711DEC_DEFAULT_SEGMENT Define the default segment 81b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 82b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 83b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_DEFAULT_SEGMENT (0) 84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 85b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def OMX_G711DEC_SN_TIMEOUT Define a value for SN Timeout 88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 89b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 90b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_SN_TIMEOUT (-1) 91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 92b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 93b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def OMX_G711DEC_SN_PRIORITY Define a value for SN Priority 95b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 97b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_SN_PRIORITY (10) 98b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 99b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def OMX_G711DEC_CPU TBD, 50MHz for the moment 102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_CPU (50) 105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def G711DEC_USN_DLL_NAME Path & Name of USN DLL to be used 109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * at initialization 110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_USN_DLL_NAME "\\windows\\usn.dll64P" 114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_USN_DLL_NAME "usn.dll64P" 116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def G711DEC_USN_DLL_NAME Path & Name of DLL to be useda 121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * at initialization 122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DLL_NAME "\\windows\\g711dec_sn.dll64P" 126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DLL_NAME "g711dec_sn.dll64P" 128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def EXTRA_BUFFBYTES Num of Extra Bytes to be allocated 135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EXTRA_BUFFBYTES (256) 138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def G711D_TIMEOUT Default timeout used to come out of blocking calls 142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_TIMEOUT (1000) /* millisecs */ 145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NUM_G711DEC_INPUT_BUFFERS Number of Input Buffers 149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_INPUT_BUFFERS 1 152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NUM_G711DEC_OUTPUT_BUFFERS Number of Output Buffers 156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_OUTPUT_BUFFERS 1 159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NUM_G711DEC_OUTPUT_BUFFERS_DASF Number of Output Buffers 163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * on DASF mode 164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_OUTPUT_BUFFERS_DASF 2 167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def OUTPUT_G711DEC_BUFFER_SIZE Standart Output Buffer Size 171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OUTPUT_G711DEC_BUFFER_SIZE 160 174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def INPUT_G711DEC_BUFFER_SIZE Standart Input Buffer Size 178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INPUT_G711DEC_BUFFER_SIZE 80 182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def RTP_Framesize Size in Bytes of determined 185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * frame. Not change it 186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define RTP_Framesize 80 189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def STD_GSMFRDEC_BUF_SIZE Standart Input Buffer Size 192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define STD_G711DEC_BUF_SIZE 80 195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def STREAM_COUNT Stream Count value for 199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * LCML init. 200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define STREAM_COUNT 2 203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def INPUT_STREAM_ID Input Stream ID 207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INPUT_STREAM_ID 0 210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def MAX_NUM_OF_BUFS Max Num of Bufs Allowed 214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MAX_NUM_OF_BUFS 10 217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/ 218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** DEBUG PRINT's MACROS 219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *@Memory check; printf's; component debug */ 220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/ 221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_DEBUG 222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_PRINT 223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_MEMCHECK 224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/ 225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EXIT_COMPONENT_THRD 10 226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid* ComponentThread (void* pThreadData); 227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*======================================================================*/ 228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE 229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_DEBUG 230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(...) fprintf(stderr,__VA_ARGS__) 231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(...) 233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_MEMCHECK 236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(...) fprintf(stderr,__VA_ARGS__) 237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(...) 239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_DEBUG_MCP 243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MCP_DPRINT(...) fprintf(stderr,__VA_ARGS__) 244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MCP_DPRINT(...) 246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else /*UNDER_CE*/ 249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_DEBUG 250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(STR, ARG...) printf() 251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_MEMCHECK 255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(STR, ARG...) printf() 256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DEBUG 261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT printf 262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT printf 263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT 265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT 266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif /*UNDER_CE*/ 269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**************************************************************/ 272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_PRINT 273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_PRINT(...) printf(stderr,__VA_ARGS__) 274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_PRINT(...) 276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def WMADEC_MEMDEBUG Enable memory leaks debuf info 281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_MEMDEBUG 284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def CACHE_ALIGNMENT Buffer Cache Alignment 288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define CACHE_ALIGNMENT 128 291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def NUM_OF_PORTS Number of Comunication Port 295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_PORTS 2 298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * M A C R O S FOR MALLOC and MEMORY FREE and CLOSING PIPES 303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_NBCONF_INIT_STRUCT(_s_, _name_) \ 307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset((_s_), 0x0, sizeof(_name_)); \ 308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nSize = sizeof(_name_); \ 309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMajor = 0x1; \ 310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMinor = 0x0; \ 311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nRevision = 0x0; \ 312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nStep = 0x0 313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_OMX_MALLOC(_pStruct_, _sName_) \ 315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _pStruct_ = (_sName_*)newmalloc(sizeof(_sName_)); \ 316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(_pStruct_ == NULL){ \ 317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Malloc Failed\n",__LINE__); \ 319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorInsufficientResources; \ 321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset(_pStruct_,0,sizeof(_sName_)); \ 324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_pStruct_); 325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_OMX_MALLOC_SIZE(_ptr_, _size_,_name_) \ 327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _ptr_ = (_name_ *)newmalloc(_size_); \ 328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(_ptr_ == NULL){ \ 329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Malloc Failed\n",__LINE__); \ 331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorInsufficientResources; \ 333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset(_ptr_,0,_size_); \ 336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_ptr_); 337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DECMEMFREE_STRUCT(_pStruct_) \ 33936733d62c0d4c565da10b34978e587d0fda0f1adJames Dong G711DEC_MEMPRINT("%d :: [FREE] %p\n",__LINE__,_pStruct_); \ 340eaaadaf5ebb5e352e2ed4a12714f5d2363da0dcdJames Dong if(_pStruct_ != NULL){ \ 341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin newfree(_pStruct_); \ 342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _pStruct_ = NULL; \ 343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_NBCLOSE_PIPE(_pStruct_,err) \ 346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_DPRINT("%d :: CLOSING PIPE \n",__LINE__); \ 347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin err = close (_pStruct_); \ 348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(0 != err && OMX_ErrorNone == eError){ \ 349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorHardware; \ 350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Error while closing pipe\n",__LINE__); \ 351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_COMP_PORT_TYPE Port Type 356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_INPUT_PORT Port Type Input 358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_OUTPUT_PORT Port Type Output 360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum G711DEC_COMP_PORT_TYPE { 364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_INPUT_PORT = 0, 365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_OUTPUT_PORT 366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_COMP_PORT_TYPE; 367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_StreamType StreamType 370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_DMM Stream Type DMM 372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_INSTRM Stream Type Input 374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_OUTSTRM Stream Type Output 376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinenum G711DEC_StreamType 379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin { 380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_DMM, 381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_INSTRM, 382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_OUTSTRM 383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin }; 384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_BUFFER_Dir Direction of the Buffer 387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_DIRECTION_INPUT Direction Input 389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G711DEC_DIRECTION_INPUT Direction Output 391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum { 394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_DIRECTION_INPUT, 395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_DIRECTION_OUTPUT 396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_BUFFER_Dir; 397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_FTYPES{ 405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 FrameSizeType; 406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 NmuNLvl; 407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 NoiseLp; 408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 dBmNoise; 409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 plc; 410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_FTYPES; 411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node input parameters. 414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_AudioCodecParams 417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long iSamplingRate; 419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long iStrmId; 420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned short iAudioFormat; 421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_AudioCodecParams; 422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node alg parameters.. 426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct { 429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long usEndOfFile; 430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long usFrameLost; 431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_UAlgInBufParamStruct; 432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node alg parameters.. 436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * frameType @ Type of packaging per frame number 437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * usLastFrame @ End of decoding 438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */ 440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_FrameStruct{ 441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long frameType; /* 0: voice frame (80 bytes), 1: SID frame (22 bytes), 2: No Data (0 bytes), 3: Frame lost */ 442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long usLastFrame; 443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_FrameStruct; 444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_ParamStruct{ 446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long int usNbFrames; 447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_FrameStruct *pParamElem; 448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_ParamStruct; 449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * LCML_G711DEC_BUFHEADERTYPE 453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct LCML_G711DEC_BUFHEADERTYPE { 456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_BUFFER_Dir eDir; 457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* buffer; 458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_UAlgInBufParamStruct *pIpParam; 459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_FrameStruct *pFrameParam; 460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_ParamStruct *pBufferParam; 461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin DMM_BUFFER_OBJ* pDmmBuf; 462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}LCML_G711DEC_BUFHEADERTYPE; 463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE 465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_EXPORT WinCE Implicit Export Syntax 472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport) 475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_StartComponentThread(OMX_HANDLETYPE pHandle); 481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_StopComponentThread(OMX_HANDLETYPE pHandle); 482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_FreeCompResources(OMX_HANDLETYPE pComponent); 483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct _G711DEC_BUFFERLIST G711DEC_BUFFERLIST; 485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Structure for buffer list 489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstruct _G711DEC_BUFFERLIST{ 492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS]; /* records buffer header send by client */ 493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bufferOwner[MAX_NUM_OF_BUFS]; 494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bBufferPending[MAX_NUM_OF_BUFS]; 495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 numBuffers; 496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}; 497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G711ENC_PORT_TYPE Structure for PortFormat details 501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_PORT_TYPE { 504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hTunnelComponent; 505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nTunnelPort; 506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERSUPPLIERTYPE eSupplierSetting; 507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 nBufferCnt; 508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE* pPortFormat; 509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_PORT_TYPE; 510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_DmmMap(DSP_HPROCESSOR ProcHandle, int size, 512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin void* pArmPtr, DMM_BUFFER_OBJ* pDmmBuf); 513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_DmmUnMap(DSP_HPROCESSOR ProcHandle, void* pMapPtr, 514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin void* pResPtr); 515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */ 516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Component private data 518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */ 520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_COMPONENT_PRIVATE 521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBufHeader[NUM_OF_PORTS]; 524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Structure of callback pointers */ 527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CALLBACKTYPE cbInfo; 528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_PORT_TYPE *pCompPort[NUM_OF_PORTS]; 530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Handle for use with async callbacks */ 532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE sPortParam; 533b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 534b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Input port parameters */ 535b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat; 536b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 537b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Output port parameters */ 538b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat; 539b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 540b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This will contain info like how many buffers 541b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin are there for input/output ports, their size etc, but not 542b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin BUFFERHEADERTYPE POINTERS. */ 543b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS]; 544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** G711 Component Parameters */ 546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PCMMODETYPE* g711Params[NUM_OF_PORTS]; 547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This is component handle */ 549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_COMPONENTTYPE* pHandle; 550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Current state of this component */ 552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE curState; 553b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 554b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The component thread handle */ 555b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_t ComponentThread; 556b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 557b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int dataPipe[2]; 559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int cmdPipe[2]; 562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 563b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int cmdDataPipe[2]; 565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Set to indicate component is stopping */ 567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsStopping; 568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag set when the EOS marker is sent */ 570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsEOFSent; 571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nIpBuf; 574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nOpBuf; 577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of Buffers In the Application*/ 579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 app_nBuf; 580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** LCML Number Input Buffer Received*/ 582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntIp; 583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** LCML Number Output Buffer Received*/ 585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntOpReceived; 586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Num Reclaimed OutPut Buff */ 588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Reclaimed_Op_Buff; 589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Num Sent Input Buff */ 591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Sent_Ip_Buff; 592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 593b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Num Sent Output Buff Issued */ 594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Op_Issued; 595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 596b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** LCML Handle */ 597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE pLcmlHandle; 598b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 599b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** LCML Buffer Header */ 600b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_G711DEC_BUFHEADERTYPE *pLcmlBufHeader[2]; 601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for G711 mode */ 603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 iG711Mode; 604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 605b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for DASF mode */ 606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 dasfmode; 607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 608b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for ACDN mode */ 609b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 acdnmode; 610b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 611b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for frame size type mode */ 612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 fsizemode; 613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for fram type mode */ 614b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 ftype; 615b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Noise Level NMU */ 616b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 nmulevel; 617b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Noise LP */ 618b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 noiselp; 619b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Noise level in dBm */ 620b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 dbmnoise; 621b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Noise level in dBm */ 622b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 packetlostc; 623b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 624b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Writing pipe Used for DSP_RENDERING_ON */ 625b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int fdwrite; 626b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 627b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Reading pipe Used for DSP_RENDERING_ON */ 628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int fdread; 629b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 630b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* ID stream ID*/ 631b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 streamID; 632b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 633b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Flag for Port Defs Allocated*/ 634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bPortDefsAllocated; 635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Flag for Component Thread Started*/ 637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bCompThreadStarted; 638b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 639b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Mark data */ 640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PTR pMarkData; 641b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Mark buffer */ 643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_MARKTYPE *pMarkBuf; 644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Mark target component */ 646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hMarkTargetComponent; 647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag set when buffer should not be queued to the DSP */ 649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bBypassDSP; 650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 651b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Input buffer list */ 652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_BUFFERLIST *pInputBufferList; 653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 654b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Output buffer list */ 655b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_BUFFERLIST *pOutputBufferList; 656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 657b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** LCML stream attributes */ 658b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_STRMATTR *strmAttr; 659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 660b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Component version */ 661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nVersion; 662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 663b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Play Complete Flag */ 664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bPlayCompleteFlag; 665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of Bytes holding to be sent*/ 667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nHoldLength; 668b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 669b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to the data holding to be sent*/ 670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* pHoldBuffer; 671b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 672b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag set when LCML handle is opened */ 673b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S16 bLcmlHandleOpened; 674b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 675b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keeps track of the number of nFillThisBufferCount() calls */ 676b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nFillThisBufferCount; 677b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 678b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keeps track of the number of nFillBufferDoneCount() calls */ 679b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nFillBufferDoneCount; 680b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 681b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keeps track of the number of nEmptyThisBufferCount() calls */ 682b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nEmptyThisBufferCount; 683b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 684b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keeps track of the number of nEmptyBufferDoneCount() calls */ 685b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nEmptyBufferDoneCount; 686b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 687b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Parameters for the Audio Codec */ 688b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_AudioCodecParams *pParams; 689b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 690b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Init Params Initialized */ 691b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bInitParamsInitialized; 692b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 693b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for bIdleCommandPending */ 694b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIdleCommandPending; 695b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 696b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Array of Input Buffers that are pending to sent due State = Idle */ 697b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS]; 698b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 699b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of Input Buffers that are pending to sent due State = Idle */ 700b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nNumInputBufPending; 701b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 702b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Array of Output Buffers that are pending to sent due State = Idle */ 703b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS]; 704b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 705b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of Output Buffers that are pending to sent due State = Idle */ 706b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nNumOutputBufPending; 707b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 708b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Reenabling Ports*/ 709b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bJustReenabled; 710b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 711b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Invalid Frame Count*/ 712b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nInvalidFrameCount; 713b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 714b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Writes While Paused */ 715b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nDataWritesWhilePaused; 716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 717b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for bDisableCommandPending*/ 718b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDisableCommandPending; 719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 720b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for bDisableCommandParam*/ 721b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDisableCommandParam; 722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 723b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Enabling the port*/ 724b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bEnableCommandPending; 725b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 726b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag for Enabling the port*/ 727b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bEnableCommandParam; 728b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 729b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag to set when socket node stop callback should not transition 730b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin component to OMX_StateIdle */ 731b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bNoIdleOnStop; 732b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 733b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag set when socket node is stopped */ 734b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDspStoppedWhileExecuting; 735b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 736b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of outstanding FillBufferDone() calls */ 737b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S32 nOutStandingFillDones; 738b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 739b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Stop Codec Command Sent Flag*/ 740b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 bStopSent; 741b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 742b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bLoadedCommandPending; 743b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 744b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_COMPONENTROLETYPE componentRole; 745b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 746b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Device string */ 747b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STRING* sDeviceString; 748b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Removing sleep() calls. Definition. */ 749b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE 750b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t AlloBuf_mutex; 751b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t AlloBuf_threshold; 752b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 753b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 754b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t InLoaded_mutex; 755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t InLoaded_threshold; 756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 758b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t InIdle_mutex; 759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t InIdle_threshold; 760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 761b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 762b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event AlloBuf_event; 763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event InLoaded_event; 766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 768b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event InIdle_event; 769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 770b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /**************************/ 772b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 nUnhandledFillThisBuffers; 773b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 774b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /**Keep buffer tickcount*/ 775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 arrBufIndexTick[MAX_NUM_OF_BUFS]; 776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keep buffer timestamps **/ 778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 arrBufIndex[MAX_NUM_OF_BUFS]; 779b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 780b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Index to arrBufIndex[], used for input buffer timestamps */ 781b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 IpBufindex; 782b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 783b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Index to arrBufIndex[], used for output buffer timestamps */ 784b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 OpBufindex; 785b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to RM callback **/ 787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED 788b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin RMPROXY_CALLBACKTYPE rmproxyCallback; 789b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 790b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 791b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bPreempted; 792b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 793b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 794b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_COMPONENT_PRIVATE; 795b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 796b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum OMX_G711DEC_INDEXAUDIOTYPE { 797b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG711DecModeAcdnConfig = 0xFF000001, 798b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG711DecModeDasfConfig, 799b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG711DecHeaderInfoConfig, 800b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG711DecFrameParams, 801b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG711DecDataPath 802b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}OMX_G711DEC_INDEXAUDIOTYPE; 803b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 804b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED 805b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/ 806b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** RESOURCE MANAGER CALLBACK */ 807b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*=======================================================================*/ 808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData); 809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================*/ 810b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECGetCorresponding_LCMLHeader(OMX_U8 *pBuffer, 813b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_DIRTYPE eDir, 814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_G711DEC_BUFHEADERTYPE **ppLcmlHdr); 815b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/***********CALLBACK EVENT TO SN**********/ 816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECLCML_Callback (TUsnCodecEvent event,void * args [10]); 817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFill_LCMLInitParams(OMX_HANDLETYPE pHandle, 819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_DSP *plcml_Init,OMX_U16 arr[]); 820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 821b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECGetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_DIRTYPE *eDir); 822b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DECHandleCommand (G711DEC_COMPONENT_PRIVATE *pComponentPrivate); 824b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 825b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECHandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader, 826b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G711DEC_COMPONENT_PRIVATE *pComponentPrivate); 827b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 828b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECHandleDataBuf_FromLCML(G711DEC_COMPONENT_PRIVATE* pComponentPrivate, 829b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_G711DEC_BUFHEADERTYPE* msgBuffer); 830b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 831b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid AddHeader(BYTE **pFileBuf); 832b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid ResetPtr(BYTE **pFileBuf); 833b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 834b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_HANDLETYPE G711DECGetLCMLHandle(); 835b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFreeLCMLHandle(); 836b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_CleanupInitParams(OMX_HANDLETYPE pComponent); 837b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 838b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_SetPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir); 839b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_ClearPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir) ; 840b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 841b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DEC_IsPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir); 842b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent); 843b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DEC_IsValid(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U8 *pBuffer, OMX_DIRTYPE eDir) ; 844b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_TransitionToIdle(G711DEC_COMPONENT_PRIVATE *pComponentPrivate); 845b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 846b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif /* OMX_G711DECODER_H*/ 847