1b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
2b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*
3b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/
4b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
5b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is free software; you can redistribute it and/or
6b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public
7b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License as published by the Free Software Foundation; either
8b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version.
9b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
10b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
11b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is distributed in the hope that it will be useful,
12b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of
13b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Lesser General Public License for more details.
15b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
16b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
17b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public
18b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License along with this library; if not, write to the Free Software
19b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
21b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =============================================================================
22b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *             Texas Instruments OMAP(TM) Platform Software
23b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  (c) Copyright Texas Instruments, Incorporated.  All Rights Reserved.
24b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
25b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  Use of this software is controlled by the terms and conditions found
26b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  in the license agreement under which this software has been supplied.
27b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * ============================================================================ */
28b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
29b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @file OMX_G711Dec_Utils.h
30b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
31b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This is an header file for an audio PCM decoder that is fully
32b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * compliant with the OMX Audio specification.
33b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This the header file with the utils necesary to for the G711_DEC component.
34b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * in its code.
35b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
36b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @path $(CSLPATH)\
37b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
38b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @rev 0.1
39b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
40b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* --------------------------------------------------------------------------- */
41b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
42b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef OMX_G711DEC_UTILS__H
43b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_UTILS__H
44b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
45b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "LCML_DspCodec.h"
46b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Component.h>
47b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <pthread.h>
48b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
49b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED
50b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h>
51b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif
52b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
56b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    G711DEC_MAJOR_VER              Define value for "major" version
57b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
58b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
59b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  G711DEC_MAJOR_VER 0xF1
60b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
61b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
62b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    G711DEC_MINOR_VER              Define value for "minor" version
64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
65b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
66b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define  G711DEC_MINOR_VER 0xF2
67b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
68b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
69b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
70b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NOT_USED                            Define a not used value
71b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
72b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
73b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NOT_USED 10
74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
76b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
77b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NORMAL_BUFFER                       Define a normal buffer value
78b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
79b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
80b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NORMAL_BUFFER 0
81b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
82b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
83b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    OMX_G711DEC_DEFAULT_SEGMENT        Define the default segment
85b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_DEFAULT_SEGMENT (0)
88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
89b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
90b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    OMX_G711DEC_SN_TIMEOUT            Define a value for SN Timeout
92b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
93b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_SN_TIMEOUT (-1)
95b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
97b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
98b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    OMX_G711DEC_SN_PRIORITY           Define a value for SN Priority
99b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_SN_PRIORITY (10)
102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    OMX_G711DEC_CPU   TBD, 50MHz for the moment
106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DEC_CPU (50)
109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    G711DEC_USN_DLL_NAME             Path & Name of USN DLL to be used
113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *                                           at initialization
114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE
117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_USN_DLL_NAME "\\windows\\usn.dll64P"
118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_USN_DLL_NAME "usn.dll64P"
120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    G711DEC_USN_DLL_NAME             Path & Name of DLL to be useda
125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *                                           at initialization
126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE
129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DLL_NAME "\\windows\\g711dec_sn.dll64P"
130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DLL_NAME "g711dec_sn.dll64P"
132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    EXTRA_BUFFBYTES                Num of Extra Bytes to be allocated
139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EXTRA_BUFFBYTES (256)
142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    G711D_TIMEOUT   Default timeout used to come out of blocking calls
146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_TIMEOUT (1000) /* millisecs */
149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NUM_G711DEC_INPUT_BUFFERS              Number of Input Buffers
153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_INPUT_BUFFERS 1
156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NUM_G711DEC_OUTPUT_BUFFERS              Number of Output Buffers
160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_OUTPUT_BUFFERS 1
163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NUM_G711DEC_OUTPUT_BUFFERS_DASF         Number of Output Buffers
167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *                                                  on DASF mode
168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_G711DEC_OUTPUT_BUFFERS_DASF 2
171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    OUTPUT_G711DEC_BUFFER_SIZE           Standart Output Buffer Size
175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OUTPUT_G711DEC_BUFFER_SIZE 160
178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    INPUT_G711DEC_BUFFER_SIZE             Standart Input Buffer Size
182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INPUT_G711DEC_BUFFER_SIZE 80
186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    RTP_Framesize                          Size in Bytes of determined
189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *                                               frame. Not change it
190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define RTP_Framesize 80
193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    STD_GSMFRDEC_BUF_SIZE                  Standart Input Buffer Size
196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define STD_G711DEC_BUF_SIZE 80
199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    STREAM_COUNT                         Stream Count value for
203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *                                              LCML init.
204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define STREAM_COUNT 2
207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    INPUT_STREAM_ID                      Input Stream ID
211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INPUT_STREAM_ID 0
214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    MAX_NUM_OF_BUFS                      Max Num of Bufs Allowed
218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MAX_NUM_OF_BUFS 10
221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/
222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** DEBUG PRINT's MACROS
223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *@Memory check; printf's; component debug                                                           */
224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/
225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_DEBUG
226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_PRINT
227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_MEMCHECK
228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/
229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EXIT_COMPONENT_THRD  10
230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid* ComponentThread (void* pThreadData);
231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*======================================================================*/
232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE
233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef  G711DEC_DEBUG
234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(...)    fprintf(stderr,__VA_ARGS__)
235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(...)
237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef  G711DEC_MEMCHECK
240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(...)    fprintf(stderr,__VA_ARGS__)
241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(...)
243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef  G711DEC_DEBUG_MCP
247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MCP_DPRINT(...)    fprintf(stderr,__VA_ARGS__)
248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MCP_DPRINT(...)
250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else /*UNDER_CE*/
253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef  G711DEC_DEBUG
254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT(STR, ARG...) printf()
255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G711DEC_MEMCHECK
259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT(STR, ARG...) printf()
260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE
263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DEBUG
265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT   printf
266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT   printf
267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_DPRINT
269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_MEMPRINT
270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif  /*UNDER_CE*/
273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**************************************************************/
276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef  G711DEC_PRINT
277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_PRINT(...)    printf(stderr,__VA_ARGS__)
278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711DEC_PRINT(...)
280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    WMADEC_MEMDEBUG   Enable memory leaks debuf info
285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G711DEC_MEMDEBUG
288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def  CACHE_ALIGNMENT                           Buffer Cache Alignment
292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define CACHE_ALIGNMENT 128
295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @def    NUM_OF_PORTS                       Number of Comunication Port
299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_PORTS 2
302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  M A C R O S FOR MALLOC and MEMORY FREE and CLOSING PIPES
307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_NBCONF_INIT_STRUCT(_s_, _name_)     \
311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    memset((_s_), 0x0, sizeof(_name_));         \
312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    (_s_)->nSize = sizeof(_name_);              \
313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMajor = 0x1;      \
314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    (_s_)->nVersion.s.nVersionMinor = 0x0;      \
315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    (_s_)->nVersion.s.nRevision = 0x0;          \
316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    (_s_)->nVersion.s.nStep = 0x0
317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_OMX_MALLOC(_pStruct_, _sName_)                        \
319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    _pStruct_ = (_sName_*)newmalloc(sizeof(_sName_));               \
320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    if(_pStruct_ == NULL){                                          \
321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("***********************************\n");            \
322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("%d :: Malloc Failed\n",__LINE__);                   \
323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("***********************************\n");            \
324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        eError = OMX_ErrorInsufficientResources;                    \
325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        goto EXIT;                                                  \
326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    }                                                               \
327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    memset(_pStruct_,0,sizeof(_sName_));                            \
328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_pStruct_);
329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G711D_OMX_MALLOC_SIZE(_ptr_, _size_,_name_)             \
331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    _ptr_ = (_name_ *)newmalloc(_size_);                        \
332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    if(_ptr_ == NULL){                                          \
333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("***********************************\n");        \
334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("%d :: Malloc Failed\n",__LINE__);               \
335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("***********************************\n");        \
336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        eError = OMX_ErrorInsufficientResources;                \
337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        goto EXIT;                                              \
338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    }                                                           \
339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    memset(_ptr_,0,_size_);                                     \
340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_ptr_);
341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G711DECMEMFREE_STRUCT(_pStruct_)                    \
343eaaadaf5ebb5e352e2ed4a12714f5d2363da0dcdJames Dong    if(_pStruct_ != NULL){                                      \
344b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    G711DEC_MEMPRINT("%d :: [FREE] %p\n",__LINE__,_pStruct_);   \
345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        newfree(_pStruct_);                                     \
346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        _pStruct_ = NULL;                                       \
347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    }
348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_NBCLOSE_PIPE(_pStruct_,err)                         \
350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_DPRINT("%d :: CLOSING PIPE \n",__LINE__);           \
351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    err = close (_pStruct_);                                    \
352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    if(0 != err && OMX_ErrorNone == eError){                    \
353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        eError = OMX_ErrorHardware;                             \
354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        printf("%d :: Error while closing pipe\n",__LINE__);    \
355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        goto EXIT;                                              \
356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    }
357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_COMP_PORT_TYPE  Port Type
360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_INPUT_PORT                   Port Type Input
362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_OUTPUT_PORT                  Port Type Output
364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*  ==================================================================== */
367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum G711DEC_COMP_PORT_TYPE {
368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_INPUT_PORT = 0,
369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_OUTPUT_PORT
370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_COMP_PORT_TYPE;
371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_StreamType  StreamType
374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_DMM                  Stream Type DMM
376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_INSTRM               Stream Type Input
378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_OUTSTRM             Stream Type Output
380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*  ==================================================================== */
382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinenum G711DEC_StreamType
383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    {
384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        G711DEC_DMM,
385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        G711DEC_INSTRM,
386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        G711DEC_OUTSTRM
387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    };
388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */
390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G711DEC_BUFFER_Dir  Direction of the Buffer
391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_DIRECTION_INPUT              Direction Input
393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *  @param  G711DEC_DIRECTION_INPUT              Direction Output
395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*  ==================================================================== */
397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum {
398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_DIRECTION_INPUT,
399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_DIRECTION_OUTPUT
400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_BUFFER_Dir;
401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *
406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_FTYPES{
409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16     FrameSizeType;
410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16     NmuNLvl;
411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16     NoiseLp;
412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16     dBmNoise;
413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16     plc;
414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_FTYPES;
415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node input parameters.
418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_AudioCodecParams
421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{
422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long iSamplingRate;
423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long iStrmId;
424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned short iAudioFormat;
425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_AudioCodecParams;
426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node alg parameters..
430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct {
433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long usEndOfFile;
434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long usFrameLost;
435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G711DEC_UAlgInBufParamStruct;
436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Socket node alg parameters..
440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * frameType @ Type of packaging per frame number
441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * usLastFrame @ End of decoding
442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================== */
444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_FrameStruct{
445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long   frameType; /* 0: voice frame (80 bytes), 1: SID frame (22 bytes), 2: No Data (0 bytes), 3: Frame lost */
446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long   usLastFrame;
447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_FrameStruct;
448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_ParamStruct{
450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    unsigned long int usNbFrames;
451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_FrameStruct *pParamElem;
452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_ParamStruct;
453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * LCML_G711DEC_BUFHEADERTYPE
457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct LCML_G711DEC_BUFHEADERTYPE {
460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_BUFFER_Dir eDir;
461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* buffer;
462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_UAlgInBufParamStruct *pIpParam;
463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_FrameStruct *pFrameParam;
464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_ParamStruct *pBufferParam;
465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    DMM_BUFFER_OBJ* pDmmBuf;
466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}LCML_G711DEC_BUFHEADERTYPE;
467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE
469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *   OMX_EXPORT                                           WinCE Implicit Export Syntax
476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport)
479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp);
481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_StartComponentThread(OMX_HANDLETYPE pHandle);
485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_StopComponentThread(OMX_HANDLETYPE pHandle);
486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_FreeCompResources(OMX_HANDLETYPE pComponent);
487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct _G711DEC_BUFFERLIST G711DEC_BUFFERLIST;
489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Structure for buffer list
493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstruct _G711DEC_BUFFERLIST{
496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS]; /* records buffer header send by client */
497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bufferOwner[MAX_NUM_OF_BUFS];
498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bBufferPending[MAX_NUM_OF_BUFS];
499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 numBuffers;
500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin};
501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G711ENC_PORT_TYPE Structure for PortFormat details
505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_PORT_TYPE {
508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_HANDLETYPE hTunnelComponent;
509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nTunnelPort;
510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERSUPPLIERTYPE eSupplierSetting;
511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 nBufferCnt;
512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE* pPortFormat;
513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_PORT_TYPE;
514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_DmmMap(DSP_HPROCESSOR ProcHandle, int size,
516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                         void* pArmPtr, DMM_BUFFER_OBJ* pDmmBuf);
517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_DmmUnMap(DSP_HPROCESSOR ProcHandle, void* pMapPtr,
518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                           void* pResPtr);
519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* =================================================================================== */
520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**
521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Component private data
522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */
523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================== */
524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G711DEC_COMPONENT_PRIVATE
525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{
526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE
527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE* pBufHeader[NUM_OF_PORTS];
528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Structure of callback pointers */
531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_CALLBACKTYPE cbInfo;
532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
533b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_PORT_TYPE *pCompPort[NUM_OF_PORTS];
534b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
535b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Handle for use with async callbacks */
536b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_PORT_PARAM_TYPE sPortParam;
537b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
538b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Input port parameters */
539b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat;
540b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
541b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Output port parameters */
542b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat;
543b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** This will contain info like how many buffers
545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        are there for input/output ports, their size etc, but not
546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        BUFFERHEADERTYPE POINTERS. */
547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS];
548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** G711 Component Parameters */
550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_AUDIO_PARAM_PCMMODETYPE* g711Params[NUM_OF_PORTS];
551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** This is component handle */
553b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_COMPONENTTYPE* pHandle;
554b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
555b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Current state of this component */
556b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_STATETYPE curState;
557b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** The component thread handle */
559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_t ComponentThread;
560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int dataPipe[2];
563b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int cmdPipe[2];
566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** The pipes for sending buffers to the thread */
568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int cmdDataPipe[2];
569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Set to indicate component is stopping */
571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bIsStopping;
572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag set when the EOS marker is sent */
574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bIsEOFSent;
575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 lcml_nIpBuf;
578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Count of number of buffers outstanding with bridge */
580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 lcml_nOpBuf;
581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of Buffers In the Application*/
583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 app_nBuf;
584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML Number Input Buffer Received*/
586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 lcml_nCntIp;
587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML Number Output Buffer Received*/
589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 lcml_nCntOpReceived;
590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Num Reclaimed OutPut Buff    */
592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 num_Reclaimed_Op_Buff;
593b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Num Sent Input Buff   */
595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 num_Sent_Ip_Buff;
596b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Num Sent Output Buff Issued   */
598b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 num_Op_Issued;
599b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
600b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML Handle */
601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_HANDLETYPE pLcmlHandle;
602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML Buffer Header */
604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    LCML_G711DEC_BUFHEADERTYPE *pLcmlBufHeader[2];
605b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for G711 mode */
607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 iG711Mode;
608b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
609b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for DASF mode */
610b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 dasfmode;
611b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for ACDN mode */
613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 acdnmode;
614b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
615b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for frame size type mode */
616b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 fsizemode;
617b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for fram type mode */
618b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 ftype;
619b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Noise Level NMU */
620b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 nmulevel;
621b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Noise LP  */
622b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 noiselp;
623b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Noise level in dBm */
624b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 dbmnoise;
625b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Noise level in dBm */
626b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 packetlostc;
627b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Writing pipe Used for DSP_RENDERING_ON */
629b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int fdwrite;
630b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
631b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Reading pipe Used for DSP_RENDERING_ON */
632b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    int fdread;
633b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* ID stream ID*/
635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 streamID;
636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Flag for Port Defs Allocated*/
638b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bPortDefsAllocated;
639b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Flag for Component Thread Started*/
641b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bCompThreadStarted;
642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Mark data */
644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_PTR pMarkData;
645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Mark buffer */
647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_MARKTYPE *pMarkBuf;
648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Mark target component */
650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_HANDLETYPE hMarkTargetComponent;
651b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag set when buffer should not be queued to the DSP */
653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bBypassDSP;
654b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
655b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Input buffer list */
656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_BUFFERLIST *pInputBufferList;
657b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
658b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Output buffer list */
659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_BUFFERLIST *pOutputBufferList;
660b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** LCML stream attributes */
662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    LCML_STRMATTR *strmAttr;
663b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Component version */
665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nVersion;
666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Play Complete Flag */
668b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bPlayCompleteFlag;
669b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of Bytes holding to be sent*/
671b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nHoldLength;
672b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
673b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Pointer to the data holding to be sent*/
674b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8* pHoldBuffer;
675b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
676b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag set when LCML handle is opened */
677b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S16 bLcmlHandleOpened;
678b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
679b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Keeps track of the number of nFillThisBufferCount() calls */
680b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nFillThisBufferCount;
681b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
682b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Keeps track of the number of nFillBufferDoneCount() calls */
683b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nFillBufferDoneCount;
684b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
685b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Keeps track of the number of nEmptyThisBufferCount() calls */
686b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyThisBufferCount;
687b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
688b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Keeps track of the number of nEmptyBufferDoneCount() calls */
689b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nEmptyBufferDoneCount;
690b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
691b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Parameters for the Audio Codec */
692b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    G711DEC_AudioCodecParams *pParams;
693b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
694b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Init Params Initialized */
695b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bInitParamsInitialized;
696b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
697b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for bIdleCommandPending */
698b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bIdleCommandPending;
699b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
700b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Array of Input Buffers that are pending to sent due State = Idle */
701b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS];
702b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
703b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of Input Buffers that are pending to sent due State = Idle */
704b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nNumInputBufPending;
705b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
706b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Array of Output Buffers that are pending to sent due State = Idle */
707b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS];
708b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
709b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of Output Buffers that are pending to sent due State = Idle */
710b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nNumOutputBufPending;
711b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
712b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Reenabling Ports*/
713b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bJustReenabled;
714b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
715b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Invalid Frame Count*/
716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nInvalidFrameCount;
717b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
718b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Writes While Paused   */
719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 nDataWritesWhilePaused;
720b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
721b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for bDisableCommandPending*/
722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDisableCommandPending;
723b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
724b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for bDisableCommandParam*/
725b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDisableCommandParam;
726b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
727b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Enabling the port*/
728b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bEnableCommandPending;
729b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
730b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag for Enabling the port*/
731b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bEnableCommandParam;
732b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
733b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag to set when socket node stop callback should not transition
734b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin        component to OMX_StateIdle */
735b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bNoIdleOnStop;
736b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
737b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Flag set when socket node is stopped */
738b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 bDspStoppedWhileExecuting;
739b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
740b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Number of outstanding FillBufferDone() calls */
741b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_S32 nOutStandingFillDones;
742b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
743b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Stop Codec Command Sent Flag*/
744b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 bStopSent;
745b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
746b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL bLoadedCommandPending;
747b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
748b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_PARAM_COMPONENTROLETYPE componentRole;
749b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
750b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Device string */
751b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_STRING* sDeviceString;
752b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /* Removing sleep() calls. Definition. */
753b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE
754b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t AlloBuf_mutex;
755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_cond_t AlloBuf_threshold;
756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
758b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t InLoaded_mutex;
759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_cond_t InLoaded_threshold;
760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
761b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
762b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_mutex_t InIdle_mutex;
763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    pthread_cond_t InIdle_threshold;
764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else
766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_Event AlloBuf_event;
767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 AlloBuf_waitingsignal;
768b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_Event InLoaded_event;
770b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 InLoaded_readytoidle;
771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
772b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_Event InIdle_event;
773b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 InIdle_goingtoloaded;
774b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /**************************/
776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 nUnhandledFillThisBuffers;
777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /**Keep buffer tickcount*/
779b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 arrBufIndexTick[MAX_NUM_OF_BUFS];
780b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
781b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Keep buffer timestamps **/
782b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U32 arrBufIndex[MAX_NUM_OF_BUFS];
783b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
784b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for input buffer timestamps */
785b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 IpBufindex;
786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Index to arrBufIndex[], used for output buffer timestamps */
788b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_U8 OpBufindex;
789b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
790b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    /** Number of input buffers at runtime **/
791b65f253fdc60f6208a54911bee793d225f23cdf8James Dong    OMX_U32 nRuntimeInputBuffers;
792b65f253fdc60f6208a54911bee793d225f23cdf8James Dong
793b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    /** Pointer to RM callback **/
794b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED
795b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    RMPROXY_CALLBACKTYPE rmproxyCallback;
796b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
797b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
798b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_BOOL bPreempted;
799b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
800b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
801b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G711DEC_COMPONENT_PRIVATE;
802b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
803b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum OMX_G711DEC_INDEXAUDIOTYPE {
804b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomG711DecModeAcdnConfig = 0xFF000001,
805b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomG711DecModeDasfConfig,
806b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomG711DecHeaderInfoConfig,
807b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomG711DecFrameParams,
808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin    OMX_IndexCustomG711DecDataPath
809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}OMX_G711DEC_INDEXAUDIOTYPE;
810b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED
812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*========================================================================*/
813b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** RESOURCE MANAGER CALLBACK                                                                    */
814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*=======================================================================*/
815b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData);
816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ========================================================================*/
817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif
818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECGetCorresponding_LCMLHeader(OMX_U8 *pBuffer,
820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                                 OMX_DIRTYPE eDir,
821b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                                 LCML_G711DEC_BUFHEADERTYPE **ppLcmlHdr);
822b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/***********CALLBACK EVENT TO SN**********/
823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECLCML_Callback (TUsnCodecEvent event,void * args [10]);
824b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
825b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFill_LCMLInitParams(OMX_HANDLETYPE pHandle,
826b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                         LCML_DSP *plcml_Init,OMX_U16 arr[]);
827b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
828b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECGetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_DIRTYPE *eDir);
829b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
830b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DECHandleCommand (G711DEC_COMPONENT_PRIVATE *pComponentPrivate);
831b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
832b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECHandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader,
833b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                           G711DEC_COMPONENT_PRIVATE *pComponentPrivate);
834b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
835b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECHandleDataBuf_FromLCML(G711DEC_COMPONENT_PRIVATE* pComponentPrivate,
836b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin                                            LCML_G711DEC_BUFHEADERTYPE* msgBuffer);
837b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
838b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid  AddHeader(BYTE **pFileBuf);
839b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid  ResetPtr(BYTE **pFileBuf);
840b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
841b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_HANDLETYPE G711DECGetLCMLHandle();
842b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFreeLCMLHandle();
843b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_CleanupInitParams(OMX_HANDLETYPE pComponent);
844b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
845b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_SetPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir);
846b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G711DEC_ClearPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir) ;
847b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
848b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DEC_IsPending(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir);
849b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent);
850b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G711DEC_IsValid(G711DEC_COMPONENT_PRIVATE *pComponentPrivate, OMX_U8 *pBuffer, OMX_DIRTYPE eDir) ;
851b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G711DEC_TransitionToIdle(G711DEC_COMPONENT_PRIVATE *pComponentPrivate);
852b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin
853b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif /* OMX_G711DECODER_H*/
854