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_AmrDecoder.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_AMRDECODER_H
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AMRDECODER_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>
49ede6e1f3f8779d7e490ad48f09be59122048f7d3Scott Anderson#include <cutils/log.h>
50b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
51b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
52b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h>
53b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #include "perf.h"
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef DSP_RENDERING_ON
60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <AudioManagerAPI.h>
61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
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_NBAMRDEC"
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/**
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    EXTRA_BUFFBYTES                Num of Extra Bytes to be allocated
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define EXTRA_BUFFBYTES (256)
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NBAMRD_TIMEOUT   Default timeout used to come out of blocking calls
87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NBAMRD_TIMEOUT (1000) /* millisecs */
90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_NBAMRDEC_INPUT_BUFFERS              Number of Input Buffers
94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_NBAMRDEC_INPUT_BUFFERS 1
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_NBAMRDEC_OUTPUT_BUFFERS              Number of Output Buffers
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_NBAMRDEC_OUTPUT_BUFFERS 2
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_NBAMRDEC_OUTPUT_BUFFERS_DASF         Number of Output Buffers
108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *                                                  on DASF mode
109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_NBAMRDEC_OUTPUT_BUFFERS_DASF 2
112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OUTPUT_NBAMRDEC_BUFFER_SIZE           Standart Output Buffer Size
116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OUTPUT_NBAMRDEC_BUFFER_SIZE 320
119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    INPUT_NBAMRDEC_BUFFER_SIZE_MIME       Mime Input Buffer Size
122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_NBAMRDEC_BUFFER_SIZE_MIME 34
125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    INPUT_BUFF_SIZE_EFR                  Input Buffer Size EFR
129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_BUFF_SIZE_EFR 120
132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* @def    INPUT_NBAMRDEC_BUFFER_SIZE_MIME       IF2 Input Buffer Size*/
134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_NBAMRDEC_BUFFER_SIZE_IF2 32
136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    STD_NBAMRDEC_BUF_SIZE                  Standart Input Buffer Size
141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define STD_NBAMRDEC_BUF_SIZE 118
144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    FRAME_SIZE_x                          Size in Bytes of determined
148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *                                               frame.
149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_13  13
152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_19  19
153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_26  26
154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_31  31
155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_14  14
156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_16  16
157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_18  18
158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_20  20
159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_21  21
160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_27  27
161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  FRAME_SIZE_32  32
162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_6   6
163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_1   1
164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  FRAME_SIZE_0   0
165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    STREAM_COUNT                         Stream Count value for
169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *                                              LCML init.
170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define STREAM_COUNT 2
173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    INPUT_STREAM_ID                      Input Stream ID
177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define INPUT_STREAM_ID 0
180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NBAMRDEC_SAMPLING_FREQUENCY          Sampling Frequency
186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NBAMRDEC_SAMPLING_FREQUENCY 8000
189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NBAMRDEC_CPU_LOAD                    CPU Load in MHz
193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NBAMRDEC_CPU_LOAD 10
196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    MAX_NUM_OF_BUFS                      Max Num of Bufs Allowed
200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define MAX_NUM_OF_BUFS 12
203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    IP_BUFFERSIZE                      Input Port Buffer Size
206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define IP_BUFFERSIZE 4096
209b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
210b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
211b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @def    NUM_MIME_BYTES_ARRAY               amrMimeBytes array size
212b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
213b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
214b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define NUM_MIME_BYTES_ARRAY 16
215b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
216b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
217b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @def    NUM_IF2_BYTES_ARRAY                amrIF2Bytes array size
218b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
219b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
220b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define NUM_IF2_BYTES_ARRAY 16
221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NBAMRDEC_DEBUGMEM   Turns memory leaks messaging on and off.
225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         APP_DEBUGMEM must be defined in Test App in order to get
226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *         this functionality On.
227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef NBAMRDEC_DEBUGMEM
230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*#define NBAMRDEC_DEBUGMEM*/
231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*#define AMRDEC_DEBUG*/
234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AMRDEC_DEBUG
235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AMRDEC_MEMCHECK
236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define AMRDEC_EPRINT(...)  __android_log_print(ANDROID_LOG_VERBOSE, __FILE__,"%s %d:: ERROR    ",__FUNCTION__, __LINE__);\
241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, __VA_ARGS__);\
242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, "\n");
243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef  AMRDEC_DEBUG
245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        #define AMRDEC_DPRINT(...)    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__,"%s %d::    ",__FUNCTION__, __LINE__);\
246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, __VA_ARGS__);\
247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, "\n");
248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        #define AMRDEC_DPRINT(...)
250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef  AMRDEC_MEMCHECK
253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        #define AMRDEC_MEMPRINT(...)    fprintf(stderr,__VA_ARGS__)
254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        #define AMRDEC_MEMPRINT(...)
256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef  AMRDEC_DEBUG_MCP
260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        #define AMRDEC_MCP_DPRINT(...)    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__,"%s %d:: MCP    ",__FUNCTION__, __LINE__);\
261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, __VA_ARGS__);\
262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                    __android_log_print(ANDROID_LOG_VERBOSE, __FILE__, "\n");
263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        #define AMRDEC_MCP_DPRINT(...)
265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else /*UNDER_CE*/
267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define AMRDEC_EPRINT   printf
268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef  AMRDEC_DEBUG
269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin #define AMRDEC_DPRINT(STR, ARG...) printf()
270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AMRDEC_MEMCHECK
274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #define AMRDEC_MEMPRINT(STR, ARG...) printf()
275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef DEBUG
280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #define AMRDEC_DPRINT   printf
281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #define AMRDEC_MEMPRINT   printf
282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #define AMRDEC_DPRINT
285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #define AMRDEC_MEMPRINT
286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif  //UNDER_CE
289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin  * @def  CACHE_ALIGNMENT                           Buffer Cache Alignment
296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define CACHE_ALIGNMENT 128
299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_OF_PORTS                       Number of Comunication Port
303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_OF_PORTS 2
306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    _ERROR_PROPAGATION__              Allow Logic to Detec Arm Errors
310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _ERROR_PROPAGATION__
313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
314b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
315b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/**
316b65f253fdc60f6208a54911bee793d225f23cdf8James Dong* pthread variable to indicate OMX returned all buffers to app
317b65f253fdc60f6208a54911bee793d225f23cdf8James Dong*/
318b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/* ======================================================================= */
319b65f253fdc60f6208a54911bee793d225f23cdf8James Dongpthread_mutex_t bufferReturned_mutex;
320b65f253fdc60f6208a54911bee793d225f23cdf8James Dongpthread_cond_t bufferReturned_condition;
321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** NBAMRDEC_COMP_PORT_TYPE  Port Type
324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_INPUT_PORT                  Port Type Input
326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_OUTPUT_PORT                 Port Type Output
328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum NBAMRDEC_COMP_PORT_TYPE {
332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_INPUT_PORT = 0,
333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_OUTPUT_PORT
334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}NBAMRDEC_COMP_PORT_TYPE;
335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** NBAMRDEC_StreamType  StreamType
338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_DMM                 Stream Type DMM
340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_INSTRM              Stream Type Input
342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
343fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  @param  NBAMRDEC_OUTSTRM             Stream Type Output
344fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
345fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum NBAMRDEC_StreamType
347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_DMM,
349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_INSTRM,
350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_OUTSTRM
351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** NBAMRDEC_DecodeType  Decode Type Mode
355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMR                    OMX_AUDIO_AMRDTX
357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_EFR             OMX_AUDIO_AMRDTX as EFR
359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum NBAMRDEC_DecodeType
362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    NBAMR,
364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    NBAMRDEC_EFR
365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** NBAMRDEC_MimeMode  Mime Mode
369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_FORMATCONFORMANCE       Mime Mode and IF2 Off
371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_MIMEMODE                Mime Mode On
373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinenum NBAMRDEC_MimeMode {
376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    NBAMRDEC_FORMATCONFORMANCE,
377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    NBAMRDEC_MIMEMODE,
378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        NBAMRDEC_IF2,
379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        NBAMRDEC_PADMIMEMODE
380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** NBAMRDEC_BUFFER_Dir  Direction of the Buffer
384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_DIRECTION_INPUT             Direction Input
386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  NBAMRDEC_DIRECTION_INPUT             Direction Output
388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_DIRECTION_INPUT,
392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    NBAMRDEC_DIRECTION_OUTPUT
393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}NBAMRDEC_BUFFER_Dir;
394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*  Buffer Information.
398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct BUFFS
401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S8 BufHeader;
403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S8 Buffer;
404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}BUFFS;
405fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* NBAMR Buffer Header Type Info.
409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct BUFFERHEADERTYPE_INFO
412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[MAX_NUM_OF_BUFS];
414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    BUFFS bBufOwner[MAX_NUM_OF_BUFS];
415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}BUFFERHEADERTYPE_INFO;
416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** LCML_MimeMode  modes
419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  MODE_MIME                    Mode MIME
421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*
422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin*  @param  MODE_NONMIME                 Mode NONMIME
423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    MODE_MIME,
427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    MODE_NONMIME
428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}LCML_MimeMode;
429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Socket node input parameters.
433fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AMRDEC_AudioCodecParams
436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long iSamplingRate;
438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long iStrmId;
439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned short iAudioFormat;
440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AMRDEC_AudioCodecParams;
441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Socket node alg parameters..
445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*typedef struct {
448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long usEndOfFile;
450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long usFrameLost;
451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AMRDEC_UAlgInBufParamStruct;*/
452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long int usLastFrame;
455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        unsigned long int usFrameLost;
456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}NBAMRDEC_FrameStruct;
457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct{
459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin         unsigned long int usNbFrames;
460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin         NBAMRDEC_FrameStruct *pParamElem;
461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}NBAMRDEC_ParamStruct;
462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* LCML_NBAMRDEC_BUFHEADERTYPE
466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct LCML_NBAMRDEC_BUFHEADERTYPE {
469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      NBAMRDEC_BUFFER_Dir  eDir;
470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      OMX_BUFFERHEADERTYPE* buffer;
471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      NBAMRDEC_FrameStruct *pFrameParam;
472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      NBAMRDEC_ParamStruct *pBufferParam;
473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin      DMM_BUFFER_OBJ* pDmmBuf;
474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}LCML_NBAMRDEC_BUFHEADERTYPE;
475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*   OMX_EXPORT                                           WinCE Implicit Export Syntax
484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport)
487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE NBAMRDEC_StartComponentThread(OMX_HANDLETYPE pHandle);
493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE NBAMRDEC_StopComponentThread(OMX_HANDLETYPE pHandle);
494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE NBAMRDEC_FreeCompResources(OMX_HANDLETYPE pComponent);
495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Instrumentation info
499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct _NBAMRDEC_BUFFERLIST NBAMRDEC_BUFFERLIST;
503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Structure for buffer list
507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinstruct _NBAMRDEC_BUFFERLIST{
510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS]; /* records buffer header send by client */
511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bufferOwner[MAX_NUM_OF_BUFS];
512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bBufferPending[MAX_NUM_OF_BUFS];
513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U16 numBuffers;
514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #ifndef _OMX_EVENT_
518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        #define _OMX_EVENT_
519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        typedef struct OMX_Event {
520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin            HANDLE event;
521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        } OMX_Event;
522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    #endif
523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct PV_OMXComponentCapabilityFlagsType
526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        ////////////////// OMX COMPONENT CAPABILITY RELATED MEMBERS (for opencore compatability)
528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iIsOMXComponentMultiThreaded;
529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc;
530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalInputBufferAlloc;
531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsMovableInputBuffers;
532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsPartialFrames;
533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentNeedsNALStartCode;
534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentCanHandleIncompleteFrames;
535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} PV_OMXComponentCapabilityFlagsType;
536fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * NBAMRDEC_BUFDATA
540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct NBAMRDEC_BUFDATA {
543fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U8 nFrames;
544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}NBAMRDEC_BUFDATA;
545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* =================================================================================== */
547fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
548fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Component private data
549fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin*/
550fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================== */
551fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AMRDEC_COMPONENT_PRIVATE
552fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Array of pointers to BUFFERHEADERTYPE structues
554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       This pBufHeader[NBAMRDEC_INPUT_PORT] will point to all the
555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       BUFFERHEADERTYPE structures related to input port,
556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       not just one structure. Same is for output port
557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin       also. */
558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
559fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
560fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PERF_OBJHANDLE pPERF, pPERFcomp;
561fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntIp;
562fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntOpReceived;
563fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[NUM_OF_PORTS];
566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    BUFFERHEADERTYPE_INFO BufInfo[NUM_OF_PORTS];
568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Structure of callback pointers */
570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_CALLBACKTYPE cbInfo;
571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Handle for use with async callbacks */
573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE sPortParam;
574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Input port parameters */
576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat;
577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Output port parameters */
579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat;
580fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
581fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This will contain info like how many buffers
582fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        are there for input/output ports, their size etc, but not
583fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        BUFFERHEADERTYPE POINTERS. */
584fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS];
585fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
586fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** NBAMR Component Parameters */
587fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_AMRTYPE* amrParams[NUM_OF_PORTS]; /*amrParams[Output] = OMX_AUDIO_PARAM_PCMMODETYPE*/
588fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
589fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This is component handle */
590fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_COMPONENTTYPE* pHandle;
591fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
592fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Current state of this component */
593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STATETYPE curState;
594fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
595fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The component thread handle */
596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_t ComponentThread;
597fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
599fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int dataPipe[2];
600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
601fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
602fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdPipe[2];
603fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
604fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdDataPipe[2];
606fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
607fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Set to indicate component is stopping */
608fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsStopping;
609fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
610fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
611fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nIpBuf;
612fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
613fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nOpBuf;
615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of Buffers In the Application*/
617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 app_nBuf;
618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** LCML Number Input Buffer Received*/
620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntIp;
621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** LCML Number Output Buffer Received*/
623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntOpReceived;
624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Num Reclaimed OutPut Buff    */
626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 num_Reclaimed_Op_Buff;
627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML Handle */
629fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE pLcmlHandle;
630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** LCML Buffer Header */
632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    LCML_NBAMRDEC_BUFHEADERTYPE *pLcmlBufHeader[2];
633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for mime mode */
635fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S16 iAmrMimeFlag;
636fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Sampling Frequeny */
638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S16 iAmrSamplingFrequeny;
639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
640fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of channels */
641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 iAmrChannels;
642fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
643fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag for Amr mode */
644fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S16 iAmrMode;
645fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
646fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag for DASF mode */
647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 dasfmode;
648fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for mime mode */
650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 mimemode;
651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for ACDN mode */
653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 acdnmode;
654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Writing pipe Used for DSP_RENDERING_ON */
656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int fdwrite;
657fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
658fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Reading pipe Used for DSP_RENDERING_ON */
659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int fdread;
660fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* ID stream ID*/
662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 streamID;
663fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
664fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Flag for Port Defs Allocated*/
665fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bPortDefsAllocated;
666fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
667fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Flag for Component Thread Started*/
668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bCompThreadStarted;
669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
670fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Mark data */
671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pMarkData;
672fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
673fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Mark buffer */
674fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MARKTYPE *pMarkBuf;
675fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
676fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Mark target component */
677fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_HANDLETYPE hMarkTargetComponent;
678fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
679fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag set when buffer should not be queued to the DSP */
680fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bBypassDSP;
681fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
682fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Input buffer list */
683fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   NBAMRDEC_BUFFERLIST *pInputBufferList;
684fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
685fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Output buffer list */
686fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   NBAMRDEC_BUFFERLIST *pOutputBufferList;
687fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
688fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** LCML stream attributes */
689fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   LCML_STRMATTR *strmAttr;
690fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
691fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Component version */
692fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 nVersion;
693fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
694fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Play Complete Flag */
695fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bPlayCompleteFlag;
696fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
697fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** NBAMR Mime Bytes */
698b65f253fdc60f6208a54911bee793d225f23cdf8James Dong   OMX_U32 amrMimeBytes[NUM_MIME_BYTES_ARRAY];
699fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
700fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /**NBAMR IF2 Bytes**/
701b65f253fdc60f6208a54911bee793d225f23cdf8James Dong   OMX_U32 amrIF2Bytes[NUM_IF2_BYTES_ARRAY];
702fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
703fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Number of Bytes holding to be sent*/
704fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 nHoldLength;
705fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
706fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Pointer to the data holding to be sent*/
707fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U8* pHoldBuffer;
708fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
709fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag set when LCML handle is opened */
710fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_S16 bLcmlHandleOpened;
711fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
712fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Keeps track of the number of nFillThisBufferCount() calls */
713fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 nFillThisBufferCount;
714fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
715fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Keeps track of the number of nFillBufferDoneCount() calls */
716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nFillBufferDoneCount;
717fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
718fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Keeps track of the number of nEmptyThisBufferCount() calls */
719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyThisBufferCount;
720fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
721fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Keeps track of the number of nEmptyBufferDoneCount() calls */
722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyBufferDoneCount;
723fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
724fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Parameters for the Audio Codec */
725fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   AMRDEC_AudioCodecParams *pParams;
726fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
727fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag for Init Params Initialized */
728fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bInitParamsInitialized;
729fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
730fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag for bIdleCommandPending */
731fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /*  OMX_U32 bIdleCommandPending;  */
732fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
733fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Array of Input Buffers that are pending to sent due State = Idle */
734fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS];
735fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
736fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Number of Input Buffers that are pending to sent due State = Idle */
737fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 nNumInputBufPending;
738fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
739fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Array of Output Buffers that are pending to sent due State = Idle */
740fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS];
741fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
742fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Number of Output Buffers that are pending to sent due State = Idle */
743fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 nNumOutputBufPending;
744fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
745fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag for bDisableCommandPending*/
746fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bDisableCommandPending;
747fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
748fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bEnableCommandPending;
749fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
750fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   /** Flag for bDisableCommandParam*/
751fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bDisableCommandParam;
752fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
753fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin   OMX_U32 bEnableCommandParam;
754fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to set when socket node stop callback should not transition
756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        component to OMX_StateIdle */
757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bNoIdleOnStop;
758fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of outstanding FillBufferDone() calls */
760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nOutStandingFillDones;
761fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
762fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Stop Codec Command Sent Flag*/
763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 bStopSent;
764fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nRuntimeInputBuffers;
766fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nRuntimeOutputBuffers;
768fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Removing sleep() calls. Definition. */
770fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t AlloBuf_mutex;
772fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t AlloBuf_threshold;
773fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
774fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t codecStop_mutex;
776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_cond_t codecStop_threshold;
777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 codecStop_waitingsignal;
778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
779fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InLoaded_mutex;
780fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InLoaded_threshold;
781fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
782fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
783fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InIdle_mutex;
784fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InIdle_threshold;
785fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S8 nUnhandledFillThisBuffers;
788fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S8 nUnhandledEmptyThisBuffers;
789fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushOutputPortCommandPending;
790fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushInputPortCommandPending;
791fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
792fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event AlloBuf_event;
793fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
794fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
795fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InLoaded_event;
796fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
797fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
798fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InIdle_event;
799fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
800fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
801fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Removing sleep() calls. Definition. */
802fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
803fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 PendingPausedBufs;
804fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPausedPending[MAX_NUM_OF_BUFS];
805fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
806fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *LastOutbuf;
807fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL bIsInvalidState;
809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_STRING* sDeviceString;
810fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    void* ptrLibLCML;
812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
813fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer timestamps */
814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S64 arrBufIndex[MAX_NUM_OF_BUFS];
815fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Circular array to keep buffer nTickCounts */
816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S64 arrTickCount[MAX_NUM_OF_BUFS];
817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for input buffer timestamps */
818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 IpBufindex;
819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for output buffer timestamps */
820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 OpBufindex;
821fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
822fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to flush SN after EOS in order to process more buffers after EOS**/
823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 SendAfterEOS;
824fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
825b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    /** Flag to mark the first sent buffer**/
826b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U8 first_buff;
827b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    /** First Time Stamp sent **/
828b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_TICKS first_TS;
829b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
830b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    /** Temporal time stamp **/
831b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_TICKS temp_TS;
832b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
833fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bLoadedCommandPending;
834fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
835fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_COMPONENTROLETYPE componentRole;
836fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
837fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to port priority management structure */
838fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PRIORITYMGMTTYPE* pPriorityMgmt;
839fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
840b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
841b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    RMPROXY_CALLBACKTYPE rmproxyCallback;
842b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
843fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
844fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bPreempted;
845fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFrameLost;
846fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
847b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to mark RTSP**/
848b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 using_rtsp;
849b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
850fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PV_OMXComponentCapabilityFlagsType iPVCapabilityFlags;
851fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
852fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    struct OMX_TI_Debug dbg;
853fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
854b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong    /** Indicate when first output buffer received from DSP **/
855b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong    OMX_U32 first_output_buf_rcv;
856b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong
857fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AMRDEC_COMPONENT_PRIVATE;
858fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
859fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_NBAMRDEC_INDEXAUDIOTYPE {
860fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecModeEfrConfig = 0xFF000001,
861fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecModeAmrConfig,
862fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecModeAcdnConfig,
863fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecModeDasfConfig,
864fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecModeMimeConfig,
865fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecHeaderInfoConfig,
866fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecStreamIDConfig,
867fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecDataPath,
868fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomNbAmrDecNextFrameLost,
869fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IndexCustomDebug
870fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}OMX_NBAMRDEC_INDEXAUDIOTYPE;
871fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
872b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*=======================================================================*/
873b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*! @fn SignalIfAllBuffersAreReturned
874b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
875b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @brief Sends pthread signal to indicate OMX has returned all buffers to app
876b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
877b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @param  none
878b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
879b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @Return void
880b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
881b65f253fdc60f6208a54911bee793d225f23cdf8James Dong */
882b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*=======================================================================*/
883b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid SignalIfAllBuffersAreReturned(AMRDEC_COMPONENT_PRIVATE *pComponentPrivate);
884b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
885fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* OMX_AMRDECODER_H */
886