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_G726Decoder.h 30b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 31b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This is an header file for an audio G726 decoder that is fully 32b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * compliant with the OMX Audio specification. 33b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This the file is used internally by the component 34b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * in its code. 35b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 36b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @path $(CSLPATH)\OMAPSW_MPU\linux\audio\src\openmax_il\g726_dec\inc\ 37b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 38b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @rev 1.0 39b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 40b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* --------------------------------------------------------------------------- */ 41b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 42b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 43b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef OMX_G726DEC_UTILS__H 44b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G726DEC_UTILS__H 45b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 46b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Component.h> 47b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "LCML_DspCodec.h" 48b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 49b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 50b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <windows.h> 51b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <oaf_osal.h> 52b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <omx_core.h> 53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <stdlib.h> 54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <pthread.h> 56b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 57b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <ResourceManagerProxyAPI.h> 58b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 59b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 60b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 61b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 62b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G726DEC_DEBUG /* See all debug statement of the component */ 63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G726DEC_MEMDETAILS /* See memory details of the component */ 64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G726DEC_BUFDETAILS /* See buffers details of the component */ 65b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef G726DEC_STATEDETAILS /* See all state transitions of the component */ 66b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 67b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MAX_NUM_OF_BUFS 4 /* Max number of buffers used */ 68b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_NUM_INPUT_BUFFERS 1 /* Default number of input buffers */ 69b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_NUM_OUTPUT_BUFFERS 1 /* Default number of output buffers */ 70b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_INPUT_BUFFER_SIZE 20 /* Default size of input buffer */ 71b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OUTPUT_BUFFER_SIZE 320 /* Default size of output buffer */ 72b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_PORTS 2 /* Number of ports of component */ 73b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INVALID_SAMPLING_FREQ 51 74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EXIT_COMPONENT_THRD 10 75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MAJOR_VER 1 /* Majer version of the component */ 76b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MINOR_VER 1 /* Minor version of the component */ 77b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFHEADER_VERSION 0x0 /* Version of the buffer header struct */ 78b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NOT_USED 10 /* To specify that a particulat field is not used */ 79b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NORMAL_BUFFER 0 /* Marks a buffer as normal buffer i.e. not last buffer */ 80b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G726DEC_DEFAULT_SEGMENT (0) /* Default segment ID */ 81b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G726DEC_SN_TIMEOUT (-1) /* timeout, wait until ack is received */ 82b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_G726DEC_SN_PRIORITY (10) /* Priority used by DSP */ 83b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_CPU 50 /* TBD, 50MHz for the moment */ 84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 85b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* G726 frame size IN BYTES */ 87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH16_FRAME_SIZE 20 88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH24_FRAME_SIZE 30 89b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH32_FRAME_SIZE 40 90b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH40_FRAME_SIZE 50 91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 92b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* G726 frame type */ 93b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH63_FRAME_TYPE 0 /* No tx frame */ 94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SPEECH53_FRAME_TYPE 1 /* Speech Frame flag */ 95b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SID_FRAME_TYPE 2 /* SID frame flag */ 96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NODATA_FRAME 3 /* Erasure frame flag */ 97b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 98b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 99b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define USN_DLL_NAME "\\windows\\usn.dll64P" /* Path of USN DLL */ 100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DLL_NAME "\\windows\\g726dec_sn.dll64P" /* Path of G726 SN DLL */ 101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define USN_DLL_NAME "usn.dll64P" /* Path of USN DLL */ 103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DLL_NAME "g726dec_sn.dll64P" /* Path of G726 SN DLL */ 104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define DONT_CARE 0 /* Value unused or ignored */ 107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFDETAILS 108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** Default timeout used to come out of blocking calls*/ 109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_TIMEOUT 1 /* seconds */ 110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DEBUG 114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DPRINT printf 115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_EPRINT printf 116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MEMPRINT printf 117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_STATEPRINT printf 118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFPRINT printf 119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DPRINT 121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_EPRINT 122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MEMPRINT 123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_STATEPRINT 124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFPRINT 125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else /* for Linux */ 128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G726DEC_DEBUG 130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DPRINT(...) fprintf(stdout, "%s %d:: ",__FUNCTION__, __LINE__); \ 132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, __VA_ARGS__); \ 133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, "\n"); 134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFPRINT printf 136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MEMPRINT printf 137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_STATEPRINT printf 138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_DPRINT(...) 141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G726DEC_STATEDETAILS 143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_STATEPRINT printf 144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_STATEPRINT(...) 146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G726DEC_BUFDETAILS 149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFPRINT printf 150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_BUFPRINT(...) 152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef G726DEC_MEMDETAILS 155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MEMPRINT(...) fprintf(stdout, "%s %d:: ",__FUNCTION__, __LINE__); \ 156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, __VA_ARGS__); \ 157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, "\n"); 158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_MEMPRINT(...) 160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726DEC_EPRINT(...) fprintf(stdout, "%s %s %d:: ", __FILE__,__FUNCTION__, __LINE__); \ 165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, __VA_ARGS__); \ 166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stdout, "\n"); 167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif /*for UNDER_CE*/ 169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OMX_MALLOC(_pStruct_, _sName_) \ 171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _pStruct_ = (_sName_*)malloc(sizeof(_sName_)); \ 172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(_pStruct_ == NULL){ \ 173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Malloc Failed\n",__LINE__); \ 175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorInsufficientResources; \ 177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset(_pStruct_,0,sizeof(_sName_)); \ 180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_pStruct_); 181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OMX_MALLOC_SIZE(_ptr_, _size_,_name_) \ 185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _ptr_ = (_name_ *)malloc(_size_); \ 186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(_ptr_ == NULL){ \ 187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Malloc Failed\n",__LINE__); \ 189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************\n"); \ 190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorInsufficientResources; \ 191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset(_ptr_,0,_size_); \ 194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726DEC_MEMPRINT("%d :: Malloced = %p\n",__LINE__,_ptr_); 195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OMX_ERROR_EXIT(_e_, _c_, _s_) \ 197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _e_ = _c_; \ 198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("\n**************** OMX ERROR ************************\n"); \ 199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d : Error Name: %s : Error Num = %x",__LINE__, _s_, _e_); \ 200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("\n**************** OMX ERROR ************************\n"); \ 201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; 202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OMX_CONF_CHECK_CMD(_ptr1, _ptr2, _ptr3) \ 205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin { \ 206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(!_ptr1 || !_ptr2 || !_ptr3){ \ 207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorBadParameter; \ 208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G726D_OMX_FREE(ptr) \ 213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(NULL != ptr) { \ 214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726DEC_MEMPRINT("%d :: Freeing Address = %p\n",__LINE__,ptr); \ 215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin free(ptr); \ 216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin ptr = NULL; \ 217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_CONF_INIT_STRUCT(_s_, _name_) \ 220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset((_s_), 0x0, sizeof(_name_)); \ 221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nSize = sizeof(_name_); \ 222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMajor = 0x1; \ 223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMinor = 0x1; \ 224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nRevision = 0x0; \ 225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nStep = 0x0 226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** OMX_G726DEC_INDEXAUDIOTYPE Defines the custom configuration settings 230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * for the component 231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param OMX_IndexCustomG726DecModeDasfConfig Sets the DASF mode 233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum OMX_G726DEC_INDEXAUDIOTYPE { 237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*OMX_IndexCustomG726DecModeDasfConfig = OMX_IndexIndexVendorStartUnused + 1,*/ 238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG726DecModeDasfConfig = 0xFF000001, 239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG726DecHeaderInfoConfig, 240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG726DecStreamIDConfig, 241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomG726DecDataPath 242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}OMX_G726DEC_INDEXAUDIOTYPE; 243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ============================================================================== * */ 246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726D_COMP_PORT_TYPE describes the input and output port of indices of the 247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * component. 248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G726D_INPUT_PORT Input port index 250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param G726D_OUTPUT_PORT Output port index 252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ============================================================================ * */ 254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum G726D_COMP_PORT_TYPE { 255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_INPUT_PORT = 0, 256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_OUTPUT_PORT 257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726D_COMP_PORT_TYPE; 258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726DEC_ParamStruct: This struct is passed with input buffers that 261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * are sent to DSP. 262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct { 265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Set to 1 if buffer is last buffer */ 266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long usLastFrame; 267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726DEC_FrameStruct; 268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726DEC_UAlgInBufParamStruct: This struct is passed with input buffers that 272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * are sent to DSP. 273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct { 276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Set to 1 if buffer is last buffer */ 277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned short bLastBuffer; 278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726DEC_UAlgInBufParamStruct; 279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726D_USN_AudioCodecParams: This contains the information which does to Codec 283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * on DSP 284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * are sent to DSP. 285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct USN_AudioCodecParams{ 288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Specifies the sample frequency */ 289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long ulSamplingFreq; 290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Specifies the UUID */ 291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long unUUID; 292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Specifies the audio format */ 293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned short unAudioFormat; 294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726D_USN_AudioCodecParams; 295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726DEC_UAlgOutBufParamStruct: This is passed with output buffer to DSP. 298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct { 301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Number of frames in a buffer */ 302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin unsigned long ulFrameCount; 303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726DEC_UAlgOutBufParamStruct; 304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726D_LCML_BUFHEADERTYPE: This is LCML buffer header which is sent to LCML 307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * for both input and output buffers. 308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G726D_LCML_BUFHEADERTYPE { 311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Direction whether input or output buffer */ 312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_DIRTYPE eDir; 313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Pointer to OMX Buffer Header */ 314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr; 315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Other parameters, may be useful for enhancements */ 316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin void *pOtherParams[10]; 317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Input Parameter Information structure */ 318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726DEC_UAlgInBufParamStruct *pFrameParam; 319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}G726D_LCML_BUFHEADERTYPE; 320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726D_AUDIODEC_PORT_TYPE: This contains component port information. 323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_AUDIO_PARAM_PORTFORMATTYPE 325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct AUDIODEC_PORT_TYPE { 328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Used in tunneling, this is handle of tunneled component */ 329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hTunnelComponent; 330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Port which has to be tunneled */ 331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nTunnelPort; 332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Buffer Supplier Information */ 333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERSUPPLIERTYPE eSupplierSetting; 334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Number of buffers */ 335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 nBufferCnt; 336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Port format information */ 337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE* pPortFormat; 338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G726D_AUDIODEC_PORT_TYPE; 339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** _G726D_BUFFERLIST: This contains information about a buffer's owner whether 343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * it is application or component, number of buffers owned etc. 344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_BUFFERHEADERTYPE 346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstruct _G726D_BUFFERLIST{ 349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Array of pointer to OMX buffer headers */ 350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr[MAX_NUM_OF_BUFS]; 351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Array that tells about owner of each buffer */ 352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bufferOwner[MAX_NUM_OF_BUFS]; 353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bBufferPending[MAX_NUM_OF_BUFS]; 354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Number of buffers */ 355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 numBuffers; 356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}; 357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct _G726D_BUFFERLIST G726D_BUFFERLIST; 359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef _OMX_EVENT_ 362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define _OMX_EVENT_ 363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct OMX_Event { 364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin HANDLE event; 365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} OMX_Event; 366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint OMX_CreateEvent(OMX_Event *event); 368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint OMX_SignalEvent(OMX_Event *event); 369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint OMX_WaitForEvent(OMX_Event *event); 370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint OMX_DestroyEvent(OMX_Event *event); 371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ======================================================================= */ 374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** G726DEC_COMPONENT_PRIVATE: This is the major and main structure of the 375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * component which contains all type of information of buffers, ports etc 376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * contained in the component. 377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_BUFFERHEADERTYPE 379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_AUDIO_PARAM_PORTFORMATTYPE 380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_PARAM_PORTDEFINITIONTYPE 381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see G726D_LCML_BUFHEADERTYPE 382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_PORT_PARAM_TYPE 383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see OMX_PRIORITYMGMTTYPE 384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see G726D_AUDIODEC_PORT_TYPE 385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see G726D_BUFFERLIST 386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see G726D_AUDIODEC_PORT_TYPE 387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see LCML_STRMATTR 388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see 389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ==================================================================== */ 391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct G726DEC_COMPONENT_PRIVATE 392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Handle for use with async callbacks */ 394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CALLBACKTYPE cbInfo; 395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Component port information */ 397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE *sPortParam; 398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Input port information */ 400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sInPortFormat; 401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Output port information */ 403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PORTFORMATTYPE sOutPortFormat; 404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Buffer owner information */ 406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsBufferOwned[NUM_OF_PORTS]; 407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of input buffers at runtime */ 409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nRuntimeInputBuffers; 410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Number of output buffers at runtime */ 412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nRuntimeOutputBuffers; 413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Audio codec parameters structure */ 415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_USN_AudioCodecParams *pParams; 416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This will contain info like how many buffers 418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin are there for input/output ports, their size etc, but not 419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin BUFFERHEADERTYPE POINTERS. */ 420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE* pPortDef[NUM_OF_PORTS]; 421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Contains information that come from application */ 423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_G726TYPE* G726Params; 424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Contains information that come from application */ 426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PCMMODETYPE* PcmParams; 427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This is component handle */ 429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_COMPONENTTYPE* pHandle; 430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Current state of this component */ 432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE curState; 433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The component thread handle */ 435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_t ComponentThread; 436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int dataPipe[2]; 439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int cmdPipe[2]; 442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending command data to the thread */ 444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int cmdDataPipe[2]; 445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int lcml_Pipe[2]; 448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Set to indicate component is stopping */ 450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsEOFSent; 451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nIpBuf; 454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Count of number of buffers outstanding with bridge */ 456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nOpBuf; 457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of input buffers sent to LCML */ 459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntIp; 460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of input buffers received from LCML */ 462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntIpRes; 463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of output buffers sent to LCML */ 465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntOp; 466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of output buffers received from LCML */ 468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntOpReceived; 469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of buffers sent to App */ 471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntApp; 472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of buffers received from App */ 474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 app_nBuf; 475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of output buffers reclaimed from lcml */ 477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Reclaimed_Op_Buff; 478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of input buffers sent to lcml */ 480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Sent_Ip_Buff; 481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts of number of output buffers sent to lcml */ 483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 num_Op_Issued; 484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Holds the value of dasf mode, 1: DASF mode or 0: File Mode */ 486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 dasfmode; 487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* contains the value indicating if linear or rtp is used */ 489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 packingType; 490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* contains the string for the hardware device */ 492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STRING* sDeviceString; 493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This is LCML handle */ 495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE pLcmlHandle; 496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Contains pointers to LCML Buffer Headers */ 498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_LCML_BUFHEADERTYPE *pLcmlBufHeader[2]; 499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*contains a flag for if the buffers are allocated */ 501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bBufferIsAllocated; 502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Tells whether buffers on ports have been allocated */ 504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bPortDefsAllocated; 505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Tells whether component thread has started */ 507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bCompThreadStarted; 508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Marks the buffer data */ 510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PTR pMarkData; 511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Marks the buffer */ 513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_MARKTYPE *pMarkBuf; 514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Marks the target component */ 516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hMarkTargetComponent; 517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag to track when input buffer's filled length is 0 */ 519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bBypassDSP; 520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Input port enable flag */ 522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int ipPortEnableFlag; 523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Input port disble flag */ 525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int ipPortDisableFlag; 526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to port parameter structure */ 528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE* pPortParamType; 529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to port priority management structure */ 531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PRIORITYMGMTTYPE* pPriorityMgmt; 532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 533b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Contains the port related info of both the ports */ 534b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_AUDIODEC_PORT_TYPE *pCompPort[NUM_OF_PORTS]; 535b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 536b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Checks whether or not buffer were allocated by appliction */ 537b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int bufAlloced; 538b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 539b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Flag to check about execution of component thread */ 540b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U16 bExitCompThrd; 541b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 542b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to list of input buffers */ 543b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_BUFFERLIST *pInputBufferList; 544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Pointer to list of output buffers */ 546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_BUFFERLIST *pOutputBufferList; 547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** it is used for component's create phase arguments */ 549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_STRMATTR *strmAttr; 550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Contains the version information */ 552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nVersion; 553b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 554b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** ACDN mode flag */ 555b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 acdnmode; 556b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 557b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Audio Stream ID */ 558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 streamID; 559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if the lcml handle is opened */ 561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int bLcmlHandleOpened; 562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 563b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* counts the calls to FillThisBuffer() */ 564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nFillThisBufferCount; 565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts number of FillBufferDone calls*/ 567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nFillBufferDoneCount; 568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts number of EmptyThisBuffer calls*/ 570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nEmptyThisBufferCount; 571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Counts number of EmptyBufferDone calls*/ 573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nEmptyBufferDoneCount; 574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Checks if component Init Params have been initialized */ 576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bInitParamsInitialized; 577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* list of input buffers */ 579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_BUFFERLIST *pInputBufferListQueue; 580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* list of output buffers */ 582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_BUFFERLIST *pOutputBufferListQueue; 583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* array of pending input buffers headers */ 585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pInputBufHdrPending[MAX_NUM_OF_BUFS]; 586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of pending input buffers */ 588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nNumInputBufPending; 589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* array of pending output buffers */ 591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutputBufHdrPending[MAX_NUM_OF_BUFS]; 592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 593b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of pending output buffers */ 594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nNumOutputBufPending; 595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 596b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* array of buffers received while paused */ 597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutBufHdrWhilePaused[MAX_NUM_OF_BUFS]; 598b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 599b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of buffers received while paused */ 600b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nPendingOutPausedBufs; 601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if disable port command is pending */ 603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDisableCommandPending; 604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 605b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* params for disable port command */ 606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDisableCommandParam; 607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 608b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of invalid frames received */ 609b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nInvalidFrameCount; 610b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 611b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of pending buffers */ 612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 numPendingBuffers; 613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 614b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag for if component should go to idle state when stopped */ 615b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bNoIdleOnStop; 616b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 617b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag for if dsp is stopped while component is in executing state */ 618b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bDspStoppedWhileExecuting; 619b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 620b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag for if transition to idle state is pending */ 621b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIdleCommandPending; 622b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 623b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* number of FillThisBuffer calls pending */ 624b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nOutStandingFillDones; 625b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 626b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* coutns the number of unhandled FillThisBuffer() calls */ 627b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 nUnhandledFillThisBuffers; 628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 629b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* coutns the number of unhandled EmptyThisBuffer() calls */ 630b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 nUnhandledEmptyThisBuffers; 631b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 632b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if the flush command is pending in Output Port */ 633b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bFlushOutputPortCommandPending; 634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if the flush command is pending in Output Port */ 636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bFlushInputPortCommandPending; 637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 638b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE 639b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* mutex for allocating buffers */ 640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t AlloBuf_mutex; 641b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t AlloBuf_threshold; 642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*mutex for transition from loaded state to idle state */ 645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t InLoaded_mutex; 646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t InLoaded_threshold; 647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* mutex for transition from idle state to loaded state */ 650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t InIdle_mutex; 651b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t InIdle_threshold; 652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 654b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event AlloBuf_event; 655b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 AlloBuf_waitingsignal; 656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 657b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event InLoaded_event; 658b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InLoaded_readytoidle; 659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 660b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_Event InIdle_event; 661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 InIdle_goingtoloaded; 662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 663b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if transition to loaded is pending */ 665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bLoadedCommandPending; 666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* contains the OMX defined role of the component */ 668b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* not used in non-standard components */ 669b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_COMPONENTROLETYPE *componentRole; 670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 671b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* describes the OMX_IL version inluding major, minor */ 672b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VERSIONTYPE ComponentVersion; 673b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 674b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* holds the name of the component */ 675b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STRING cComponentName; 676b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 677b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keep buffer timestamps **/ 678b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S64 arrTimestamp[MAX_NUM_OF_BUFS]; 679b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 680b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Keep buffer tick count **/ 681b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_S64 arrTickCount[MAX_NUM_OF_BUFS]; 682b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 683b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Index to arrBufIndex[], used for input buffer timestamps */ 684b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 IpBufindex; 685b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 686b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Index to arrBufIndex[], used for output buffer timestamps */ 687b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 OpBufindex; 688b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 689b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* flag if the component is preempted for resource or policy reasons */ 690b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bPreempted; 691b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 692b65f253fdc60f6208a54911bee793d225f23cdf8James Dong /** Pointer to RM callback **/ 693b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 694b65f253fdc60f6208a54911bee793d225f23cdf8James Dong RMPROXY_CALLBACKTYPE rmproxyCallback; 695b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 696b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 697b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 698b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} G726DEC_COMPONENT_PRIVATE; 699b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 700b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 701b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 702b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 703b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 704b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ComponentInit() function is called by OMX Core to initialize the component 705b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * with default values of the component. Before calling this function OMX_Init 706b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * must have been called. 707b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 708b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *hComp This is component handle allocated by the OMX core. 709b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 710b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre OMX_Init should be called by application. 711b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 712b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post Component has initialzed with default values. 713b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 714b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 715b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 717b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see G726Dec_StartCompThread() 718b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 720b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef UNDER_CE 721b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 723b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* WinCE Implicit Export Syntax */ 724b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_EXPORT __declspec(dllexport) 725b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_EXPORT OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp); 726b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 727b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 728b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 729b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 730b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726Dec_StartCompThread() starts the component thread. This is internal 731b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * function of the component. 732b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 733b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core. 734b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 735b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 736b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 737b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 738b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 739b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 740b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 741b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 742b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 743b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 744b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 745b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726Dec_StartCompThread(OMX_HANDLETYPE pHandle); 746b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 747b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 748b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 749b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_Fill_LCMLInitParams() fills the LCML initialization structure. 750b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 751b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core. 752b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 753b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param plcml_Init This structure is filled and sent to LCML. 754b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 758b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the LCML struct. 760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 761b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 762b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_Fill_LCMLInitParams(OMX_HANDLETYPE pHandle, 766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_DSP *plcml_Init, OMX_U16 arr[]); 767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 768b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 770b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_GetBufferDirection() function determines whether it is input buffer or 771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * output buffer. 772b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 773b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pBufHeader This is pointer to buffer header whose direction needs to 774b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * be determined. 775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *eDir This is output argument which stores the direction of buffer. 777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 779b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 780b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 781b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 782b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful processing. 783b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorBadParameter = In case of invalid buffer 784b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 785b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 788b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_GetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, 789b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_DIRTYPE *eDir); 790b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 791b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 792b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 793b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_LCML_Callback() function is callback which is called by LCML whenever 794b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * there is an even generated for the component. 795b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 796b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param event This is event that was generated. 797b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 798b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param arg This has other needed arguments supplied by LCML like handles 799b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * etc. 800b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 801b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 802b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 803b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 804b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 805b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful processing. 806b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 807b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 810b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_LCML_Callback (TUsnCodecEvent event,void * args [10]); 812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 813b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 815b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_HandleCommand() function handles the command sent by the application. 816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * All the state transitions, except from nothing to loaded state, of the 817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * component are done by this function. 818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pComponentPrivate This is component's private date structure. 820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 821b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 822b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 824b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 825b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful processing. 826b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 827b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorHardware = Hardware error has occured lile LCML failed 828b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * to do any said operartion. 829b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 830b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 831b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 832b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 833b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G726DEC_HandleCommand (G726DEC_COMPONENT_PRIVATE *pComponentPrivate); 834b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 835b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 836b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 837b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_HandleDataBuf_FromApp() function handles the input and output buffers 838b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * that come from the application. It is not direct function wich gets called by 839b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * the application rather, it gets called eventually. 840b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 841b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pBufHeader This is the buffer header that needs to be processed. 842b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 843b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pComponentPrivate This is component's private date structure. 844b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 845b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 846b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 847b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 848b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 849b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful processing. 850b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 851b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorHardware = Hardware error has occured lile LCML failed 852b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * to do any said operartion. 853b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 854b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 855b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 856b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 857b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_HandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader, 858b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726DEC_COMPONENT_PRIVATE *pComponentPrivate); 859b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 860b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 861b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 862b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 863b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 864b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_GetLCMLHandle() function gets the LCML handle and interacts with LCML 865b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * by using this LCML Handle. 866b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 867b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pBufHeader This is the buffer header that needs to be processed. 868b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 869b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pComponentPrivate This is component's private date structure. 870b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 871b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 872b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 873b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 874b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 875b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_HANDLETYPE = Successful loading of LCML library. 876b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorHardware = Hardware error has occured. 877b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 878b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 879b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 880b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 881b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_HANDLETYPE G726DEC_GetLCMLHandle(G726DEC_COMPONENT_PRIVATE *pComponentPrivate); 882b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 883b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 884b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 885b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_GetCorresponding_LCMLHeader() function gets the corresponding LCML 886b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * header from the actual data buffer for required processing. 887b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 888b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *pBuffer This is the data buffer pointer. 889b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 890b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param eDir This is direction of buffer. Input/Output. 891b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 892b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param *G726D_LCML_BUFHEADERTYPE This is pointer to LCML Buffer Header. 893b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 894b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 895b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 896b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 897b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 898b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 899b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorHardware = Hardware error has occured. 900b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 901b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 902b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 903b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 904b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_GetCorresponding_LCMLHeader(G726DEC_COMPONENT_PRIVATE *pComponentPrivate, 905b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *pBuffer, 906b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_DIRTYPE eDir, 907b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin G726D_LCML_BUFHEADERTYPE **ppLcmlHdr); 908b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 909b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 910b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 911b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_FreeCompResources() function frees the component resources. 912b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 913b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pComponent This is the component handle. 914b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 915b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 916b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 917b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 918b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 919b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 920b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorHardware = Hardware error has occured. 921b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 922b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 923b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 924b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 925b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DEC_FreeCompResources(OMX_HANDLETYPE pComponent); 926b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 927b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 928b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 929b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_CleanupInitParams() function frees only the initialization time 930b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * memories allocated. For example, it will not close pipes, it will not free the 931b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * memory allocated to the buffers etc. But it does free the memory of buffers 932b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * utilized by the LCML etc. It is basically subset of G726DEC_FreeResources() 933b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * function. 934b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 935b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pComponent This is the component handle. 936b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 937b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 938b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 939b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 940b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 941b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 942b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 943b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 944b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 945b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 946b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G726DEC_CleanupInitParams(OMX_HANDLETYPE pComponent); 947b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 948b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 949b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 950b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * G726DEC_ComponentThread() This is component thread of the component which keeps 951b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * running or lsitening from the application unless component is deinitialized 952b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * from by the application i.e. component is transitioned from Idle to Loaded 953b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * state. 954b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 955b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core. 956b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 957b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 958b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 959b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 960b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 961b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return OMX_ErrorNone = Successful Inirialization of the component\n 962b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_ErrorInsufficientResources = Not enough memory 963b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 964b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 965b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 966b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 967b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid* G726DEC_ComponentThread (void* pThreadData); 968b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 969b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE G726DECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent); 970b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G726DEC_SetPending(G726DEC_COMPONENT_PRIVATE *pComponentPrivate, 971b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber); 972b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid G726DEC_ClearPending(G726DEC_COMPONENT_PRIVATE *pComponentPrivate, 973b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir, OMX_U32 lineNumber) ; 974b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G726DEC_IsPending(G726DEC_COMPONENT_PRIVATE *pComponentPrivate, 975b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHdr, OMX_DIRTYPE eDir); 976b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_U32 G726DEC_IsValid(G726DEC_COMPONENT_PRIVATE *pComponentPrivate, 977b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *pBuffer, OMX_DIRTYPE eDir) ; 978b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 979b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE OMX_DmmMap(DSP_HPROCESSOR ProcHandle, int size, void* pArmPtr, DMM_BUFFER_OBJ* pDmmBuf); 980b65f253fdc60f6208a54911bee793d225f23cdf8James DongOMX_ERRORTYPE OMX_DmmUnMap(DSP_HPROCESSOR ProcHandle, void* pMapPtr, void* pResPtr); 981b65f253fdc60f6208a54911bee793d225f23cdf8James Dong 982b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#ifdef RESOURCE_MANAGER_ENABLED 983b65f253fdc60f6208a54911bee793d225f23cdf8James Dong/*********************************** 984b65f253fdc60f6208a54911bee793d225f23cdf8James Dong * Callback to the RM * 985b65f253fdc60f6208a54911bee793d225f23cdf8James Dong ***********************************/ 986b65f253fdc60f6208a54911bee793d225f23cdf8James Dongvoid G726DEC_ResourceManagerCallback(RMPROXY_COMMANDDATATYPE cbData); 987b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#endif 988b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 989b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 990