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