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