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/* =============================================================================
22fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*             Texas Instruments OMAP(TM) Platform Software
23fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  (c) Copyright Texas Instruments, Incorporated.  All Rights Reserved.
24fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  Use of this software is controlled by the terms and conditions found
26fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  in the license agreement under which this software has been supplied.
27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* ============================================================================ */
28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
29fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @file OMX_WbAmrEnc_Utils.h
30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* This is an header file for an WBAMR Encoder that is fully
32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* compliant with the OMX Audio specification 1.5.
33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* This the file that the application that uses OMX would include in its code.
34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @path $(CSLPATH)\OMAPSW_MPU\linux\audio\src\openmax_il\wbamr_enc\inc
36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @rev 1.0
38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* --------------------------------------------------------------------------- */
40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ----------------------------------------------------------------------------
41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*!
42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! Revision History
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! ===================================
44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 21-sept-2006 bk: updated review findings for alpha release
45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 24-Aug-2006 bk: Khronos OpenMAX (TM) 1.0 Conformance tests some more
46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 18-July-2006 bk: Khronos OpenMAX (TM) 1.0 Conformance tests validated for few cases
47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 21-Jun-2006 bk: Khronos OpenMAX (TM) 1.0 migration done
48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 22-May-2006 bk: DASF recording quality improved
49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 19-Apr-2006 bk: DASF recording speed issue resloved
50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 23-Feb-2006 bk: DASF functionality added
51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 18-Jan-2006 bk: Repated recording issue fixed and LCML changes taken care
52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 14-Dec-2005 bk: Initial Version
53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 16-Nov-2005 bk: Initial Version
54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 23-Sept-2005 bk: Initial Version
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 10-Sept-2005 bk: Initial Version
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! 10-Sept-2005 bk:
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*! This is newest file
58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* =========================================================================== */
59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_WBAMRENC_UTILS__H
60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_WBAMRENC_UTILS__H
61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "LCML_DspCodec.h"
63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <semaphore.h>
64b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
65b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
66b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h>
67b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
70b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include "perf.h"
71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Component.h>
74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "OMX_TI_Common.h"
75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "OMX_TI_Debug.h"
76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef DSP_RENDERING_ON
77b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <AudioManagerAPI.h>
78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
81b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define sleep Sleep
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef ANDROID
85b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define ANDROID
86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef ANDROID
89b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#undef LOG_TAG
90b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define LOG_TAG "OMX_WBAMRENC"
91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
92b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* PV opencore capability custom parameter index */
93b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define PV_OMX_COMPONENT_CAPABILITY_TYPE_INDEX 0xFF7A347
94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_DEBUG   Turns debug messaging on and off
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMRENC_DEBUG
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_MEMCHECK   Turns memory messaging on and off
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMRENC_MEMCHECK
108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_DEBUGMEM   Turns memory leaks messaging on and off.
112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         APP_DEBUGMEM must be defined in Test App in order to get
113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         this functionality On.
114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMRENC_DEBUGMEM
117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*#define WBAMRENC_DEBUGMEM*/
118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
121b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *  M A C R O S FOR MEMORY and CLOSING PIPES
122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_WBCONF_INIT_STRUCT(_s_, _name_) \
126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    memset((_s_), 0x0, sizeof(_name_)); \
127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nSize = sizeof(_name_);      \
128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMajor = 0x1;  \
129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMinor = 0x0;  \
130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nRevision = 0x0;      \
131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nStep = 0x0
132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_WBCLOSE_PIPE(_pStruct_,err)\
13400f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny Wong    OMXDBG_PRINT(stderr, BUFFER, 2, OMX_DBG_BASEMASK, "Closing pipes = %d\n",_pStruct_);\
135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    err = close (_pStruct_);\
136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    if(0 != err && OMX_ErrorNone == eError){\
137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        eError = OMX_ErrorHardware;\
13800f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny Wong        OMXDBG_PRINT(stderr, ERROR, 4, OMX_DBG_BASEMASK, "Error while closing pipe\n");\
139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        goto EXIT;\
140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    }
141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_OMX_ERROR_EXIT(_e_, _c_, _s_)\
143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    _e_ = _c_;\
14400f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny Wong    OMXDBG_PRINT(stderr, ERROR, 4, OMX_DBG_BASEMASK, "Error Name: %s : Error Num = %x", _s_, _e_);\
145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    goto EXIT;
146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_SAMPLING_FREQUENCY   Sampling frequency
150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_SAMPLING_FREQUENCY 16000
153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_CPU_LOAD                    CPU Load in MHz
156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_CPU_LOAD 20
159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_MAX_NUM_OF_BUFS   Maximum number of buffers
162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define WBAMRENC_MAX_NUM_OF_BUFS 15
165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_NUM_OF_PORTS   Number of ports
168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_NUM_OF_PORTS 2
171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_XXX_VER    Component version
174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_MAJOR_VER 0xF1
177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_MINOR_VER 0xF2
178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_NOT_USED    Defines a value for "don't care" parameters
181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_NOT_USED 10
184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_NORMAL_BUFFER  Defines flag value with all flags off
187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_NORMAL_BUFFER 0
190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_WBAMRENC_DEFAULT_SEGMENT    Default segment ID for the LCML
193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_DEFAULT_SEGMENT (0)
196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_WBAMRENC_SN_TIMEOUT    Timeout value for the socket node
199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_SN_TIMEOUT (-1)
202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_WBAMRENC_SN_PRIORITY   Priority for the socket node
205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_SN_PRIORITY (10)
208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_WBAMRENC_NUM_DLLS   number of DLL's
211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_NUM_DLLS (2)
214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_USN_DLL_NAME   USN DLL name
217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
220b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define WBAMRENC_USN_DLL_NAME "\\windows\\usn.dll64P"
221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
222b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define WBAMRENC_USN_DLL_NAME "usn.dll64P"
223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_DLL_NAME   WBAMR Encoder socket node dll name
228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
231b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define WBAMRENC_DLL_NAME "\\windows\\wbamrenc_sn.dll64P"
232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
233b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define WBAMRENC_DLL_NAME "wbamrenc_sn.dll64P"
234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_StreamType  Stream types
238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_DMM                 DMM
240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_INSTRM              Input stream
242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_OUTSTRM             Output stream
244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMRENC_StreamType {
247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_DMM = 0,
248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_INSTRM,
249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_OUTSTRM
250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_EncodeType  coding types
253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_WBAMR           WBAMR mode
255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_EFR             EFR mode
257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMRENC_EncodeType {
261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_WBAMR = 0,
262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_EFR
263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_MimeMode  format types
266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_MIMEMODE                MIME
268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_FORMATCONFORMANCE       WBAMR mode
270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_IF2                     IF2 mode
272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMRENC_MimeMode {
276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_FORMATCONFORMANCE = 0,
277b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_MIMEMODE,
278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_IF2
279b65f253fdc60f6208a54911bee793d225f23cdf8James Dong};
280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Different Frame sizes for different index in MIME Mode
284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
285fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_0   0
287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_1   1
288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_6   6
289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_18  18
290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_23  23
291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_24  24
292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_33  33
293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_37  37
294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_41  41
295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_47  47
296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_51  51
297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_59  59
298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_FRAME_SIZE_61  61
299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def WBAMRENC_TIMEOUT Default timeout used to come out of blocking calls
305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_TIMEOUT 1000
308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def WBAMRENC_OMX_MAX_TIMEOUTS   Max Time Outs
311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def WBAMRENC_DONT_CARE          Dont Care Condition
312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def WBAMRENC_NUM_CHANNELS       Number of Channels
313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def WBAMRENC_APP_ID             App ID Value setting
314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_OMX_MAX_TIMEOUTS 20
317fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_DONT_CARE 0
318fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_NUM_CHANNELS 1
319fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
320fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRENC_STREAM_COUNT    Number of streams
322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         WBAMRENC_INPUT_STREAM_ID Stream ID for Input Buffer
323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_STREAM_COUNT 2
326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMRENC_INPUT_STREAM_ID 0
327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def _ERROR_PROPAGATION__     Allow Logic to Detec&Report Arm Errors
331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _ERROR_PROPAGATION__
334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct PV_OMXComponentCapabilityFlagsType {
336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* OMX COMPONENT CAPABILITY RELATED MEMBERS (for opencore compatability)*/
337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iIsOMXComponentMultiThreaded;
338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc;
339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentSupportsExternalInputBufferAlloc;
340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentSupportsMovableInputBuffers;
341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentSupportsPartialFrames;
342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentNeedsNALStartCode;
343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL iOMXComponentCanHandleIncompleteFrames;
344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} PV_OMXComponentCapabilityFlagsType;
345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_COMP_PORT_TYPE  Port types
347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  WBAMRENC_INPUT_PORT             Input port
349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  WBAMRENC_OUTPUT_PORT            Output port
351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ====================================================================== */
353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*This enum must not be changed. */
354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum WBAMRENC_COMP_PORT_TYPE {
355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_INPUT_PORT = 0,
356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_OUTPUT_PORT
357b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_COMP_PORT_TYPE;
358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AUDIO_SN_WBAMRBANDMODETYPE
361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @SN_AUDIO_BRXXX This constant is used to determine the code to send
363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  to SN to set the BitRate.
364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ====================================================================== */
366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum AUDIO_SN_WBAMRBANDMODETYPE {
367b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR2385 = 8,
368b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR2305,
369b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR1985,
370b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR1825,
371b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR1585,
372b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR1425,
373b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR1265,
374b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR885,
375b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_BR660,
376b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    SN_AUDIO_WBAMRBandModeMax = 0x7FFFFFFF
377b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} AUDIO_SN_WBAMRBANDMODETYPE;
378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_BUFFER_Dir  Buffer Direction
381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_DIRECTION_INPUT     Input direction
383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  WBAMRENC_DIRECTION_OUTPUT    Output direction
385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_DIRECTION_INPUT,
390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_DIRECTION_OUTPUT
391b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_BUFFER_Dir;
392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_BUFFS  Buffer details
395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  BufHeader Buffer header
397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  Buffer   Buffer
399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_BUFFS {
403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char BufHeader;
404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char Buffer;
405b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_BUFFS;
406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMRENC_BUFFERHEADERTYPE_INFO
409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  pBufHeader
411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  bBufOwner
413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_BUFFERHEADERTYPE_INFO {
417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[WBAMRENC_MAX_NUM_OF_BUFS];
418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFS bBufOwner[WBAMRENC_MAX_NUM_OF_BUFS];
419b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_BUFFERHEADERTYPE_INFO;
420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef OMX_ERRORTYPE (*WBAMRENC_fpo)(OMX_HANDLETYPE);
423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Socket node Audio Codec Configuration parameters.
427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_AudioCodecParams {
430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long  iSamplingRate;
431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long  iStrmId;
432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned short iAudioFormat;
433b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_AudioCodecParams;
434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
437fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_TALGCtrl                 Socket Node Alg Control parameters.
438b65f253fdc60f6208a54911bee793d225f23cdf8James Dong* WBAMRENC_TALGCtrlDTX              Socket Node Alg Control parameters (DTX).
439fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_UAlgInBufParamStruct     Input Buffer Param Structure
440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_UAlgOutBufParamStruct    Output Buffer Param Structure
441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Algorithm specific command parameters */
444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
445b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    int iSize;
446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned int iBitrate;
447b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_TALGCtrl;
448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
449b65f253fdc60f6208a54911bee793d225f23cdf8James Dongtypedef struct {
450b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    int iSize;
451b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    unsigned int iVADFlag;
452b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
453b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_TALGCtrlDTX;
454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_UAlgInBufParamStruct     Input Buffer Param Structure
457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* usLastFrame                       To Send Last Buufer Flag
458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
461b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    unsigned long int usLastFrame;
462b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_FrameStruct;
463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
464b65f253fdc60f6208a54911bee793d225f23cdf8James Dongtypedef struct {
465b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    unsigned long int usNbFrames;
466b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_FrameStruct *pParamElem;
467b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_ParamStruct;
468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_UAlgOutBufParamStruct    Output Buffer Param Structure
472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* ulFrameCount No.of Frames Encoded
473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long ulFrameCount;
477b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_UAlgOutBufParamStruct;
478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_LCML_BUFHEADERTYPE Buffer Header Type
482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_LCML_BUFHEADERTYPE {
485b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_BUFFER_Dir eDir;
486b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_FrameStruct *pFrameParam;
487b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_ParamStruct *pBufferParam;
488b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    DMM_BUFFER_OBJ* pDmmBuf;
489b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_BUFFERHEADERTYPE* buffer;
490b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_LCML_BUFHEADERTYPE;
491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct _WBAMRENC_BUFFERLIST WBAMRENC_BUFFERLIST;
493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* _WBAMRENC_BUFFERLIST Structure for buffer list
497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
499b65f253fdc60f6208a54911bee793d225f23cdf8James Dongstruct _WBAMRENC_BUFFERLIST {
500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE sBufHdr;
501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr[WBAMRENC_MAX_NUM_OF_BUFS];
502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bufferOwner[WBAMRENC_MAX_NUM_OF_BUFS];
503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bBufferPending[WBAMRENC_MAX_NUM_OF_BUFS];
504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 numBuffers;
505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFERLIST *pNextBuf;
506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFERLIST *pPrevBuf;
507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_PORT_TYPE Structure for PortFormat details
512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_PORT_TYPE {
515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE hTunnelComponent;
516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nTunnelPort;
517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERSUPPLIERTYPE eSupplierSetting;
518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nBufferCnt;
519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE* pPortFormat;
520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} WBAMRENC_PORT_TYPE;
521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
523b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifndef _OMX_EVENT_
524b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define _OMX_EVENT_
525b65f253fdc60f6208a54911bee793d225f23cdf8James Dongtypedef struct OMX_Event {
526b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    HANDLE event;
527b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} OMX_Event;
528b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
529b65f253fdc60f6208a54911bee793d225f23cdf8James Dongint OMX_CreateEvent(OMX_Event *event);
530b65f253fdc60f6208a54911bee793d225f23cdf8James Dongint OMX_SignalEvent(OMX_Event *event);
531b65f253fdc60f6208a54911bee793d225f23cdf8James Dongint OMX_WaitForEvent(OMX_Event *event);
532b65f253fdc60f6208a54911bee793d225f23cdf8James Dongint OMX_DestroyEvent(OMX_Event *event);
533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRENC_BUFDATA {
536b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U8 nFrames;
537b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} WBAMRENC_BUFDATA;
538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMRENC_COMPONENT_PRIVATE Component private data Structure
541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
543b65f253fdc60f6208a54911bee793d225f23cdf8James Dongtypedef struct WBAMRENC_COMPONENT_PRIVATE {
544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Array of pointers to BUFFERHEADERTYPE structues
545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        This pBufHeader[INPUT_PORT] will point to all the
546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        BUFFERHEADERTYPE structures related to input port,
547fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        not just one structure. Same is the case for output
548fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        port also. */
549fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[WBAMRENC_NUM_OF_PORTS];
550fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of input buffers at runtime */
551fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nRuntimeInputBuffers;
552fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of output buffers at runtime */
554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nRuntimeOutputBuffers;
555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_CALLBACKTYPE cbInfo;
557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE* sPortParam;
558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PRIORITYMGMTTYPE* sPriorityMgmt;
559b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
560b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
561b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    RMPROXY_CALLBACKTYPE rmproxyCallback;
562b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
563b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bPreempted;
565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[WBAMRENC_NUM_OF_PORTS];
567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE* pPortParamType;
568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_AMRTYPE* amrParams;
569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PCMMODETYPE* pcmParams;
570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFERHEADERTYPE_INFO BufInfo[WBAMRENC_NUM_OF_PORTS];
572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_PORT_TYPE *pCompPort[WBAMRENC_NUM_OF_PORTS];
573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_LCML_BUFHEADERTYPE *pLcmlBufHeader[WBAMRENC_NUM_OF_PORTS];
574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This is component handle */
575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_COMPONENTTYPE* pHandle;
576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Current state of this component */
577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STATETYPE curState;
578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The component thread handle */
579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_t ComponentThread;
580fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
581fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int dataPipe[2];
582fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending command to the thread */
583fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdPipe[2];
584fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending cmd data to the thread */
585fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdDataPipe[2];
586fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
587fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 efrMode;
588fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
589fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 amrMode;
590fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
591fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 dasfMode;
592fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 frameMode;
594fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
595fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 acdnMode;
596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
597fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nMultiFrameMode;
598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
599b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_S32 fdwrite;
600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
601b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_S32 fdread;
602fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
603fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Set to indicate component is stopping */
604fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsThreadstop;
605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
606fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
607fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nIpBuf;
608fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
609fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
610fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nOpBuf;
611fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
612fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 app_nBuf;
613fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntIp;
615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntOpReceived;
617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsBufferOwned[WBAMRENC_NUM_OF_PORTS];
619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 streamID;
621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bCompThreadStarted;
623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nVersion;
625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 amrMimeBytes[16];
627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
628b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 amrIf2Bytes[16];
629b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iHoldLen;
631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nHoldLength;
633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
634fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nFillThisBufferCount;
635fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
636fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nFillBufferDoneCount;
637fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nEmptyThisBufferCount;
639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
640fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nEmptyBufferDoneCount;
641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
642fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bInitParamsInitialized;
643fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
644fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNumInputBufPending;
645fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
646fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNumOutputBufPending;
647fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
648fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bDisableCommandPending;
649fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
650fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bDisableCommandParam;
651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
652fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bEnableCommandPending;
653fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bEnableCommandParam;
655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
656fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE pLcmlHandle;
657fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
658fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pMarkData;
659fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
660fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MARKTYPE *pMarkBuf;
661fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
662fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE hMarkTargetComponent;
663fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
664fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFERLIST *pInputBufferList;
665fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
666fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_BUFFERLIST *pOutputBufferList;
667fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    LCML_STRMATTR *strmAttr;
669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
670fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_TALGCtrl *pAlgParam;
671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
672b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    WBAMRENC_TALGCtrlDTX *pAlgParamDTX;
673b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
674fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMRENC_AudioCodecParams *pParams;
675fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
676fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING cComponentName;
677fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
678fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE ComponentVersion;
679fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
680fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pInputBufHdrPending[WBAMRENC_MAX_NUM_OF_BUFS];
681fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
682fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[WBAMRENC_MAX_NUM_OF_BUFS];
683fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
684fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *iMMFDataLastBuffer;
685fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
686b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U8* pHoldBuffer, *pHoldBuffer2;
687fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
688fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8* iHoldBuffer;
689fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
690fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to set when socket node stop callback should not transition
691fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        component to OMX_StateIdle */
692fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bNoIdleOnStop;
693fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
694fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag set when socket node is stopped */
695b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 bDspStoppedWhileExecuting;
696b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
697fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of outstanding FillBufferDone() calls */
698fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S32 nOutStandingFillDones;
699b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
700fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S32 nOutStandingEmptyDones;
701fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
702fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
703fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t AlloBuf_mutex;
704fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t AlloBuf_threshold;
705fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
706fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
707fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InLoaded_mutex;
708fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InLoaded_threshold;
709fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
710fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
711fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InIdle_mutex;
712fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InIdle_threshold;
713fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
714fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
715fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t ToLoaded_mutex;
716b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    /*
717fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin          sem_t allobuf;
718fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin          sem_t inloaded;
719fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin          sem_t inidle;
720fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    */
721fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
722fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event AlloBuf_event;
723fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
724fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
725fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InLoaded_event;
726fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
727fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
728fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InIdle_event;
729fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
730fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
731fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
732fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nNumOfFramesSent;
733fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
734fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InBuf_Eos_alreadysent;
735fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
736fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
737fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PERF_OBJHANDLE pPERF, pPERFcomp;
738fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntIp;
739fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntOpReceived;
740fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
741fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
742fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *LastOutbuf;
743fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bIsInvalidState;
744fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
745fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING* sDeviceString;
746fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    void* ptrLibLCML;
747b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
748fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer timestamps */
749b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_S64 arrBufIndex[WBAMRENC_MAX_NUM_OF_BUFS];
750fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer nTickCounts */
751b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_S64 arrTickCount[WBAMRENC_MAX_NUM_OF_BUFS];
752fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Index to arrBufIndex[], used for input buffer timestamps */
753fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 IpBufindex;
754fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Index to arrBufIndex[], used for output buffer timestamps */
755b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U8 OpBufindex;
756b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
757fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S8 ProcessingInputBuf;
758b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_S8 ProcessingOutputBuf;
759b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
760fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bLoadedCommandPending;
761b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
762fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_COMPONENTROLETYPE componentRole;
763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Pointer to OpenCore capabilities structure */
765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    PV_OMXComponentCapabilityFlagsType iPVCapabilityFlags;
766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    struct OMX_TI_Debug dbg;
76837352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong
76937352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong    /* Reference count for pending state change requests */
77037352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong    OMX_U32 nPendingStateChangeRequests;
77137352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong    pthread_mutex_t mutexStateChangeRequest;
77237352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong    pthread_cond_t StateChangeCondition;
773fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
774fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} WBAMRENC_COMPONENT_PRIVATE;
775fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
776fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
777fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
778fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
779fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  OMX_ComponentInit()  Initializes component
780fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
781fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
782fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param hComp         OMX Handle
783fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
784fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
785fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
786fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
787fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
788fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
789fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
790fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
791fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
792fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_StartComponentThread()  Starts component thread
793fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
794fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
795fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param hComp         OMX Handle
796fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
797fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
798fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
799fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
800fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
801fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
802fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_StartComponentThread(OMX_HANDLETYPE pHandle);
803fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
804fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
805fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_StopComponentThread()  Stops component thread
806fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
807fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
808fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param hComp         OMX Handle
809fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
810fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
811fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
812fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
813fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
814fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
815fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_StopComponentThread(OMX_HANDLETYPE pHandle);
816fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
817fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
818fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_FreeCompResources()  Frees allocated memory
819fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
820fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
821fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param hComp         OMX Handle
822fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
823fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
824fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
825fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
826fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
827fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
828fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_FreeCompResources(OMX_HANDLETYPE pComponent);
829fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
830fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
831fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_GetCorrespondingLCMLHeader()  Returns LCML header
832fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* that corresponds to the given buffer
833fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
834fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate Component private data
835fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
836fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
837fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
838fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
839fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
840fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_GetCorrespondingLCMLHeader(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
841b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        OMX_U8 *pBuffer,
842b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        OMX_DIRTYPE eDir,
843b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        WBAMRENC_LCML_BUFHEADERTYPE **ppLcmlHdr);
844fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
845fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
846fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_LCMLCallback() Callback from LCML
847fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
848fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param event     Codec Event
849fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
850fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param args      Arguments from LCML
851fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
852fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
853fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
854fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
855fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
856fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_LCMLCallback(TUsnCodecEvent event,
857fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                    void * args [10]);
858fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
859fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
860fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_FillLCMLInitParams() Fills the parameters needed
861fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* to initialize the LCML
862fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
863fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pHandle OMX Handle
864fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
865fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param plcml_Init LCML initialization parameters
866fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
867fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
868fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
869fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
870fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
871fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
872fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_FillLCMLInitParams(OMX_HANDLETYPE pHandle,
873b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        LCML_DSP *plcml_Init,
874b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        OMX_U16 arr[]);
875fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
876fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
877fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_GetBufferDirection() Returns direction of pBufHeader
878fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
879fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pBufHeader        Buffer header
880fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
881fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param eDir              Buffer direction
882fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
883fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate Component private data
884fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
885fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
886fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
887fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
888fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
889fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_GetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader,
890b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        OMX_DIRTYPE *eDir);
891fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
892fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
893fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_HandleCommand()  Handles commands sent via SendCommand()
894fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
895fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate Component private data
896fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
897fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
898fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
899fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
900fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
901fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
902fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
903fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 WBAMRENC_HandleCommand(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
904b65f253fdc60f6208a54911bee793d225f23cdf8James Dong                               OMX_COMMANDTYPE cmd,
905b65f253fdc60f6208a54911bee793d225f23cdf8James Dong                               OMX_U32 cmdData);
906fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
907fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
908fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_HandleDataBufFromApp()  Handles data buffers received
909fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* from the IL Client
910fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
911fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate Component private data
912fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
913fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
914fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
915fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
916fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
917fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
918fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
919fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_HandleDataBufFromApp(OMX_BUFFERHEADERTYPE *pBufHeader,
920b65f253fdc60f6208a54911bee793d225f23cdf8James Dong        WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate);
921fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
922fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
923fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_GetLCMLHandle()  Get the handle to the LCML
924fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
925fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
926fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
927fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
928fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
929fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
930fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_HANDLETYPE WBAMRENC_GetLCMLHandle(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate);
931fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
932fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
933fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_FreeLCMLHandle()  Frees the handle to the LCML
934fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
935fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
936fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
937fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
938fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
939fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
940fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_FreeLCMLHandle(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate);
941fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
942fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
943fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_CleanupInitParams()  Starts component thread
944fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
945fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponent        OMX Handle
946fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
947fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
948fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
949fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
950fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
951fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_CleanupInitParams(OMX_HANDLETYPE pHandle);
952fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
953fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
954fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_SetPending()  Called when the component queues a buffer
955fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* to the LCML
956fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
957fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate     Component private data
958fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
959fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pBufHdr               Buffer header
960fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
961fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param eDir                  Direction of the buffer
962fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
963fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return None
964fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
965fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
966fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid WBAMRENC_SetPending(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
967fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         OMX_BUFFERHEADERTYPE *pBufHdr,
968fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         OMX_DIRTYPE eDir,
969fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         OMX_U32 lineNumber);
970fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
971fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
972fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_ClearPending()  Called when a buffer is returned
973fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* from the LCML
974fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
975fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate     Component private data
976fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
977fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pBufHdr               Buffer header
978fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
979fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param eDir                  Direction of the buffer
980fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
981fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return None
982fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
983fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
984fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid WBAMRENC_ClearPending(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
985fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           OMX_BUFFERHEADERTYPE *pBufHdr,
986fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           OMX_DIRTYPE eDir,
987fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           OMX_U32 lineNumber);
988fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
989fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
990fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_IsPending()
991fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
992fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
993fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate     Component private data
994fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
995fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
996fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
997fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
998fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
999fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 WBAMRENC_IsPending(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
1000fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           OMX_BUFFERHEADERTYPE *pBufHdr,
1001fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           OMX_DIRTYPE eDir);
1002fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
1003fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1004fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_FillLCMLInitParamsEx()  Fills the parameters needed
1005fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* to initialize the LCML without recreating the socket node
1006fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1007fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponent            OMX Handle
1008fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1009fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return None
1010fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
1011fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
1012fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE WBAMRENC_FillLCMLInitParamsEx(OMX_HANDLETYPE pComponent);
1013fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
1014fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1015fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  WBAMRENC_IsValid() Returns whether a buffer is valid
1016fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1017fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1018fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pComponentPrivate     Component private data
1019fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1020fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param pBuffer               Data buffer
1021fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1022fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param eDir                  Buffer direction
1023fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
1024fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_True = Valid
1025fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          OMX_False= Invalid
1026fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
1027fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
1028fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 WBAMRENC_IsValid(WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate,
1029fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         OMX_U8 *pBuffer,
1030fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         OMX_DIRTYPE eDir);
1031fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
103200f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny WongOMX_ERRORTYPE OMX_DmmMap(DSP_HPROCESSOR ProcHandle, int size, void* pArmPtr, DMM_BUFFER_OBJ* pDmmBuf, struct OMX_TI_Debug dbg);
103300f4c8bed7990ebaff8e20bd13b5dbdacbe22c29Benny WongOMX_ERRORTYPE OMX_DmmUnMap(DSP_HPROCESSOR ProcHandle, void* pMapPtr, void* pResPtr, struct OMX_TI_Debug dbg);
1034fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1035b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
1036b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid WBAMRENC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData);
1037b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
1038b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
1039b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid WBAMRENC_HandleUSNError (WBAMRENC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U32 arg);
1040fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1041fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*===============================================================*/
1042fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1043fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
1044fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_STOP             = 0,
1045fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_PAUSE            = 1,
1046fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_GETSTATUS        = 2,
1047fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_SETSTATUS        = 3,
1048fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_USERSETCMDSTART  = 100,
1049fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_USERGETCMDSTART  = 150,
1050fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_FLUSH            = 0x100
1051b65f253fdc60f6208a54911bee793d225f23cdf8James Dong} IUALG_Cmd;
1052fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1053b65f253fdc60f6208a54911bee793d225f23cdf8James Dongtypedef enum {
1054fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    ALGCMD_BITRATE = IUALG_CMD_USERSETCMDSTART,
1055fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    ALGCMD_DTX
1056fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1057fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} eSPEECHENCODE_AlgCmd;
1058fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
105937352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny WongOMX_ERRORTYPE AddStateTransition(WBAMRENC_COMPONENT_PRIVATE* pComponentPrivate);
106037352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny WongOMX_ERRORTYPE RemoveStateTransition(WBAMRENC_COMPONENT_PRIVATE* pComponentPrivate, OMX_BOOL bEnableSignal);
106137352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong
106237352fa4569e8c8b483f2cd1c743dcaa8f8fa2dfBenny Wong
1063fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif  /* OMX_WBAMRENC_UTILS__H */
1064