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_WbAmrDecoder.h
30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* This is an header file for an audio PCM decoder that is fully
32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* compliant with the OMX Audio specification.
33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* This the file that the application that uses OMX would include
34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* in its code.
35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @path $(CSLPATH)\
37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* @rev 0.1
39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* --------------------------------------------------------------------------- */
41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_WBAMR_DECODER_H
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_WBAMR_DECODER_H
44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "LCML_DspCodec.h"
46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Component.h>
47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <pthread.h>
48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_TI_Debug.h>
49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #include "perf.h"
52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef DSP_RENDERING_ON
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <AudioManagerAPI.h>
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
58b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
59b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
60b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h>
61b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef ANDROID
65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define ANDROID
66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef ANDROID
69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #undef LOG_TAG
70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define LOG_TAG "OMX_WBAMRDEC"
71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* PV opencore capability custom parameter index */
73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define PV_OMX_COMPONENT_CAPABILITY_TYPE_INDEX 0xFF7A347
74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =======================================================================
77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin ** Default timeout used to come out of blocking calls*
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin ======================================================================= */
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_TIMEOUT (1000) /* millisecs */
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_WMADEC_INPUT_BUFFERS   Default number of input buffers
87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_WBAMRDEC_INPUT_BUFFERS 1
91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_WMADEC_OUTPUT_BUFFERS   Default number of output buffers
94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_WBAMRDEC_OUTPUT_BUFFERS 2
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_WMADEC_OUTPUT_BUFFERS   Default number of output buffers DASF
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_WBAMRDEC_OUTPUT_BUFFERS_DASF 2
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    INPUT_WBAMRDEC_BUFFER_SIZE   Default input buffer size
108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_WBAMRDEC_BUFFER_SIZE 116
112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OUTPUT_WBAMRDEC_BUFFER_SIZE   Default output buffer size
115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OUTPUT_WBAMRDEC_BUFFER_SIZE 640
119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    INPUT_WBAMRDEC_BUFFER_SIZE_MIME   Default input buffer size MIME
122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_WBAMRDEC_BUFFER_SIZE_MIME 61
126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_STREAM_COUNT   Number of streams
130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_STREAM_COUNT 2
133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_INPUT_STREAM_ID 0
134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_INPUT_BUFF_SIZE_EFR   Default input buffer size EFR
137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_INPUT_BUFF_SIZE_EFR 120
141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_COMP_PORT_TYPE  Port types
144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_INPUT_PORT                 Input port
146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_OUTPUT_PORT                Output port
148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*This enum must not be changed. */
151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum WBAMR_DEC_COMP_PORT_TYPE {
152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_INPUT_PORT = 0,
153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_OUTPUT_PORT
154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_COMP_PORT_TYPE;
155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_SAMPLING_FREQUENCY   Sampling frequency
158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_SAMPLING_FREQUENCY 16000
161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_CPU_LOAD                    CPU Load in MHz
164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_CPU_LOAD 10
167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_MAX_NUM_OF_BUFS   Maximum number of buffers
170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_MAX_NUM_OF_BUFS 12
173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    IP_BUFFERSIZE                      Input Port Buffer Size
176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define IP_WBAMRDEC_BUFFERSIZE 8192
179b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
180b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
181b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @def    NUM_MIME_BYTES_ARRAY               amrMimeBytes array size
182b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
183b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
184b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define NUM_MIME_BYTES_ARRAY 16
185b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
186b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
187b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @def    NUM_IF2_BYTES_ARRAY                amrIF2Bytes array size
188b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
189b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
190b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define NUM_IF2_BYTES_ARRAY 16
191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_DEBUG   Turns debug messaging on and off
195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMR_DEC_DEBUG
198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_MEMCHECK   Turns memory messaging on and off
201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMR_DEC_MEMCHECK
204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMRDEC_DEBUGMEM   Turns memory leaks messaging on and off.
208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         APP_DEBUGMEM must be defined in Test App in order to get
209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         this functionality On.
210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef WBAMRDEC_DEBUGMEM
213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*#define WBAMRDEC_DEBUGMEM*/
214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define sleep Sleep
218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    WBAMR_DEC_NUM_OF_PORTS   Number of ports
223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define WBAMR_DEC_NUM_OF_PORTS 2
226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    _ERROR_PROPAGATION__              Allow Logic to Detec Arm Errors
230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _ERROR_PROPAGATION__
233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** OMX_INDEXAUDIOTYPE_WBAMRDEC  Defines the custom configuration settings
236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*                              for the component
237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  OMX_IndexCustomModeDasfConfig_WBAMRDEC  Sets the DASF mode
239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  OMX_IndexCustomModeAcdnConfig_WBAMRDEC  Sets the ACDN mode
241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  OMX_IndexCustomModeMimeConfig_WBAMRDEC  Sets the MIME mode
243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_INDEXAUDIOTYPE_WBAMRDEC {
246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomModeEfrConfig_WBAMRDEC = 0xFF000001,
247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomModeAmrConfig_WBAMRDEC,
248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomModeAcdnConfig_WBAMRDEC,
249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomModeDasfConfig_WBAMRDEC,
250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomModeMimeConfig_WBAMRDEC,
251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomWbAmrDecHeaderInfoConfig,
252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomWbAmrDecStreamIDConfig,
253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_IndexCustomWbAmrDecDataPath,
254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomWbAmrDecNextFrameLost,
255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomDebug
256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}OMX_INDEXAUDIOTYPE_WBAMRDEC;
257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
258b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
259b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
260b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * pthread variable to indicate OMX returned all buffers to app
261b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
262b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
263b65f253fdc60f6208a54911bee793d225f23cdf8James Dongpthread_mutex_t bufferReturned_mutex;
264b65f253fdc60f6208a54911bee793d225f23cdf8James Dongpthread_cond_t bufferReturned_condition;
265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_StreamType  Stream types
268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_DMM                    DMM
270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_INSTRM                 Input stream
272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_OUTSTRM                Output stream
274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMR_DEC_StreamType
277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_DMM,
279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_INSTRM,
280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_OUTSTRM
281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMR_DEC_DecodeType
284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR,
286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_EFR
287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_MimeMode  Stream types
291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_MIMEMODE                   MIME
293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_NONMIMEMODE                NON MIME
295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ====================================================================== */
298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum WBAMR_DEC_MimeMode {
299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_DEC_NONMIMEMODE,
300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_DEC_MIMEMODE
301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_BUFFER_Dir  Buffer Direction
305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_DIRECTION_INPUT                    INPUT
307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_DIRECTION_OUTPUT                   OUTPUT
309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ====================================================================== */
312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_DIRECTION_INPUT,
314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_DIRECTION_OUTPUT
315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_BUFFER_Dir;
316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
317fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMR_DEC_BUFFS
318fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
319fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char WBAMR_DEC_BufHeader;
320fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    char WBAMR_DEC_Buffer;
321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_BUFFS;
322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_BUFFERHEADERTYPE_INFO
325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  pBufHeader
327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  bBufOwner
329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMR_DEC_BUFFERHEADERTYPE_INFO
333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[WBAMR_DEC_MAX_NUM_OF_BUFS];
335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_BUFFS bBufOwner[WBAMR_DEC_MAX_NUM_OF_BUFS];
336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_BUFFERHEADERTYPE_INFO;
337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
339fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** WBAMR_DEC_LCML_MimeMode  Stream types
340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_MODE_MIME                  MIME
342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  WBAMR_DEC_MODE_NONMIME               NON MIME
344fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
345fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_MODE_MIME,
349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_MODE_NONMIME
350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_LCML_MimeMode;
351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Socket node input parameters.
355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMR_DEC_AudioCodecParams
358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long  iSamplingRate;
360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long  iStrmId;
361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned short iAudioFormat;
362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMR_DEC_AudioCodecParams;
364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Socket node alg parameters.
368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
370fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long int usLastFrame;
372fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long int usFrameLost;
373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WAMRDEC_FrameStruct;
374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct{
376fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin         unsigned long int usNbFrames;
377fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin         WAMRDEC_FrameStruct *pParamElem;
378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMRDEC_ParamStruct;
379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* WBAMR Buffer Header Type
383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct LCML_WBAMR_DEC_BUFHEADERTYPE {
386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      WBAMR_DEC_BUFFER_Dir eDir;
387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      OMX_BUFFERHEADERTYPE* buffer;
388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      WAMRDEC_FrameStruct *pFrameParam;
389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      WBAMRDEC_ParamStruct *pBufferParam;
390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      DMM_BUFFER_OBJ* pDmmBuf;
391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}LCML_WBAMR_DEC_BUFHEADERTYPE;
392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  WinCE Implicit Export Syntax */
399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport)
400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  OMX_ComponentInit()  Initializes component
403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param hComp         OMX Handle
406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @return OMX_ErrorNone = Successful
408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*          Other error code = fail
409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Instrumentation info
419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRDEC_BUFFERLIST WBAMR_DEC_BUFFERLIST;
423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Structure for buffer list
427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinstruct WBAMRDEC_BUFFERLIST{
430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr[WBAMR_DEC_MAX_NUM_OF_BUFS];   /* records buffer header send by client */
431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bufferOwner[WBAMR_DEC_MAX_NUM_OF_BUFS];
432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bBufferPending[WBAMR_DEC_MAX_NUM_OF_BUFS];
433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U16 numBuffers;
434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #ifndef _OMX_EVENT_
437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        #define _OMX_EVENT_
438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        typedef struct OMX_Event {
439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin            HANDLE event;
440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        } OMX_Event;
441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #endif
442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct PV_OMXComponentCapabilityFlagsType
445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        ////////////////// OMX COMPONENT CAPABILITY RELATED MEMBERS (for opencore compatability)
447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iIsOMXComponentMultiThreaded;
448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc;
449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalInputBufferAlloc;
450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsMovableInputBuffers;
451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsPartialFrames;
452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentNeedsNALStartCode;
453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentCanHandleIncompleteFrames;
454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} PV_OMXComponentCapabilityFlagsType;
455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * NBAMRDEC_BUFDATA
460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMRDEC_BUFDATA {
463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U8 nFrames;
464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}WBAMRDEC_BUFDATA;
465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Component private data
470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct WBAMR_DEC_COMPONENT_PRIVATE
473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PERF_OBJHANDLE pPERF, pPERFcomp;
476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntIp;
477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntOpReceived;
478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Array of pointers to BUFFERHEADERTYPE structues
480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       This pBufHeader[WBAMR_DEC_INPUT_PORT] will point to all the
481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       BUFFERHEADERTYPE structures related to input port,
482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       not just one structure. Same is for output port
483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       also. */
484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[WBAMR_DEC_NUM_OF_PORTS];
486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of input buffers at runtime */
488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nRuntimeInputBuffers;
489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    WBAMR_DEC_BUFFERHEADERTYPE_INFO BufInfo[WBAMR_DEC_NUM_OF_PORTS];
491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_CALLBACKTYPE cbInfo;
493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Handle for use with async callbacks */
494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE sPortParam;
496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat;
497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat;
498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This will contain info like how many buffers
500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        are there for input/output ports, their size etc, but not
501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        BUFFERHEADERTYPE POINTERS. */
502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[WBAMR_DEC_NUM_OF_PORTS];
503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_AMRTYPE* wbamrParams[WBAMR_DEC_NUM_OF_PORTS];
504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This is component handle */
506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_COMPONENTTYPE* pHandle;
507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Current state of this component */
509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STATETYPE curState;
510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The component thread handle */
512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_t WBAMR_DEC_ComponentThread;
513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int dataPipe[2];
516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdPipe[2];
519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdDataPipe[2];
522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin  /*  int lcml_Pipe[2]; */
525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Set to indicate component is stopping */
527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsStopping;
528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nIpBuf;
531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nOpBuf;
534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 app_nBuf;
536b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 wbamrIf2Bytes[NUM_IF2_BYTES_ARRAY];                        /*Array With IF2 Lenght Information*/
537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntIp;
538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntOpReceived;
539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 num_Reclaimed_Op_Buff;
540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE pLcmlHandle;
542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    LCML_WBAMR_DEC_BUFHEADERTYPE *pLcmlBufHeader[2];
543fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iAmrMimeFlag;
544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iAmrSamplingFrequeny;
545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iAmrChannels;
546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iAmrMode;
547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 dasfmode;
548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 mimemode;
549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 acdnmode;
550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 fdwrite;
551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 fdread;
552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 streamID;
553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bPortDefsAllocated;
555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bCompThreadStarted;
556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pMarkData;
557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MARKTYPE *pMarkBuf;
558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_HANDLETYPE hMarkTargetComponent;
559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_DEC_BUFFERLIST *pInputBufferList;
560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_DEC_BUFFERLIST *pOutputBufferList;
561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    LCML_STRMATTR *strmAttr;
562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nVersion;
563b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 wbamrMimeBytes[NUM_MIME_BYTES_ARRAY];
564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nHoldLength;
565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8* pHoldBuffer;
566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bLcmlHandleOpened;
567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nFillThisBufferCount;
568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nFillBufferDoneCount;
569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyThisBufferCount;
570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyBufferDoneCount;
571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    WBAMR_DEC_AudioCodecParams *pParams;
572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bInitParamsInitialized;
573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*     OMX_U32 bIdleCommandPending; */
574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pInputBufHdrPending[WBAMR_DEC_MAX_NUM_OF_BUFS];
575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nNumInputBufPending;
576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[WBAMR_DEC_MAX_NUM_OF_BUFS];
577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nNumOutputBufPending;
578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDisableCommandPending;
579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bEnableCommandPending;
580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDisableCommandParam;
581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bEnableCommandParam;
582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to set when socket node stop callback should not transition
584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        component to OMX_StateIdle */
585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bNoIdleOnStop;
586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag set when socket node is stopped */
588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDspStoppedWhileExecuting;
589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of outstanding FillBufferDone() calls */
591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S32 nOutStandingFillDones;
592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Stop Codec Command Sent Flag*/
594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 bStopSent;
595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t AlloBuf_mutex;
598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t AlloBuf_threshold;
599fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t codecStop_mutex;
602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_cond_t codecStop_threshold;
603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 codecStop_waitingsignal;
604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InLoaded_mutex;
606fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InLoaded_threshold;
607fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
608fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
609fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InIdle_mutex;
610fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InIdle_threshold;
611fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S8 nUnhandledFillThisBuffers;
614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S8 nUnhandledEmptyThisBuffers;
615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushOutputPortCommandPending;
616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushInputPortCommandPending;
617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event AlloBuf_event;
619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InLoaded_event;
622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InIdle_event;
625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U16 nRuntimeOutputBuffers;
628fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
629fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 PendingPausedBufs;
630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPausedPending[WBAMR_DEC_MAX_NUM_OF_BUFS];
631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *LastOutbuf;
633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL bIsInvalidState;
635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_STRING* sDeviceString;
636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
637fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    void* ptrLibLCML;
638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer timestamps */
640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S64 arrBufIndex[WBAMR_DEC_MAX_NUM_OF_BUFS];
641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer nTickCounts */
642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S64 arrTickCount[WBAMR_DEC_MAX_NUM_OF_BUFS];
643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for input buffer timestamps */
644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 IpBufindex;
645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for output buffer timestamps */
646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 OpBufindex;
647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to flush SN after EOS in order to process more buffers after EOS**/
649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 SendAfterEOS;
650fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bLoadedCommandPending;
652fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
653fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_COMPONENTROLETYPE componentRole;
654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to port priority management structure */
656fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PRIORITYMGMTTYPE* pPriorityMgmt;
657b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
658b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
659b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    RMPROXY_CALLBACKTYPE rmproxyCallback;
660b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
661b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL bPreempted;
663fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFrameLost;
664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to mark RTSP**/
666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 using_rtsp;
667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PV_OMXComponentCapabilityFlagsType iPVCapabilityFlags;
669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    struct OMX_TI_Debug dbg;
671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
672fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} WBAMR_DEC_COMPONENT_PRIVATE;
673fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
674b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*=======================================================================*/
675b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*! @fn SignalIfAllBuffersAreReturned
676b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
677b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @brief Sends pthread signal to indicate OMX has returned all buffers to app
678b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
679b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @param  none
680b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
681b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @Return void
682b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
683b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
684b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*=======================================================================*/
685b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid SignalIfAllBuffersAreReturned(WBAMR_DEC_COMPONENT_PRIVATE *pComponentPrivate);
686b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
687fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* OMX_WBAMR_DECODER_H */
688