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