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_AacDec_Utils.h
30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This is an header file for an audio AAC decoder that is fully
32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * compliant with the OMX Audio specification.
33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This the file is used internally by the component
34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * in its code.
35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @path  $(CSLPATH)\OMAPSW_MPU\linux\audio\src\openmax_il\aac_dec\inc\
37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @rev 1.0
39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* --------------------------------------------------------------------------- */
41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_AACDEC_UTILS__H
42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACDEC_UTILS__H
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Component.h>
45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_TI_Common.h>
46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_TI_Debug.h>
47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "LCML_DspCodec.h"
48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <pthread.h>
49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <sched.h>
50b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
51b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
52b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h>
53b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
54b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <windows.h>
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <oaf_osal.h>
58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <omx_core.h>
59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <stdlib.h>
60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AUDIO_MANAGER
63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AUDIO_MANAGER
65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include "perf.h"
69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef ANDROID
72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define ANDROID
73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef ANDROID
76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Log for Android system*/
77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #undef LOG_TAG
78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define LOG_TAG "OMX_AACDEC"
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* PV opencore capability custom parameter index */
81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define PV_OMX_COMPONENT_CAPABILITY_TYPE_INDEX 0xFF7A347
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OBJECTTYPE_LC 2
85b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#define OBJECTTYPE_LTP 4
86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OBJECTTYPE_HE 5
87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OBJECTTYPE_HE2 29
88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define EXIT_COMPONENT_THRD  10
90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AAC_DEC__XXX_VER    Component version
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MAJOR_VER 1
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MINOR_VER 1
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NOT_USED_AACDEC    Defines a value for "don't care" parameters
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NOT_USED_AACDEC 0
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NORMAL_BUFFER_AACDEC    Defines the flag value with all flags turned off
108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NORMAL_BUFFER_AACDEC 0
111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_AACDEC_DEFAULT_SEGMENT    Default segment ID for the LCML
114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACDEC_DEFAULT_SEGMENT (0)
117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_AACDEC_SN_TIMEOUT    Timeout value for the socket node
120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACDEC_SN_TIMEOUT (-1)
123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_AACDEC_SN_PRIORITY   Priority for the socket node
126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACDEC_SN_PRIORITY (10)
129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_AACDEC_NUM_DLLS   number of DLL's
132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_AACDEC_NUM_DLLS (2)
135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_BUFHEADER_VERSION 0x1
137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin ** Default timeout used to come out of blocking calls*
140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACD_TIMEOUT (1000) /* millisecs */
144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Wince #define
148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define sleep Sleep
153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_USN_DLL_NAME   USN DLL name
157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_USN_DLL_NAME "\\windows\\usn.dll64P"
161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_USN_DLL_NAME "usn.dll64P"
163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_DLL_NAME   AAC Dec Decoder socket node DLL name
168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_DLL_NAME "\\windows\\mpeg4aacdec_sn.dll64P"
172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_DLL_NAME "mpeg4aacdec_sn.dll64P"
174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define DONT_CARE 0
177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_CPU_USAGE for Resource Mannager (MHZ)
181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_CPU_USAGE 50
184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_SBR_CONTENT  flag detection
189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_SBR_CONTENT 0x601
193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_PS_CONTENT flag  detection
198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define  AACDEC_PS_CONTENT 0x602
202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_DEBUG   Debug print macro
207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AACDEC_DEBUG
211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _ERROR_PROPAGATION__
212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    DEBUG   Memory print macro
218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#if DEBUG
221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_DPRINT printf
222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MEMPRINT printf
223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_STATEPRINT printf
224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_BUFPRINT printf
225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MEMPRINT printf
226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_EPRINT printf
227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_DPRINT
229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MEMPRINT
230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_STATEPRINT
231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_BUFPRINT
232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_MEMPRINT
233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_EPRINT
234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else /* for Linux */
237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef  AACDEC_DEBUG
239b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    #define AACDEC_DPRINT printf
240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #undef AACDEC_BUFPRINT printf
241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #undef AACDEC_MEMPRINT printf
242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_STATEPRINT printf
243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_DPRINT(...)
245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACDEC_STATEDETAILS
248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_STATEPRINT printf
249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_STATEPRINT(...)
251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACDEC_BUFDETAILS
254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_BUFPRINT printf
255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_BUFPRINT(...)
257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef AACDEC_MEMDETAILS
260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_MEMPRINT(...)  fprintf(stdout, "%s %d::  ",__FUNCTION__, __LINE__); \
261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                  fprintf(stdout, __VA_ARGS__); \
262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                  fprintf(stdout, "\n");
263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    #define AACDEC_MEMPRINT(...)
265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
267a0a88cf291e156344d5346c29824d996d1d81fabSteve Block#define AACDEC_EPRINT ALOGE
268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_OMX_ERROR_EXIT   Exit print and return macro
275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_OMX_ERROR_EXIT(_e_, _c_, _s_)                            \
278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    _e_ = _c_;                                                          \
279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMXDBG_PRINT(stderr, ERROR, 4, 0, "\n**************** OMX ERROR ************************\n");  \
280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMXDBG_PRINT(stderr, ERROR, 4, 0, "%d : Error Name: %s : Error Num = %x",__LINE__, _s_, _e_);  \
281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMXDBG_PRINT(stderr, ERROR, 4, 0, "\n**************** OMX ERROR ************************\n");  \
282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    goto EXIT;
283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
285fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_OMX_CONF_CHECK_CMD   Command check Macro
287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_OMX_CONF_CHECK_CMD(_ptr1, _ptr2, _ptr3)  \
290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    {                                                   \
291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        if(!_ptr1 || !_ptr2 || !_ptr3){                 \
292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            eError = OMX_ErrorBadParameter;             \
293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            goto EXIT;                                  \
294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        }                                               \
295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    }
296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    OMX_CONF_INIT_STRUCT   Macro to Initialise the structure variables
300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_CONF_INIT_STRUCT(_s_, _name_)       \
303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    memset((_s_), 0x0, sizeof(_name_));         \
304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nSize = sizeof(_name_);              \
305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMajor = 1;      \
306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMinor = 1;      \
307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nRevision = 0x0;          \
308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    (_s_)->nVersion.s.nStep = 0x0
309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_BUFDETAILS   Turns buffer messaging on and off
313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AACDEC_BUFDETAILS
316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
317fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
318fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_STATEDETAILS   Turns state messaging on and off
319fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
320fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AACDEC_STATEDETAILS
322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDEC_MEMDETAILS   Turns memory messaging on and off
325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#undef AACDEC_MEMDETAILS
328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_OUTPUT_PORT 1
330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_INPUT_PORT 0
331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACDEC_APP_ID  100
332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define MAX_NUM_OF_BUFS_AACDEC 15
333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define PARAMETRIC_STEREO_AACDEC 1
334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NON_PARAMETRIC_STEREO_AACDEC 0
335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    NUM_OF_PORTS_AACDEC   Number of ports
338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
339fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define NUM_OF_PORTS_AACDEC 2
341fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
343fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    STREAM_COUNT_AACDEC   Number of streams
344fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
345fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define STREAM_COUNT_AACDEC 2
347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** Default timeout used to come out of blocking calls*/
349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACD_NUM_INPUT_BUFFERS   Default number of input buffers
353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACD_NUM_INPUT_BUFFERS 4
357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACD_NUM_OUTPUT_BUFFERS   Default number of output buffers
360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACD_NUM_OUTPUT_BUFFERS 4
364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACD_INPUT_BUFFER_SIZE   Default input buffer size
368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
370fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACD_INPUT_BUFFER_SIZE 1536*4
372fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACD_OUTPUT_BUFFER_SIZE   Default output buffer size
375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
376fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
377fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
378341ee0b938bf39c8e2d94e9aa060428c03b597f7Masaki Sato#define AACD_OUTPUT_BUFFER_SIZE 8192*2
379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACD_SAMPLING_FREQUENCY   Sampling frequency
382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define AACD_SAMPLING_FREQUENCY 44100
385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDec macros for MONO,STEREO_INTERLEAVED,STEREO_NONINTERLEAVED
389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*#define AACD_STEREO_INTERLEAVED_STREAM     2
392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin  #define AACD_STEREO_NONINTERLEAVED_STREAM  3*/
393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @def    AACDec macros for MONO,STEREO_INTERLEAVED,STEREO_NONINTERLEAVED
396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Stream types supported*/
399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define MONO_STREAM_AACDEC                   1
400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define STEREO_INTERLEAVED_STREAM_AACDEC     2
401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define STEREO_NONINTERLEAVED_STREAM_AACDEC  3
402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
403c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato/* ======================================================================= */
404c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato/**
405b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * pthread variable to indicate OMX returned all buffers to app
406c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato */
407c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato/* ======================================================================= */
408b65f253fdc60f6208a54911bee793d225f23cdf8James Dongpthread_mutex_t bufferReturned_mutex;
409c024b9e6872263b80017da0d169e9fbd790b2051Masaki Satopthread_cond_t bufferReturned_condition;
410c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato
411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AAC Decoder Profile:0 - MAIN, 1 - LC, 2 - SSR, 3 - LTP.
414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EProfileMain,
417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EProfileLC,
418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EProfileSSR,
419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EProfileLTP
420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACProfile;
421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** COMP_PORT_TYPE_AACDEC  Port types
423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  INPUT_PORT_AACDEC                    Input port
425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OUTPUT_PORT_AACDEC               Output port
427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*This enum must not be changed. */
430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum COMP_PORT_TYPE_AACDEC {
431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    INPUT_PORT_AACDEC = 0,
432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OUTPUT_PORT_AACDEC
433fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}COMP_PORT_TYPE_AACDEC;
434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** OMX_INDEXAUDIOTYPE_AACDEC  Defines the custom configuration settings
436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *                              for the component
437fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
438fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomMode16_24bit_AACDEC  Sets the 16/24 mode
439fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomModeProfile_AACDEC  Sets the Profile mode
441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomModeSBR_AACDEC  Sets the SBR mode
443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomModeDasfConfig_AACDEC  Sets the DASF mode
445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomModeRAW_AACDEC  Sets the RAW mode
447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param  OMX_IndexCustomModePS_AACDEC  Sets the ParametricStereo mode
449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  ==================================================================== */
452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_INDEXAUDIOTYPE_AACDEC {
453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_IndexCustomAacDecHeaderInfoConfig = 0xFF000001,
454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_IndexCustomAacDecStreamIDConfig,
455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_IndexCustomAacDecDataPath,
456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_IndexCustomDebug
457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}OMX_INDEXAUDIOTYPE_AACDEC;
458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** IAUDIO_PcmFormat: This value is used by DSP.
461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IAUDIO_BLOCK: It is used in DASF mode.
463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IAUDIO_INTERLEAVED: It specifies interleaved format of SN.
465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EAUDIO_BLOCK =0,
469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    EAUDIO_INTERLEAVED
470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}TAUDIO_AacFormat;
471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** IAUDIO_PcmFormat: This value is used by DSP.
474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IAUDIO_BLOCK: It is used in DASF mode.
476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IAUDIO_INTERLEAVED: It specifies interleaved format of SN.
478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IAUDIO_BLOCK=0,
482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IAUDIO_INTERLEAVED
483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} IAUDIO_PcmFormat;
484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** MPEG4AACDEC_UALGParams
486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param lOutputFormat - To set interleaved/Block format:Refer to IAUDIO_AacFormat.
488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param DownSampleSbr -
489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32    size;
493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    long       lOutputFormat;
494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    long       DownSampleSbr;
495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    long       iEnablePS;
496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    long       lSamplingRateIdx;
497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    long       bRawFormat;
498b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    long       dualMonoMode;
499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} MPEG4AACDEC_UALGParams;
500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** IUALG_Cmd_AAC_DEC: This enum type describes the standard set of commands that
503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * will be passed to iualg control API at DSP. This enum is taken as it is from
504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * DSP side USN source code.
505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IUALG_CMD_STOP: This command indicates that higher layer framework
507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * has received a stop command and no more process API will be called for the
508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * current data stream. The iualg layer is expected to ensure that all processed
509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * output as is put in the output IUALG_Buf buffers and the state of all buffers
510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * changed as to free or DISPATCH after this function call.
511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IUALG_CMD_PAUSE: This command indicates that higher layer framework
513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * has received a PAUSE command on the current data stream. The iualg layer
514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * can change the state of some of its output IUALG_Bufs to DISPATCH to enable
515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * high level framework to use the processed data until the command was received.
516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IUALG_CMD_GETSTATUS: This command indicates that some algo specific
518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * status needs to be returned to the framework. The pointer to the status
519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * structure will be in IALG_status * variable passed to the control API.
520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * The interpretation of the content of this pointer is left to IUALG layer.
521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IUALG_CMD_SETSTATUS: This command indicates that some algo specific
523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * status needs to be set. The pointer to the status structure will be in
524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * IALG_status * variable passed to the control API. The interpretation of the
525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * content of this pointer is left to IUALG layer.
526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IUALG_CMD_USERCMDSTART: The algorithm specific control commands can
528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * have the enum type set from this number.
529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_STOP          = 0,
534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_PAUSE         = 1,
535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_GETSTATUS     = 2,
536fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_SETSTATUS     = 3,
537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IUALG_CMD_USERCMDSTART_AACDEC  = 100
538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}IUALG_Cmd_AAC_DEC;
539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
540b1bf6ce9c87d98335387e8475eff8e52d022202bJames Dongtypedef enum{
541b1bf6ce9c87d98335387e8475eff8e52d022202bJames Dong  IAAC_WARN_DATA_CORRUPT = 0x0804
542b1bf6ce9c87d98335387e8475eff8e52d022202bJames Dong}IAAC_WARN_MSG;
543b1bf6ce9c87d98335387e8475eff8e52d022202bJames Dong
544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef UNDER_CE
545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef _OMX_EVENT_
546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define _OMX_EVENT_
547fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_Event {
548fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    HANDLE event;
549fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_Event;
550fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
551fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint OMX_CreateEvent(OMX_Event *event);
552fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint OMX_SignalEvent(OMX_Event *event);
553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint OMX_WaitForEvent(OMX_Event *event);
554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint OMX_DestroyEvent(OMX_Event *event);
555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** IUALG_PCMDCmd: This enum specifies the command to DSP.
559fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
560fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param IULAG_CMD_SETSTREAMTYPE: Specifies the stream type to be sent to DSP.
561fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
562fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
563fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum {
564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    IULAG_CMD_SETSTREAMTYPE = IUALG_CMD_USERCMDSTART_AACDEC
565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}IUALG_PCMDCmd;
566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AACDEC_UAlgInBufParamStruct: This struct is passed with input buffers that
569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * are sent to DSP.
570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Set to 1 if buffer is last buffer */
574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned short bLastBuffer;
575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned short bConcealBuffer;
576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACDEC_UAlgInBufParamStruct;
577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** USN_AudioCodecParams: This contains the information which does to Codec
580fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * on DSP
581fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * are sent to DSP.
582fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
583fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
584fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct USN_AudioCodecParams{
585fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Specifies the sample frequency */
586fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long ulSamplingFreq;
587fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Specifies the UUID */
588fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long unUUID;
589fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Specifies the audio format */
590fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned short unAudioFormat;
591fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}USN_AudioCodecParams;
592fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
594fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AACDEC_UAlgOutBufParamStruct: This is passed with output buffer to DSP.
595fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
597fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct {
598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long ulFrameCount;
599b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    unsigned long isLastBuffer;
600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACDEC_UAlgOutBufParamStruct;
601fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
602fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AACDEC_UALGParams{
603fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long    lOutputFormat;
604fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    unsigned long    lMonoToStereoCopy;
605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACDEC_UALGParams;
606fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
607fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
608fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AACD_LCML_BUFHEADERTYPE: This is LCML buffer header which is sent to LCML
609fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * for both input and output buffers.
610fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
611fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
612fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AACD_LCML_BUFHEADERTYPE {
613fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Direction whether input or output buffer */
614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_DIRTYPE eDir;
615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Pointer to OMX Buffer Header */
616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr;
617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Other parameters, may be useful for enhancements */
618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    void *pOtherParams[10];
619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Input Parameter Information structure */
620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_UAlgInBufParamStruct *pIpParam;
621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Output Parameter Information structure */
622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_UAlgOutBufParamStruct *pOpParam;
623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}AACD_LCML_BUFHEADERTYPE;
624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Component Port Context */
626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AUDIODEC_PORT_TYPE {
627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Used in tunneling, this is handle of tunneled component */
628fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE hTunnelComponent;
629fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Port which has to be tunneled */
630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nTunnelPort;
631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Buffer Supplier Information */
632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERSUPPLIERTYPE eSupplierSetting;
633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Number of buffers */
634fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nBufferCnt;
635fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Port format information */
636fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE* pPortFormat;
637fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AUDIODEC_PORT_TYPE;
638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
640fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AAC_DEC_BUFFERLIST: This contains information about a buffer's owner whether
642fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * it is application or component, number of buffers owned etc.
643fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
644fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_BUFFERHEADERTYPE
645fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
646fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
647fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinstruct AAC_DEC_BUFFERLIST{
648fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Array of pointer to OMX buffer headers */
649fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS_AACDEC];
650fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Array that tells about owner of each buffer */
651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bufferOwner[MAX_NUM_OF_BUFS_AACDEC];
652fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Tracks pending buffers */
653fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bBufferPending[MAX_NUM_OF_BUFS_AACDEC];
654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Number of buffers  */
655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 numBuffers;
656fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin};
657fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
658fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AAC_DEC_BUFFERLIST AACDEC_BUFFERLIST;
659fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
660fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct PV_OMXComponentCapabilityFlagsType
661fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
662fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        ////////////////// OMX COMPONENT CAPABILITY RELATED MEMBERS (for opencore compatability)
663fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iIsOMXComponentMultiThreaded;
664fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc;
665fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsExternalInputBufferAlloc;
666fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsMovableInputBuffers;
667fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentSupportsPartialFrames;
668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentNeedsNALStartCode;
669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_BOOL iOMXComponentCanHandleIncompleteFrames;
670fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} PV_OMXComponentCapabilityFlagsType;
671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
672fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ======================================================================= */
673fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** AACDEC_COMPONENT_PRIVATE: This is the major and main structure of the
674fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * component which contains all type of information of buffers, ports etc
675fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * contained in the component.
676fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
677fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_BUFFERHEADERTYPE
678fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_AUDIO_PARAM_PORTFORMATTYPE
679fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_PARAM_PORTDEFINITIONTYPE
680fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see AACD_LCML_BUFHEADERTYPE
681fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_PORT_PARAM_TYPE
682fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see OMX_PRIORITYMGMTTYPE
683fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see AUDIODEC_PORT_TYPE
684fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see AACDEC_BUFFERLIST
685fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see LCML_STRMATTR
686fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @see
687fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
688fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== */
689fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
690fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct AACDEC_COMPONENT_PRIVATE
691fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
692fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
693fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_CALLBACKTYPE cbInfo;
694fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Handle for use with async callbacks */
695fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE* sPortParam;
696fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Input port information */
697fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat;
698fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Output port information */
699fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat;
700fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Buffer owner information */
701fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsBufferOwned[NUM_OF_PORTS_AACDEC];
702fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
703fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This will contain info like how many buffers
704fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        are there for input/output ports, their size etc, but not
705fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        BUFFERHEADERTYPE POINTERS. */
706fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS_AACDEC];
707fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Contains information that come from application */
708fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_AACPROFILETYPE* aacParams;
709fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
710fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_AUDIO_PARAM_PCMMODETYPE* pcmParams;
711fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
712fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This is component handle */
713fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_COMPONENTTYPE* pHandle;
714fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
715fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Current state of this component */
716fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STATETYPE curState;
717fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
718fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The component thread handle */
719fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_t ComponentThread;
720fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
721fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
722fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int dataPipe[2];
723fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
724fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
725fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdPipe[2];
726fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
727fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The pipes for sending command data to the thread */
728fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    int cmdDataPipe[2];
729fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
730fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Set to indicate component is stopping */
731fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bIsEOFSent;
732fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
733fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
734fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nIpBuf;
735fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
736fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
737fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nOpBuf;
738fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
739fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of input buffers sent to LCML */
740fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntIp;
741fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of input buffers received from LCML */
742fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntIpRes;
743fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of output buffers sent to LCML */
744fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntOp;
745fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of output buffers received from LCML */
746fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntOpReceived;
747fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of buffers sent to App  */
748fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_nCntApp;
749fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of buffers received from App  */
750fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 app_nBuf;
751fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
752fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 lcml_compID;
753fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of output buffers reclaimed from lcml  */
754fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 num_Reclaimed_Op_Buff;
755fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of input buffers sent to lcml  */
756fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 num_Sent_Ip_Buff;
757fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Counts of number of output buffers sent to lcml  */
758fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 num_Op_Issued;
759fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Holds the value of dasf mode, 1: DASF mode or 0: File Mode  */
760fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 dasfmode;
761fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
762fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** This is LCML handle  */
763fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE pLcmlHandle;
764fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
765fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** ID stream ID**/
766fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 streamID;
767fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Contains pointers to LCML Buffer Headers */
768fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACD_LCML_BUFHEADERTYPE *pLcmlBufHeader[2];
769fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
770fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__
771fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PERF_OBJHANDLE pPERF, pPERFcomp;
772fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntIp;
773fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLcml_nCntOpReceived;
774fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
775fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
776fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Tells whether buffers on ports have been allocated */
777fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bPortDefsAllocated;
778fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Tells whether component thread has started */
779fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bCompThreadStarted;
780fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Marks the buffer data  */
781fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pMarkData;
782fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Marks the buffer */
783fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MARKTYPE *pMarkBuf;
784fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Marks the target component */
785fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE hMarkTargetComponent;
786fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to track when input buffer's filled length is 0 */
787fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bBypassDSP;
788fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Input port enable flag */
789fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 ipPortEnableFlag;
790fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Input port disble flag */
791fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 ipPortDisableFlag;
792fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to port parameter structure */
793fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORT_PARAM_TYPE* pPortParamType;
794fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to port priority management structure */
795fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PRIORITYMGMTTYPE* pPriorityMgmt;
796fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
797b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
798b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    RMPROXY_CALLBACKTYPE rmproxyCallback;
799b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
800b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
801fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bPreempted;
802fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
803fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
804fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Contains the port related info of both the ports */
805fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AUDIODEC_PORT_TYPE *pCompPort[NUM_OF_PORTS_AACDEC];
806fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* Checks whether or not buffer were allocated by appliction */
807fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bufAlloced;
808fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to check about execution of component thread */
809fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U16 bExitCompThrd;
810fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to list of input buffers */
811fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_BUFFERLIST *pInputBufferList;
812fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Pointer to list of output buffers */
813fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_BUFFERLIST *pOutputBufferList;
814fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** it is used for component's create phase arguments */
815fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    LCML_STRMATTR  *strmAttr;
816fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Contains the version information */
817fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nVersion;
818fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
819fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of input buffers at runtime */
820fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nRuntimeInputBuffers;
821fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
822fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Number of output buffers at runtime */
823fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nRuntimeOutputBuffers;
824fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
825fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Parameters being passed to the SN */
826fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    USN_AudioCodecParams *pParams;
827fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
828fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Dynamic Parameters being passed to the SN */
829fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    MPEG4AACDEC_UALGParams * AACDEC_UALGParam;
830fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
831fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U16 framemode;
832fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
833fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING cComponentName;
834fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
835fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE ComponentVersion;
836fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
837fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nOpBit;
838fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 parameteric_stereo;
839b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 dualMonoMode;
840fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 SBR;
841fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 RAW;
842fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nFillThisBufferCount;
843fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nFillBufferDoneCount;
844fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nEmptyThisBufferCount;
845fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nEmptyBufferDoneCount;
846fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bInitParamsInitialized;
847fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_BUFFERLIST *pInputBufferListQueue;
848fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    AACDEC_BUFFERLIST *pOutputBufferListQueue;
849fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** To store input buffers recieved while in paused state **/
850fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS_AACDEC];
851fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNumInputBufPending;
852fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
853fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** To store out buffers received while in puased state **/
854fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS_AACDEC];
855fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNumOutputBufPending;
856fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
857fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flags to control port disable command **/
858fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bDisableCommandPending;
859fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bDisableCommandParam;
860fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flags to control port enable command **/
861fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bEnableCommandPending;
862fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bEnableCommandParam;
863fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
864fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nInvalidFrameCount;
865fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 numPendingBuffers;
866fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bNoIdleOnStop;
867fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 bDspStoppedWhileExecuting;
868fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /* bIdleCommandPending;*/
869fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S32 nOutStandingFillDones;
870fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bIsInvalidState;
871fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING* sDeviceString;
872fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
873fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t AlloBuf_mutex;
874fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t AlloBuf_threshold;
875fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
876fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
877fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InLoaded_mutex;
878fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InLoaded_threshold;
879fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
880fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
881fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t InIdle_mutex;
882fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t InIdle_threshold;
883fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
884fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
885fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t codecStop_mutex;
886fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t codecStop_threshold;
887fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 codecStop_waitingsignal;
888fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
889fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_mutex_t codecFlush_mutex;
890fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    pthread_cond_t codecFlush_threshold;
891fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 codecFlush_waitingsignal;
892fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
893b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 nUnhandledFillThisBuffers;
894b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 nHandledFillThisBuffers;
895b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 nUnhandledEmptyThisBuffers;
896b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 nHandledEmptyThisBuffers;
897fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushOutputPortCommandPending;
898fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bFlushInputPortCommandPending;
899fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
900fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event AlloBuf_event;
901fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
902fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
903fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InLoaded_event;
904fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
905fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
906fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Event InIdle_event;
907fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
908fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
909fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
910fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bLoadedCommandPending;
911fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PARAM_COMPONENTROLETYPE *componentRole;
912fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
913fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 PendingInPausedBufs;
914fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pInBufHdrPausedPending[MAX_NUM_OF_BUFS_AACDEC];
915fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 PendingOutPausedBufs;
916fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutBufHdrPausedPending[MAX_NUM_OF_BUFS_AACDEC];
917fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
918fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Keep buffer timestamps **/
919fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_S64 arrBufIndex[MAX_NUM_OF_BUFS_AACDEC];
920fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin	/**Keep buffer tickcount*/
921fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin	OMX_U32 arrBufIndexTick[MAX_NUM_OF_BUFS_AACDEC];
922fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
923fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Index to arrBufIndex[] and arrBufIndexTick[], used for input buffer timestamps */
924fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 IpBufindex;
925fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Index to arrBufIndex[] and arrBufIndexTick[], used for input buffer timestamps  */
926fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 OpBufindex;
927fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
928fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to flush SN after EOS in order to process more buffers after EOS**/
929fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 SendAfterEOS;
930fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
931fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** Flag to mark the first sent buffer**/
932fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 first_buff;
933fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** First Time Stamp sent **/
934b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_TICKS first_TS;
935b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Temporal time stamp **/
936b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_TICKS temp_TS;
937fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
938fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    PV_OMXComponentCapabilityFlagsType iPVCapabilityFlags;
939fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bConfigData;
940fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL reconfigInputPort;
941fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL reconfigOutputPort;
942fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 OutPendingPR;
943fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
944fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    struct OMX_TI_Debug dbg;
945fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
946b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong    /** Indicate when first output buffer received from DSP **/
947b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong    OMX_U32 first_output_buf_rcv;
948b04e7d5f8b0407a4cd6034eadc41ce8f0e5fe8acJames Dong
949fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} AACDEC_COMPONENT_PRIVATE;
950fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
951fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
952fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
953fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_ComponentInit() function is called by OMX Core to initialize the component
954fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * with default values of the component. Before calling this function OMX_Init
955fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * must have been called.
956fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
957fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *hComp This is component handle allocated by the OMX core.
958fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
959fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          OMX_Init should be called by application.
960fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
961fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         Component has initialzed with default values.
962fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
963fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
964fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
965fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
966fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see          AacDec_StartCompThread()
967fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
968fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
969fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef UNDER_CE
970fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
971fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#else
972fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  WinCE Implicit Export Syntax */
973fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport)
974fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
975fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
976fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  OMX_ComponentInit()  Initializes component
977fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
978fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
979fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param hComp            OMX Handle
980fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
981fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return OMX_ErrorNone = Successful
982fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *          Other error code = fail
983fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
984fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
985fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
986fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
987fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
988fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
989fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
990fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
991fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AacDec_StartCompThread() starts the component thread. This is internal
992fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * function of the component.
993fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
994fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core.
995fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
996fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
997fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
998fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
999fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1000fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
1001fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
1002fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1003fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1004fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1005fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1006fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AacDec_StartCompThread(OMX_HANDLETYPE pHandle);
1007fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1008fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1009fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_Fill_LCMLInitParams() fills the LCML initialization structure.
1010fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1011fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core.
1012fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1013fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param plcml_Init This structure is filled and sent to LCML.
1014fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1015fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1016fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1017fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1018fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1019fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the LCML struct.
1020fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
1021fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1022fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1023fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1024fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1025fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_Fill_LCMLInitParams(OMX_HANDLETYPE pHandle, LCML_DSP *plcml_Init, OMX_U16 arr[]);
1026fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1027fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1028fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_GetBufferDirection() function determines whether it is input buffer or
1029fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * output buffer.
1030fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1031fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pBufHeader This is pointer to buffer header whose direction needs to
1032fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *                    be determined.
1033fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1034fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *eDir  This is output argument which stores the direction of buffer.
1035fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1036fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1037fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1038fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1039fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1040fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful processing.
1041fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorBadParameter = In case of invalid buffer
1042fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1043fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1044fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1045fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1046fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_GetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader,
1047fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        OMX_DIRTYPE *eDir);
1048fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1049fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1050fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_LCML_Callback() function is callback which is called by LCML whenever
1051fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * there is an even generated for the component.
1052fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1053fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param event  This is event that was generated.
1054fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1055fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param arg    This has other needed arguments supplied by LCML like handles
1056fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               etc.
1057fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1058fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1059fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1060fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1061fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1062fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful processing.
1063fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
1064fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1065fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1066fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1067fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1068fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_LCML_Callback (TUsnCodecEvent event,void * args [10]);
1069fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1070fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1071fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_HandleCommand() function handles the command sent by the application.
1072fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * All the state transitions, except from nothing to loaded state, of the
1073fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * component are done by this function.
1074fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1075fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param pComponentPrivate  This is component's private date structure.
1076fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1077fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1078fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1079fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1080fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1081fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful processing.
1082fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
1083fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorHardware = Hardware error has occured lile LCML failed
1084fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               to do any said operartion.
1085fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1086fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1087fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1088fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1089fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACDEC_HandleCommand (AACDEC_COMPONENT_PRIVATE *pComponentPrivate);
1090fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1091fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1092fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_HandleDataBuf_FromApp() function handles the input and output buffers
1093fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * that come from the application. It is not direct function wich gets called by
1094fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * the application rather, it gets called eventually.
1095fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1096fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pBufHeader This is the buffer header that needs to be processed.
1097fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1098fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pComponentPrivate  This is component's private date structure.
1099fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful processing.
1105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorInsufficientResources = Not enough memory
1106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorHardware = Hardware error has occured lile LCML failed
1107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               to do any said operartion.
1108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_HandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader,
1113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                           AACDEC_COMPONENT_PRIVATE *pComponentPrivate);
1114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_GetLCMLHandle() function gets the LCML handle and interacts with LCML
1117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * by using this LCML Handle.
1118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pBufHeader This is the buffer header that needs to be processed.
1120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pComponentPrivate  This is component's private date structure.
1122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_HANDLETYPE = Successful loading of LCML library.
1128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorHardware = Hardware error has occured.
1129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_HANDLETYPE AACDEC_GetLCMLHandle(AACDEC_COMPONENT_PRIVATE* pComponentPrivate);
1134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_GetCorresponding_LCMLHeader() function gets the corresponding LCML
1137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * header from the actual data buffer for required processing.
1138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *pBuffer This is the data buffer pointer.
1140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param eDir   This is direction of buffer. Input/Output.
1142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param *AACD_LCML_BUFHEADERTYPE  This is pointer to LCML Buffer Header.
1144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
1150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorHardware = Hardware error has occured.
1151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_GetCorresponding_LCMLHeader(AACDEC_COMPONENT_PRIVATE* pComponentPrivate,
1156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                                 OMX_U8 *pBuffer,
1157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                                 OMX_DIRTYPE eDir,
1158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                                 AACD_LCML_BUFHEADERTYPE **ppLcmlHdr);
1159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_FreeCompResources() function frees the component resources.
1162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param pComponent This is the component handle.
1164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
1170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *               OMX_ErrorHardware = Hardware error has occured.
1171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDEC_FreeCompResources(OMX_HANDLETYPE pComponent);
1176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================= * */
1177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AACDEC_CleanupInitParams() function frees only the initialization time
1179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * memories allocated. For example, it will not close pipes, it will not free the
1180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * memory allocated to the buffers etc. But it does free the memory of buffers
1181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * utilized by the LCML etc. It is basically subset of AACDEC_FreeCompResources()
1182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * function.
1183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param pComponent This is the component handle.
1185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @pre          None
1187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @post         None
1189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
1191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @see         None
1193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ================================================================================ * */
1195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid AACDEC_CleanupInitParams(OMX_HANDLETYPE pComponent);
1196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */
1197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
1198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * AACDEC_CleanupInitParamsEx() function frees only the initialization time
1199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * memories allocated. For example, it will not close pipes, it will not free the
1200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * memory allocated to the buffers etc. But it does free the memory of buffers
1201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * utilized by the LCML etc. It is basically subset of AACDEC_FreeCompResources()
1202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * function. Called while port disable when port reconfiguration takes place.
1203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
1204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pComponent This is the component handle.
1205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
1206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre          None
1207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
1208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post         None
1209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
1210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @return      OMX_ErrorNone = Successful Inirialization of the component\n
1211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
1212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @see         None
1213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
1214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */
1215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid AACDEC_CleanupInitParamsEx(OMX_HANDLETYPE pComponent,OMX_U32 indexport);
1216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
1217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  AACDEC_SetPending()  Called when the component queues a buffer
1219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * to the LCML
1220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pComponentPrivate        Component private data
1222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pBufHdr                Buffer header
1224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param eDir                    Direction of the buffer
1226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return None
1228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
1230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid AACDEC_SetPending(AACDEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber);
1231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
1232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  AACDEC_ClearPending()  Called when a buffer is returned
1234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * from the LCML
1235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pComponentPrivate        Component private data
1237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pBufHdr                Buffer header
1239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param eDir                    Direction of the buffer
1241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return None
1243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
1245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid AACDEC_ClearPending(AACDEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber) ;
1246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
1247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  AACDEC_IsPending()
1249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pComponentPrivate        Component private data
1252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return OMX_ErrorNone = Successful
1254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *          Other error code = fail
1255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
1257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACDEC_IsPending(AACDEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir);
1258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
1259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  AACDECFill_LCMLInitParamsEx()  Fills the parameters needed
1261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * to initialize the LCML without recreating the socket node
1262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pComponent            OMX Handle
1264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return None
1266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
1269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_ERRORTYPE AACDECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent,OMX_U32 indexport);
1270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ===========================================================  */
1271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/**
1272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  AACDEC_IsValid()
1273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @param pComponentPrivate        Component private data
1276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
1277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @return OMX_ErrorNone = Successful
1278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *          Other error code = fail
1279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*================================================================== */
1281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACDEC_IsValid(AACDEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U8 *pBuffer, OMX_DIRTYPE eDir) ;
1282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1283b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
1284b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid AACDEC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData);
1285b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
1286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*=======================================================================*/
1287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*! @fn AACDec_GetSampleRateIndexL
1288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @brief Gets the sample rate index
1290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @param  aRate : Actual Sampling Freq
1292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @Return  Index
1294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
1296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*=======================================================================*/
1297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint AACDec_GetSampleRateIndexL( const int aRate);
1298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinint AACDec_GetSampleRatebyIndex( const int index);
1299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinvoid* AACDEC_ComponentThread (void* pThreadData);
1300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACDEC_ParseHeader(OMX_BUFFERHEADERTYPE* pBufHeader,
1302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                           AACDEC_COMPONENT_PRIVATE *pComponentPrivate);
1303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  =========================================================================*/
1305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  func    GetBits                                                          */
1306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*                                                                           */
1307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  desc    Gets aBits number of bits from position aPosition of one buffer  */
1308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*            and returns the value in a TUint value.                        */
1309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*  =========================================================================*/
1310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz ZavinOMX_U32 AACDEC_GetBits(OMX_U32* nPosition, OMX_U8 nBits, OMX_U8* pBuffer, OMX_BOOL bIcreasePosition);
1311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
1312b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*  =========================================================================*/
1313b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*  func    AACDEC_HandleUSNError
1314b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *
1315b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *  desc    Handles error messages returned by the dsp
1316b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *
1317b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @Return n/a
1318b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *
1319b65f253fdc60f6208a54911bee793d225f23cdf8James Dong *  =========================================================================*/
1320b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid AACDEC_HandleUSNError (AACDEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U32 arg);
1321eaaadaf5ebb5e352e2ed4a12714f5d2363da0dcdJames Dong
1322b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*=======================================================================*/
1323b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*! @fn SignalIfAllBuffersAreReturned
1324b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @brief Sends pthread signal to indicate OMX has returned all buffers to app
1325b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @param  none
1326b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * @Return void
1327c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato */
1328c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato/*=======================================================================*/
1329c024b9e6872263b80017da0d169e9fbd790b2051Masaki Satovoid SignalIfAllBuffersAreReturned(AACDEC_COMPONENT_PRIVATE *pComponentPrivate);
1330c024b9e6872263b80017da0d169e9fbd790b2051Masaki Sato
1331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
1332