1fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 2fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* 3fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/ 4fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 5fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is free software; you can redistribute it and/or 6fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public 7fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License as published by the Free Software Foundation; either 8fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version. 9fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 10fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 11fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is distributed in the hope that it will be useful, 12fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of 13fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Lesser General Public License for more details. 15fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 16fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 17fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public 18fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License along with this library; if not, write to the Free Software 19fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 21fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_AACENC_UTILS__H 22fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACENC_UTILS__H 23fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 24fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Component.h> 25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_TI_Common.h> 26b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_TI_Debug.h> 27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "LCML_DspCodec.h" 28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "OMX_AacEncoder.h" 29b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 30b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 31b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h> 32b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_MAJOR_VER 0x0001 35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_MINOR_VER 0x0001 36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NOT_USED 10 37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NORMAL_BUFFER 0 38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACENC_DEFAULT_SEGMENT (0) 39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACENC_SN_TIMEOUT (1000) 40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACENC_SN_PRIORITY (10) 41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACENC_NUM_DLLS (2) 42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_CPU_USAGE 45 43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _ERROR_PROPAGATION__ 44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define MPEG4AACENC_MAX_OUTPUT_FRAMES 24 45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef ANDROID 47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define ANDROID 48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 50b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef ANDROID 51b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #undef LOG_TAG 52b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define LOG_TAG "OMX_AACENC" 53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* PV opencore capability custom parameter index */ 55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define PV_OMX_COMPONENT_CAPABILITY_TYPE_INDEX 0xFF7A347 56b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__ 59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #include "perf.h" 60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Component.h> 62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_CONF_INIT_STRUCT(_s_, _name_) \ 64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin memset((_s_), 0x0, sizeof(_name_)); \ 65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin (_s_)->nSize = sizeof(_name_); \ 66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin (_s_)->nVersion.s.nVersionMajor = AACENC_MAJOR_VER; \ 67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin (_s_)->nVersion.s.nVersionMinor = AACENC_MINOR_VER; \ 68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin (_s_)->nVersion.s.nRevision = 0x0001; \ 69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin (_s_)->nVersion.s.nStep = 0x0 70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_CONF_CHECK_CMD(_ptr1, _ptr2, _ptr3) \ 72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ \ 73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin if(!_ptr1 || !_ptr2 || !_ptr3){ \ 74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMXDBG_PRINT(stderr, ERROR, 4, 0, "%d :: Error bad parameter \n",__LINE__);\ 75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin eError = OMX_ErrorBadParameter; \ 76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin goto EXIT; \ 77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin } \ 78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} 79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_CONF_SET_ERROR_BAIL(_eError, _eCode)\ 81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ \ 82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin _eError = _eCode; \ 83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin goto OMX_CONF_CMD_BAIL; \ 84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} 85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_CLOSE_PIPE(_pStruct_,err)\ 8700f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny Wong OMXDBG_PRINT(stderr, PRINT, 2, OMX_DBG_BASEMASK, "%d :: CLOSING PIPE \n",__LINE__);\ 88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin err = close (_pStruct_);\ 89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin if(0 != err && OMX_ErrorNone == eError){\ 90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin eError = OMX_ErrorHardware;\ 91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMXDBG_PRINT(stderr, ERROR, 4, 0, "%d :: Error while closing pipe\n",__LINE__);\ 92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin goto EXIT;\ 93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin } 94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_DPRINT_ADDRESS(_s_, _ptr_) \ 96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMXDBG_PRINT(stderr, PRINT, 2, 0, "%s = %p\n", _s_, _ptr_); 97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef SWAT_ANALYSIS 100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* debug message */ 102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AACENC_DEBUG 103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_ERROR 104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE 107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACENC_ERROR 108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define AACENC_EPRINT(...) fprintf(stderr,__VA_ARGS__) 109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define AACENC_EPRINT(...) 111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* AAC_ERROR*/ 112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACENC_DEBUG 115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define AACENC_DPRINT(...) fprintf(stderr,__VA_ARGS__) 116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define AACENC_DPRINT(...) 118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else /*UNDER_CE*/ 121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACENC_DEBUG 123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define AACENC_DPRINT(STR, ARG...) printf() 124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /*UNDER_CE*/ 128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */ 130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def AACENC_USN_DLL_NAME USN DLL name 132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */ 134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE 135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_USN_DLL_NAME "\\windows\\usn.dll64P" 136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_USN_DLL_NAME "usn.dll64P" 138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */ 141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def AACENC_DLL_NAME AAC Enc Encoder socket node DLL name 143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */ 145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE 146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_DLL_NAME "\\windows\\mpeg4aacenc_sn.dll64P" 147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACENC_DLL_NAME "mpeg4aacenc_sn.dll64P" 149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct 152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bLastBuffer; 154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACENC_UAlgInBufParamStruct; 155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct 157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin unsigned long unNumFramesEncoded; 159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin unsigned long unFrameSizes[MPEG4AACENC_MAX_OUTPUT_FRAMES]; 160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACENC_UAlgOutBufParamStruct; 161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct PV_OMXComponentCapabilityFlagsType 164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin ////////////////// OMX COMPONENT CAPABILITY RELATED MEMBERS (for opencore compatability) 166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iIsOMXComponentMultiThreaded; 167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc; 168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentSupportsExternalInputBufferAlloc; 169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentSupportsMovableInputBuffers; 170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentSupportsPartialFrames; 171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentNeedsNALStartCode; 172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL iOMXComponentCanHandleIncompleteFrames; 173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} PV_OMXComponentCapabilityFlagsType; 174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*This enum must not be changed.*/ 176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum COMP_PORT_TYPE 177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin INPUT_PORT = 0, 179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OUTPUT_PORT 180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}COMP_PORT_TYPE; 181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin DIRECTION_INPUT, 185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin DIRECTION_OUTPUT 186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}BUFFER_Dir; 187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct BUFFS 189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin char BufHeader; 191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin char Buffer; 192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}BUFFS; 193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct BUFFERHEADERTYPE_INFO 195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBufHeader[MAX_NUM_OF_BUFS]; 197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFS bBufOwner[MAX_NUM_OF_BUFS]; 198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}BUFFERHEADERTYPE_INFO; 199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef OMX_ERRORTYPE (*fpo)(OMX_HANDLETYPE); 201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AACENC_AudioCodecParams 203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin unsigned long iSamplingRate; 205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin unsigned long iStrmId; 206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin unsigned short iAudioFormat; 207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACENC_AudioCodecParams; 208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* enum AACENC_BOOL_TYPE */ 210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* brief Enumerated type for Boolean decision */ 211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_FALSE = 0, /*!< To indicate False */ 215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_TRUE = 1 /*!< To indicate True */ 216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACENC_BOOL_TYPE; 217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*! \enum AACENC_OBJ_TYP */ 219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*! \brief enumerated type for output format */ 220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_OBJ_TYP_LC = 2, /*!< AAC Low Complexity */ 223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_OBJ_TYP_HEAAC = 5, /*!< HE AAC */ 224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_OBJ_TYP_PS = 29 /*!< AAC LC + SBR + PS */ 225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACENC_OBJ_TYP; 226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*! \enum AACENC_TRANSPORT_TYPE */ 228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*! \brief Enumerated type for output file format */ 229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_TT_RAW = 0, /*!< Raw Output Format */ 232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_TT_ADIF = 1, /*!< ADIF File Format */ 233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_TT_ADTS = 2 /*!< ADTS File Format */ 234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACENC_TRANSPORT_TYPE; 235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */ 237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** MPEG4AACENC_UALGParams 238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param lOutputFormat - To set interleaved/Block format:Refer to IAUDIO_PcmFormat. 240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param DownSampleSbr - 241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */ 243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct 244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin long size; /* size of this structure */ 246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin long bitRate; /* Average bit rate in bits per second */ 247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin long sampleRate; /* Samplling frequency in Hz */ 248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin long numChannels; /* Number of Channels: IAUDIO_ChannelId */ 249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}MPEG4AUDENC_UALGdynamicparams; 251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct MPEG4AACENC_UALGParams 254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int size; 256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin MPEG4AUDENC_UALGdynamicparams audenc_dynamicparams; 257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /*!< generic encoder dynamic parameters */ 258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /* For RESET Command */ 260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_BOOL_TYPE useTns; /*!< Flag for activating TNS feature */ 261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_BOOL_TYPE usePns; /*!< Flag for activating PNS feature */ 262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_OBJ_TYP outObjectType; /*!< Output Object Type LC/HE/HEv2 */ 264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_TRANSPORT_TYPE outFileFormat; /*!< Output File Format */ 265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} MPEG4AACENC_UALGParams; 267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum { 269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IUALG_CMD_STOP = 0, 270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IUALG_CMD_PAUSE = 1, 271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IUALG_CMD_GETSTATUS = 2, 272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IUALG_CMD_SETSTATUS = 3, 273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IUALG_CMD_USERCMDSTART = 100 274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}IUALG_Cmd; 275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum { 277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IAUDIO_BLOCK=0, 278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin IAUDIO_INTERLEAVED 279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} IAUDIO_AacFormat; 280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct LCML_AACENC_BUFHEADERTYPE 282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFER_Dir eDir; 284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE* buffer; 285fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_UAlgInBufParamStruct *pIpParam; 286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_UAlgOutBufParamStruct *pOpParam; 287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}LCML_AACENC_BUFHEADERTYPE; 288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct _BUFFERLIST BUFFERLIST; 292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinstruct _BUFFERLIST 294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE sBufHdr; /* actual buffer header */ 296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS]; /* records buffer header send by client */ 297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bufferOwner[MAX_NUM_OF_BUFS]; 298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 numBuffers; 299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bBufferPending[MAX_NUM_OF_BUFS]; 300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERLIST *pNextBuf; 301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERLIST *pPrevBuf; 302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}; 303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE 305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #ifndef _OMX_EVENT_ 306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define _OMX_EVENT_ 307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin typedef struct OMX_Event { 308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin HANDLE event; 309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin } OMX_Event; 310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #endif 311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int OMX_CreateEvent(OMX_Event *event); 312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int OMX_SignalEvent(OMX_Event *event); 313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int OMX_WaitForEvent(OMX_Event *event); 314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int OMX_DestroyEvent(OMX_Event *event); 315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 3170db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/* ======================================================================= */ 3180db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/** 3190db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * pthread variable to indicate OMX returned all buffers to app 3200db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong */ 3210db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/* ======================================================================= */ 3220db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dongpthread_mutex_t bufferReturned_mutex; 3230db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dongpthread_cond_t bufferReturned_condition; 324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AACENC_COMPONENT_PRIVATE 327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Array of pointers to BUFFERHEADERTYPE structues 329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin This pBufHeader[INPUT_PORT] will point to all the 330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERHEADERTYPE structures related to input port, 331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin not just one structure. Same is for output port 332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin also. */ 333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBufHeader[NUM_OF_PORTS]; 334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERHEADERTYPE_INFO BufInfo[NUM_OF_PORTS]; 336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_CALLBACKTYPE cbInfo; 338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Handle for use with async callbacks */ 339fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PORT_PARAM_TYPE sPortParam; 340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 341fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PRIORITYMGMTTYPE* sPriorityMgmt; 342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 343b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 344b65f253fdc60f6208a54911bee793d225f23cdf8James Dong RMPROXY_CALLBACKTYPE rmproxyCallback; 345b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 346b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bPreempted; 348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat; 350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat; 352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bIsBufferOwned[NUM_OF_PORTS]; 354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** This will contain info like how many buffers 355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin are there for input/output ports, their size etc, but not 356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERHEADERTYPE POINTERS. */ 357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 abc; 358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 def; 360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS]; 362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_AUDIO_PARAM_AACPROFILETYPE* aacParams[NUM_OF_PORTS]; 364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_AUDIO_PARAM_PCMMODETYPE* pcmParam[NUM_OF_PORTS]; 366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** This is component handle */ 368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_COMPONENTTYPE* pHandle; 369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 370fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Current state of this component */ 371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STATETYPE curState; 372fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** The component thread handle */ 374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_t ComponentThread; 375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 376fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 377fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int dataPipe[2]; 378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int cmdPipe[2]; 381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin int cmdDataPipe[2]; 383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Set to indicate component is stopping */ 385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bIsStopping; 386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of input buffers at runtime */ 388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nRuntimeInputBuffers; 389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of output buffers at runtime */ 391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nRuntimeOutputBuffers; 392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bIsThreadstop; 394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bIsEOFSent; 396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_nIpBuf; 399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL CustomConfiguration; 401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__ 403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin PERF_OBJHANDLE pPERF, pPERFcomp; 404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nLcml_nCntIp; 405fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nLcml_nCntOpReceived; 406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_nOpBuf; 410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 app_nBuf; 412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_nCntIp; 414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_nCntOpReceived; 416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_nCntApp; 418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 lcml_compID; 420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 num_Reclaimed_Op_Buff; 422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 num_Sent_Ip_Buff; 424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 num_Op_Issued; 426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_HANDLETYPE pLcmlHandle; 428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_AACENC_BUFHEADERTYPE *pLcmlBufHeader[2]; 430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin MPEG4AACENC_UALGParams* ptAlgDynParams; 432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 433fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_AudioCodecParams* pParams; 434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 ulSamplingRate; 436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 437fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 unNumChannels; 438fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 439fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 unBitrate; 440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 nObjectType; 442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bitRateMode; 444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 File_Format; 446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 dasfmode; 448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 EmptybufferdoneCount; 450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 EmptythisbufferCount; 452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 FillbufferdoneCount; 454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 FillthisbufferCount; 456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bPortDefsAllocated; 458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bCompThreadStarted; 460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PTR pMarkData; 462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_MARKTYPE *pMarkBuf; 464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_HANDLETYPE hMarkTargetComponent; 466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bBypassDSP; 468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERLIST *pInputBufferList; 470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin BUFFERLIST *pOutputBufferList; 472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_STRMATTR *strmAttr; 474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nVersion; 476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING cComponentName; 478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE ComponentVersion; 480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 streamID; 482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bInputBufferHeaderAllocated; 484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Stores input buffers while paused */ 485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS]; 486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of input buffers received while paused */ 488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nNumInputBufPending; 489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Stores output buffers while paused */ 491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS]; 492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of output buffers received while paused */ 494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nNumOutputBufPending; 495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 PendingInPausedBufs; 498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pInBufHdrPausedPending[MAX_NUM_OF_BUFS]; 499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 PendingOutPausedBufs; 500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutBufHdrPausedPending[MAX_NUM_OF_BUFS]; 501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bPlayCompleteFlag; 505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag set when a disable command is pending */ 507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bDisableCommandPending; 508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Parameter for pending disable command */ 510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bDisableCommandParam; 511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag set when a disable command is pending */ 513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bEnableCommandPending; 514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Parameter for pending disable command */ 516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nEnableCommandParam; 517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag to set when socket node stop callback should not transition 519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin component to OMX_StateIdle */ 520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bNoIdleOnStop; 521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag set when idle command is pending */ 523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /* OMX_U32 bIdleCommandPending; */ 524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag set when pause command is pending */ 526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bPauseCommandPending; 527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Flag set when socket node is stopped */ 529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 bDspStoppedWhileExecuting; 530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of outstanding FillBufferDone() calls */ 532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 nOutStandingFillDones; 533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Number of outstanding EmptyBufferDone() calls */ 535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 nOutStandingEmptyDones; 536fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *LastOutputBufferHdrQueued; 538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE 540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_mutex_t AlloBuf_mutex; 541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_cond_t AlloBuf_threshold; 542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 543fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t codecStop_mutex; 545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t codecStop_threshold; 546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 codecStop_waitingsignal; 547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t codecFlush_mutex; 549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t codecFlush_threshold; 550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 codecFlush_waitingsignal; 551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 552b65f253fdc60f6208a54911bee793d225f23cdf8James Dong pthread_mutex_t InLoaded_mutex; 553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_cond_t InLoaded_threshold; 554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_mutex_t InIdle_mutex; 557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin pthread_cond_t InIdle_threshold; 558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 559fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 560fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 nUnhandledFillThisBuffers; 561fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 nUnhandledEmptyThisBuffers; 562fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFlushOutputPortCommandPending; 563fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFlushInputPortCommandPending; 564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Event AlloBuf_event; 567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Event InLoaded_event; 570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Event InIdle_event; 573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bLoadedCommandPending; 578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bIsInvalidState; 579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void* PtrCollector[6]; 580fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 581fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BUFFERHEADERTYPE *LastOutbuf; 582fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PARAM_COMPONENTROLETYPE componentRole; 583fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 FramesPer_OutputBuffer; 584fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 585fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /* backup pointer for LCML */ 586fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void* ptrLibLCML; 587fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 588fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bCodecDestroyed; 589fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bGotLCML; 590fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 591fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING* sDeviceString; 592fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFirstOutputBuffer; 593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 594fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Keep buffer timestamps **/ 595fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S64 timestampBufIndex[MAX_NUM_OF_BUFS]; 596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Index to arrBufIndex[], used for input buffer timestamps */ 597fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 IpBufindex; 598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Index to arrBufIndex[], used for output buffer timestamps */ 599fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 OpBufindex; 600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 601fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /** Keep buffer tickcount **/ 602fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 tickcountBufIndex[MAX_NUM_OF_BUFS]; 603fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 604fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin PV_OMXComponentCapabilityFlagsType iPVCapabilityFlags; 605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin struct OMX_TI_Debug dbg; 607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 608eced958917cca059f5e7222a83a44adc4e259c67Benny Wong /* Reference count for pending state change requests */ 609eced958917cca059f5e7222a83a44adc4e259c67Benny Wong OMX_U32 nPendingStateChangeRequests; 610eced958917cca059f5e7222a83a44adc4e259c67Benny Wong pthread_mutex_t mutexStateChangeRequest; 611eced958917cca059f5e7222a83a44adc4e259c67Benny Wong pthread_cond_t StateChangeCondition; 612eced958917cca059f5e7222a83a44adc4e259c67Benny Wong 613fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACENC_COMPONENT_PRIVATE; 614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCGetCorresponding_LCMLHeader(AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U8 *pBuffer, 616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_DIRTYPE eDir, 617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_AACENC_BUFHEADERTYPE **ppLcmlHdr); 618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCLCML_Callback(TUsnCodecEvent event,void * args [10]); 620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCFill_LCMLInitParams(OMX_HANDLETYPE pHandle, 622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_DSP *plcml_Init,OMX_U16 arr[]); 623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCGetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_DIRTYPE *eDir); 625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACENCHandleCommand(AACENC_COMPONENT_PRIVATE *pComponentPrivate); 627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 628fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCHandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader, 629fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin AACENC_COMPONENT_PRIVATE *pComponentPrivate); 630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint AACEnc_GetSampleRateIndexL( const int aRate); 632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_HANDLETYPE AACENCGetLCMLHandle(AACENC_COMPONENT_PRIVATE *pComponentPrivate); 634fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 635fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENC_CleanupInitParams(OMX_HANDLETYPE pHandle); 636fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 637fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid AACENC_SetPending(AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber); 638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid AACENC_ClearPending(AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber) ; 640fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACENC_IsPending(AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir); 642fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 643fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =========================================================== */ 644fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 645fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* AACENC_TransitionToIdle() Transitions component to idle 646fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* 647fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* 648fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @param pComponentPrivate Component private data 649fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* 650fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @return OMX_ErrorNone = No error 651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* OMX Error code = Error 652fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/ 653fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */ 654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENC_TransitionToPause(AACENC_COMPONENT_PRIVATE *pComponentPrivate); 656fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 657fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent); 658fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 659fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENCWriteConfigHeader(AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr); 660fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 661b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 662b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid AACENC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData); 663b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 664fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 665fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE 666fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 667fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else 668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* WinCE Implicit Export Syntax */ 669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport) 670fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 672fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 673fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 674fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENC_StartComponentThread(OMX_HANDLETYPE pHandle); 675fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 676fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENC_StopComponentThread(OMX_HANDLETYPE pHandle); 677fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 678fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACENC_FreeCompResources(OMX_HANDLETYPE pComponent); 679fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 680eced958917cca059f5e7222a83a44adc4e259c67Benny WongOMX_ERRORTYPE AddStateTransition(AACENC_COMPONENT_PRIVATE* pComponentPrivate); 681eced958917cca059f5e7222a83a44adc4e259c67Benny WongOMX_ERRORTYPE RemoveStateTransition(AACENC_COMPONENT_PRIVATE* pComponentPrivate, OMX_BOOL bEnableSignal); 682eced958917cca059f5e7222a83a44adc4e259c67Benny Wong 683b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* =========================================================================*/ 6840db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/** func AACENC_HandleUSNError 6850db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 6860db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * desc Handles error messages returned by the dsp 6870db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 6880db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong *@return n/a 6890db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong */ 690b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* =========================================================================*/ 691b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid AACENC_HandleUSNError (AACENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U32 arg); 692b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 693eced958917cca059f5e7222a83a44adc4e259c67Benny Wong 694fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 695fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 696fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 6970db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/*=======================================================================*/ 6980db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/** @fn SignalIfAllBuffersAreReturned 6990db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @brief Sends pthread signal to indicate OMX has returned all buffers to app 7000db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 7010db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @param none 7020db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 7030db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @Return none 7040db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 7050db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong */ 7060db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/*=======================================================================*/ 7070db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dongvoid SignalIfAllBuffersAreReturned(AACENC_COMPONENT_PRIVATE *pComponentPrivate); 708fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 7090db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/* ====================================================================== */ 7100db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/*@AACENC_IncrementBufferCounterByOne() This function is used by the component 7110db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * to atomically increment some input or output buffer counter 7120db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 7130db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @param mutex pointer to mutex for synchronizing the value change on 7140db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * the counter 7150db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @param counter the buffer counter to be changed 7160db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * 7170db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @post the buffer counter's value will be incremented by one. 7180db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong * @return None 7190db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong */ 7200db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dong/* ====================================================================== */ 7210db3b90dbc46ddaa275f66c94c0c963b6cbd535eJames Dongvoid AACENC_IncrementBufferCounterByOne(pthread_mutex_t* mutex, OMX_U32 *counter); 722