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