1b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 2b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* 3b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Copyright 2001-2008 Texas Instruments - http://www.ti.com/ 4b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 5b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Licensed under the Apache License, Version 2.0 (the "License"); 6b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * you may not use this file except in compliance with the License. 7b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * You may obtain a copy of the License at 8b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 9b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * http://www.apache.org/licenses/LICENSE-2.0 10b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 11b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Unless required by applicable law or agreed to in writing, software 12b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * distributed under the License is distributed on an "AS IS" BASIS, 13b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * See the License for the specific language governing permissions and 15b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * limitations under the License. 16b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 17b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ============================================================================= 18b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Texas Instruments OMAP (TM) Platform Software 19b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. 20b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 21b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Use of this software is controlled by the terms and conditions found 22b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * in the license agreement under which this software has been supplied. 23b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * =========================================================================== */ 24b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 25b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @file OMX_G722DecTest.c 26b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 27b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This file contains the test application code that invokes the component. 28b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 29b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @path $(CSLPATH)\OMAPSW_MPU\linux\audio\src\openmax_il\g722_dec\tests 30b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 31b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @rev 1.0 32b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 33b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ---------------------------------------------------------------------------- 34b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *! 35b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *! Revision History 36b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *! =================================== 37b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *! This is newest file 38b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * =========================================================================== */ 39b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ------compilation control switches -------------------------*/ 40b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define APP_DEBUG **/ 41b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#undef APP_DEBUG **/ 42b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*undef OMX_GETTIME */ 43b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 44b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define G722DEC_DEBUG*/ 45b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define APP_DEBUG*/ 46b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define APP_STATEDETAILS*/ 47b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define WAITFORRESOURCES*/ 48b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#undef USE_BUFFER 49b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**************************************************************** 50b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * INCLUDE FILES 51b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin ****************************************************************/ 52b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ----- system and platform files ----------------------------*/ 53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <unistd.h> 54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <stdlib.h> 55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <sys/ioctl.h> 56b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <sys/select.h> 57b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <string.h> 58b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <stdio.h> 59b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <fcntl.h> 60b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <errno.h> 61b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <signal.h> 62b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <sys/stat.h> 63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Index.h> 64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Types.h> 65b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Core.h> 66b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Audio.h> 67b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <TIDspOmx.h> 68b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <pthread.h> 69b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <linux/soundcard.h> 70b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum {FALSE, TRUE} boolean; 71b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_G722Dec_Utils.h> 72b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 73b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Common_Utils.h> 76b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_GetTime.h> /*Headers for Performance & measuremet */ 77b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 78b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 79b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_DEBUG 80b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define APP_DPRINT(...) fprintf(stderr,__VA_ARGS__) 81b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 82b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define APP_DPRINT(...) /*0j0 printf (__VA_ARGS__)*/ 83b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 85b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_STATEDETAILS 86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define APP_STATEPRINT(...) fprintf(stderr,__VA_ARGS__) 87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define APP_STATEPRINT(...) /*0j0 printf (__VA_ARGS__)*/ 89b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 90b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Constants */ 92b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define APP_OUTPUT_FILE "output" /*.pcm"*/ 93b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define SLEEP_TIME 2 94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define G722_APP_ID 100 /* Defines G722 Dec App ID, App must use this value */ 95b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define INVALID_SAMPLING_FREQ 51 /*Do not change; fixed for component!*/ 96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MAX_NUM_OF_BUFS 10 /*Do not change; fixed for component!*/ 97b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define EOS_MIN_SIZE 2 98b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define FIFO1 "/dev/fifo.1" 99b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define FIFO2 "/dev/fifo.2" 100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define STR_G722DECODER "OMX.TI.G722.decode" 101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_DEBUG 103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define N_REPETITIONS 5 104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define N_REPETITIONS 20 106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* undef OMX_GETTIME */ 109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* OMX_ERRORTYPE eError = OMX_ErrorNone;*/ 111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint GT_FlagE = 0; /* Fill Buffer 1 = First Buffer, 0 = Not First Buffer */ 112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint GT_FlagF = 0; /*Empty Buffer 1 = First Buffer, 0 = Not First Buffer */ 113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstatic OMX_NODE* pListHead = NULL; 114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*typedef enum {FALSE, TRUE} boolean;*/ 117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Prototypes */ 119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean validateArguments (int, char *[], int *, char *, int *, int *, int *, int *, int *, int *); 120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint maxint (int a, int b); 121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstatic OMX_ERRORTYPE WaitForState (OMX_HANDLETYPE *, OMX_STATETYPE); 122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE EventHandler (OMX_HANDLETYPE, OMX_PTR, OMX_EVENTTYPE, OMX_U32, OMX_U32, OMX_PTR); 123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid FillBufferDone (OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE *); 124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid EmptyBufferDone (OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE *); 125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE send_input_buffer (OMX_HANDLETYPE, OMX_BUFFERHEADERTYPE *, FILE *); 126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint validateArg4 (char *); 127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint getNumTestCase (char *, char *); 128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean checkInputParameters (int); 129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean validateSampRate (int); 130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetInputPortParameter (OMX_HANDLETYPE *, int, int); 131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetOutputPortParameter (OMX_HANDLETYPE *, int, int, int); 132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean g722SetInputPort (OMX_HANDLETYPE *, int); 133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean g722SetOutputPort (OMX_HANDLETYPE *); 134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetConfigMute (OMX_HANDLETYPE *, OMX_BOOL); 135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetConfigVolume (OMX_HANDLETYPE *, OMX_S32); 136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE omxUseBuffers (OMX_HANDLETYPE *, int, int, int, OMX_BUFFERHEADERTYPE *[], int, int, OMX_BUFFERHEADERTYPE *[]); 137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCases (OMX_HANDLETYPE *, fd_set *,int, FILE *, FILE *, int *, int *, struct timeval *, int, int, OMX_BUFFERHEADERTYPE *[], int, OMX_BUFFERHEADERTYPE *[]); 138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCase_2_4 (OMX_HANDLETYPE *, int, FILE *, FILE *, int, OMX_BUFFERHEADERTYPE *[]); 139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCase_3 (OMX_HANDLETYPE *); 140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE sendInBuffFillOutBuff (OMX_HANDLETYPE *, int, int, int, OMX_BUFFERHEADERTYPE *[], FILE *, OMX_BUFFERHEADERTYPE *[]); 142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE omxFreeBuffers (OMX_HANDLETYPE *pHandle, int nBuffs, OMX_BUFFERHEADERTYPE *pBufferHeader [], char *sBuffTypeMsg); 143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid printTestCaseInfo (int, char *); 145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid getString_OMX_State (char *ptrString, OMX_STATETYPE state); 146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Global variables */ 148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint sendlastbuffer = 0; 149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_STATETYPE gState = OMX_StateExecuting; 150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint IpBuf_Pipe[2] = {0}; 152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint OpBuf_Pipe[2] = {0}; 153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint Event_Pipe[2] = {0}; 154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint preempted = 0; 156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn main() This is the main function of application which gets called. 160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param argc This is the number of commandline arguments.. 162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param argv[] This is an array of pointers to command line arguments.. 164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return An integer value. 170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint main(int argc, char* argv[]) 175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CALLBACKTYPE G722CaBa = {(void *)EventHandler, 177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (void *)EmptyBufferDone, 178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (void *)FillBufferDone 179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin }; 180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nIpBuffs = 1; 181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nOpBuffs = 1; 182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nIpBufSize = 4096; /*default value */ 183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nOpBufSize = 320; /* default value */ 184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int gDasfMode = 0; 185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE *pHandle = NULL; 186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 AppData = G722_APP_ID; 188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin TI_OMX_DSP_DEFINITION appPrivate; 189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_INDEXTYPE index = 0; 190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pInputBufferHeader [MAX_NUM_OF_BUFS] = {NULL}; 191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pOutputBufferHeader [MAX_NUM_OF_BUFS] = {NULL}; 192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin TI_OMX_DATAPATH dataPath; 193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fd_set rfds; 194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static int totalFilled = 0; 195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin struct timeval tv; 196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int retval = 0; 197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int frmCnt = 1; 198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin char fname [100] = APP_OUTPUT_FILE; 199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FILE* fIn = NULL; 200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FILE* fOut = NULL; 201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int tcID = 0; 202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DSP_RENDERING_ON 203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int g722decfdwrite = 0; 204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int g722decfdread = 0; 205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ListCreate(&pListHead); 209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int iSampRate = 0; 211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin boolean bFlag = validateArguments (argc, argv, &iSampRate, fname, &tcID, &gDasfMode, &nIpBuffs, &nIpBufSize, &nOpBuffs, &nOpBufSize); 212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("<<<<<<<<< Argument validate fault >>>>>>>>>"); 214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nIdx = 0, 217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin nJdx = 0; 218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nCntTest1 = (tcID != 6)? 1: N_REPETITIONS; 219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nCntTest = (tcID != 5)? 1: N_REPETITIONS; 220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_DEBUG 221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin char strState [20] = {""}; 222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = TIOMX_Init(); 225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error returned by OMX_Init()\n",__LINE__); 227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (nIdx = 0; nIdx < nCntTest1; nIdx++) { 231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pHandle = malloc(sizeof(OMX_HANDLETYPE)); 232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(pHandle == NULL){ 233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: App: Malloc Failed\n",__LINE__); 234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DSP_RENDERING_ON 238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((g722decfdwrite = open(FIFO1,O_WRONLY))<0) { 239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("[G722TEST] - failure to open WRITE pipe\n"); 240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("[G722TEST] - opened WRITE pipe\n"); 243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((g722decfdread = open(FIFO2,O_RDONLY))<0) { 245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("[G722TEST] - failure to open READ pipe\n"); 246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("[G722TEST] - opened READ pipe\n"); 249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((write(g722decfdwrite, &cmd_data, sizeof(cmd_data)))<0) { 252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d ::G722DecTest.c ::[G722 Dec Component] - send command to audio manager\n", __LINE__); 253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((read(g722decfdread, &cmd_data, sizeof(cmd_data)))<0) { 255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d ::G722DecTest.c ::[G722 Dec Component] - failure to get data from the audio manager\n", __LINE__); 256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetHandle(pHandle, STR_G722DECODER, &AppData, &G722CaBa); 263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to GetHandle"); 264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = TIOMX_GetHandle(pHandle, STR_G722DECODER, &AppData, &G722CaBa); 266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((error != OMX_ErrorNone) || (*pHandle == NULL)) { 269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("Error in Get Handle function\n"); 270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Create a pipe used to queue data from the callback. */ 274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin retval = pipe(IpBuf_Pipe); 275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( retval != 0) { 276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf( "Error:Fill In Buff Pipe failed to open\n"); 277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin retval = pipe(OpBuf_Pipe); 281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( retval != 0) { 282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf( "Error:Empty Out Buff Pipe failed to open\n"); 283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin retval = pipe(Event_Pipe); 287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( retval != 0) { 288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf( "Error:Empty Event Pipe failed to open\n"); 289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Send input port config */ 293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetInputPortParameter (pHandle, nIpBuffs, nIpBufSize); 294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Send output port config */ 299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetOutputPortParameter (pHandle, nOpBuffs, nOpBufSize, gDasfMode); 300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetExtensionIndex(*pHandle, "OMX.TI.index.config.g722headerinfo",&index); 305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Error getting extension index\n"); 307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin appPrivate.dasfMode = gDasfMode; 311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetConfig(*pHandle, index, &appPrivate); 313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error from OMX_SetConfig() function\n",__LINE__); 316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = omxUseBuffers (pHandle, gDasfMode, nIpBuffs, nIpBufSize, pInputBufferHeader, nOpBuffs, nOpBufSize, pOutputBufferHeader); 323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Send G722 config for input */ 328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = g722SetInputPort (pHandle, iSampRate); 329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Send G722 config for output */ 334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = g722SetOutputPort (pHandle); 335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(gDasfMode == 1) { 340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: G722 DECODER RUNNING UNDER DASF MODE\n",__LINE__); 341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RTM_PATH 343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin dataPath = DATAPATH_APPLICATION_RTMIXER; 344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef ETEEDN_PATH 346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin dataPath = DATAPATH_APPLICATION; 347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetExtensionIndex(*pHandle, "OMX.TI.index.config.g722dec.datapath",&index); 349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Error getting extension index\n"); 351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetConfig (*pHandle, index, &dataPath); 354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: G722DecTest.c :: Error from OMX_SetConfig() function\n",__LINE__); 357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle, OMX_CommandStateSet, OMX_StateIdle, NULL); 361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("Error from SendCommand-Idle(Init) State function - error = %d\n",error); 363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App :: About to call WaitForState to change to Idle\n",__LINE__); 368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateIdle); 369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App :: state changed to Idle\n",__LINE__); 370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT( "Error: hAmrEncoder->WaitForState reports an error %X\n", error); 372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (nJdx = 0; nJdx < nCntTest; nJdx++) { 376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(gDasfMode == 0) { 377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: G722 DECODER RUNNING UNDER FILE MODE\n",__LINE__); 378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fOut = fopen(fname, "w"); 379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(fOut == NULL) { 380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ( "Error: failed to create the output file \n"); 381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Op File has created\n",__LINE__); 384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fIn = fopen(argv[1], "r"); 386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(fIn == NULL) { 387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stderr, "Error: failed to open the file %s for readonly access\n", argv[1]); 388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (tcID == 5) { 392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("*********************************************************\n"); 393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("App: %d time Sending OMX_StateExecuting Command: TC 5\n", nJdx); 394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("*********************************************************\n"); 395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (tcID == 6) { 397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("*********************************************************\n"); 398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: App: Outer %d time Sending OMX_StateExecuting Command: TC6\n",__LINE__, nIdx); 399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("*********************************************************\n"); 400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* EOS_sent = OMX_FALSE; */ 402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle, OMX_CommandStateSet, OMX_StateExecuting, NULL); 406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("Error from SendCommand-Executing State function\n"); 408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App :: About to call WaitForState to change to Executing\n",__LINE__); 412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateExecuting); 413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin gState = OMX_StateExecuting; 414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT( "Error: WaitForState reports an error %X\n", error); 419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App :: state changed to Executing\n",__LINE__); 422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = sendInBuffFillOutBuff (pHandle, nIpBuffs, nOpBuffs, gDasfMode, pInputBufferHeader, fIn, pOutputBufferHeader); 424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin while (1) { 429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_DEBUG 430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin getString_OMX_State (strState, gState); 431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if ((error == OMX_ErrorNone) && (gState != OMX_StateIdle)) { 434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = testCases (pHandle, &rfds, tcID, fIn, fOut, &frmCnt, &totalFilled, &tv, gDasfMode, nIpBuffs, pInputBufferHeader, nOpBuffs, pOutputBufferHeader); 435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("<<<<<<<<<<<<<< testCases fault exit >>>>>>>>>>>>>>\n"); 437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (preempted) { 440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sched_yield (); 441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* goto SHUTDOWN */ 444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } /* While Loop Ending Here */ 446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fclose(fIn); 447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(0 == gDasfMode) { 448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fclose(fOut); 449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(nIdx != (nCntTest - 1)) { 452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((tcID == 5) || (tcID == 2)) { 453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: sleeping here for %d secs\n",__LINE__,SLEEP_TIME); 454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sleep (SLEEP_TIME); 455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DSP_RENDERING_ON 459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin cmd_data.AM_Cmd = AM_Exit; 460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((write (g722decfdwrite, &cmd_data, sizeof(cmd_data)))<0) 461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: [G722 Dec Component] - send command to audio manager\n",__LINE__); 462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close(g722decfdwrite); 463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close(g722decfdread); 464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("Sending the StateLoaded Command\n"); 468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle,OMX_CommandStateSet, OMX_StateLoaded, NULL); 472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = omxFreeBuffers (pHandle, nIpBuffs, pInputBufferHeader, "Input"); 474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((error != OMX_ErrorNone)) { 475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error in Free Input Buffers function\n",__LINE__); 476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(gDasfMode == 0) { 479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = omxFreeBuffers (pHandle, nOpBuffs, pOutputBufferHeader, "Output"); 480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((error != OMX_ErrorNone)) { 481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error in Free Output Buffers function\n",__LINE__); 482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateLoaded); 486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateLoaded>"); 488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error from SendCommand-Idle State function\n",__LINE__); 491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef WAITFORRESOURCES 495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(pHandle,OMX_CommandStateSet, OMX_StateWaitForResources, NULL); 496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d :: AmrDecTest.c :: Error from SendCommand-Idle State function\n",__LINE__); 498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("goto EXIT %d\n",__LINE__); 499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; 501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateWaitForResources); 503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* temporarily put this here until I figure out what should really happen here */ 505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sleep(10); 506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle, OMX_CommandPortDisable, -1, NULL); 509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef DSP_RENDERING_ON 512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((write(g722decfdwrite, &cmd_data, sizeof(cmd_data)))<0) 513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d [G722Dec Test] - send command to audio manager\n",__LINE__); 514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = TIOMX_FreeHandle(*pHandle); 517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( (error != OMX_ErrorNone)) { 518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error in Free Handle function\n",__LINE__); 519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (1); 520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Free Handle returned Successfully \n\n\n\n",__LINE__); 522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (pHandle) { 523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin free(pHandle); 524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (Event_Pipe[0]); 527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (Event_Pipe[1]); 528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (IpBuf_Pipe[0]); 529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (IpBuf_Pipe[1]); 530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (OpBuf_Pipe[0]); 531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin close (OpBuf_Pipe[1]); 532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 533b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sendlastbuffer = 0; 534b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 535b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 536b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = TIOMX_Deinit(); 537b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( (error != OMX_ErrorNone)) { 538b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("APP: Error in Deinit Core function\n"); 539b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 540b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 541b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 542b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("**********************************************************\n"); 543b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("NOTE: An output file %s has been created in file system\n",APP_OUTPUT_FILE); 544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("**********************************************************\n"); 545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("G722_DEC test <End>"); 548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ListDestroy(pListHead); 549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin exit (0); 551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} /* end main () */ 552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 553b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 554b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 555b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn validateArguments() This is the main function of application which gets called. 556b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 557b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean validateArguments (int nArgc, char *sArgv [], int *iSampRate, char *fname, int *tcID, int *gDasfMode, int *nIpBuffs, int *nIpBufSize, int *nOpBuffs, int *nOpBufSize) 560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("------------------------------------------------------\n"); 562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("This is Main Thread In G722 DECODER Test Application:\n"); 563b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("Test Core 1.5 - " __DATE__ ":" __TIME__ "\n"); 564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("------------------------------------------------------\n"); 565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* check the input parameters */ 567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (checkInputParameters (nArgc) == FALSE) { 568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* check to see that the input file exists */ 572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin struct stat sb = {0}; 573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int status = stat(sArgv[1], &sb); 574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( status != 0 ) { 575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf( "Cannot find file %s. (%u)\n", sArgv[1], errno); 576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Test not performed!!!!!!\n\n"); 577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nTmp = atoi(sArgv[2]); 581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (validateSampRate (nTmp) == FALSE) { 582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *iSampRate = nTmp; 585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *tcID = getNumTestCase (sArgv [3], fname); 587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (*tcID == 0) { 588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Invalid Test Case ID: exiting...\n"); 589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *gDasfMode = validateArg4 (sArgv [4]); 593b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (*gDasfMode == -1) { 594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 596b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *nIpBuffs = atoi(sArgv[5]); 598b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App: nIpBuf = %d\n",__LINE__, *nIpBuffs); 599b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *nIpBufSize = atoi(sArgv[6]); 600b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App: nIpBufSize = %d\n",__LINE__, *nIpBufSize); 601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *nOpBuffs = atoi(sArgv[7]); 602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App: nOpBuf = %d\n",__LINE__, *nOpBuffs); 603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *nOpBufSize = atoi(sArgv[8]); 604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App: nOpBufSize = %d\n",__LINE__, *nOpBufSize); 605b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Sample rate:\t\t %d\n", *iSampRate); 607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Test case ID:\t\t %d\n", *tcID); 608b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("DasfMode:\t\t %d\n", *gDasfMode); 609b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("# of Input Buffers:\t %d\n", *nIpBuffs); 610b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Size of Input Buffers:\t %d\n", *nIpBufSize); 611b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("# of Output Buffers:\t %d\n", *nOpBuffs); 612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Size of Output Buffers:\t %d\n", *nOpBufSize); 613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 614b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 615b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/**/ 616b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 617b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 618b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn maxint() gives the maximum of two integers. 619b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 620b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param a intetger a 621b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 622b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param b integer b 623b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 624b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 625b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 626b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 627b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return bigger number 629b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 630b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 631b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 632b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 633b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint maxint(int a, int b) 634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (a>b) ? a : b; 636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 638b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 639b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn WaitForState() Waits for the state to change. 641b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core. 643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param DesiredState This is state which the app is waiting for. 645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return Appropriate OMX Error. 651b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 654b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 655b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstatic OMX_ERRORTYPE WaitForState(OMX_HANDLETYPE* pHandle, OMX_STATETYPE DesiredState) 656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 657b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE CurState = OMX_StateInvalid; 658b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nCnt = 0; 660b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetState(*pHandle, &CurState); 662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin while( (error == OMX_ErrorNone) && (CurState != DesiredState)) { 663b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sched_yield(); 664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(nCnt++ == 10) { 665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT( "Still Waiting, press CTL-C to continue\n"); 666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetState(*pHandle, &CurState); 668b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 669b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return error; 671b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 672b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 673b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 674b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 675b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 676b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn EventHandler() This is event handle which is called by the component on 677b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * any event change. 678b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 679b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param hComponent This is component handle allocated by the OMX core. 680b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 681b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pAppData This is application private data. 682b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 683b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param eEvent This is event generated from the component. 684b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 685b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param nData1 Data1 associated with the event. 686b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 687b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param nData2 Data2 associated with the event. 688b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 689b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pEventData Any other string event data from component. 690b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 691b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 692b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 693b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 694b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 695b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return Appropriate OMX error. 696b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 697b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 698b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 699b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 700b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE EventHandler(OMX_HANDLETYPE hComponent,OMX_PTR pAppData,OMX_EVENTTYPE eEvent, 701b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nData1, OMX_U32 nData2, OMX_PTR pEventData) 702b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 703b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 writeValue = 0; 704b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef APP_DEBUG 705b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin char strState [20] = {""}; 706b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin char strTargetState [20] = {""}; 707b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin getString_OMX_State (strState, nData2); 708b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin getString_OMX_State (strTargetState, nData1); 709b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 710b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 711b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin switch (eEvent) { 712b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventResourcesAcquired: 713b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventResourcesAcquired <--------\n"); 714b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin writeValue = 1; 715b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin write(Event_Pipe[1], &writeValue, sizeof(OMX_U8)); 716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin preempted = 0; 717b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 718b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventCmdComplete: 719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventCmdComplete<--------\n"); 720b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin gState = (OMX_STATETYPE)nData2; 721b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventMax: 723b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventMax<--------\n"); 724b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventMark: 725b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventMark<--------\n"); 726b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 727b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventPortSettingsChanged: 728b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventPortSettingsChanged <--------\n"); 729b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 730b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventComponentResumed: 731b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventComponentResumed <--------\n"); 732b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 733b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventDynamicResourcesAvailable: 734b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventDynamicResourcesAvailable <--------\n"); 735b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 736b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventPortFormatDetected: 737b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 738b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventError: 739b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventError <--------\n"); 740b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ( "%d :: G722DecTest.c Event: OMX_EventError. Component State Changed To %s. Target %s\n", __LINE__, strState, strTargetState); 741b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (nData1 != OMX_ErrorInvalidState && nData1 == OMX_ErrorResourcesPreempted) { 742b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> \tprocess on OMX_ErrorResourcesPreempted<--------\n"); 743b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin preempted=1; 744b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 745b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin writeValue = 0; 746b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin write(Event_Pipe[1], &writeValue, sizeof(OMX_U8)); 747b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 748b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> \tnothing to process on OMX_EnentError <--------\n"); 749b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 750b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 751b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_EventBufferFlag: 752b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> OMX_EventBufferFlag <--------\n"); 753b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ( "%d :: G722DecTest.c Event: OMX_EventBufferFlag. Component State Changed To %s. Target %s\n", __LINE__, strState, strTargetState); 754b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* <<<<< Process Manager <<<<< */ 755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin writeValue = 2; 756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin write(Event_Pipe[1], &writeValue, sizeof(OMX_U8)); 757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* >>>>>>>>>> */ 758b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin default: 760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("------> Unknown event <--------\n"); 761b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 762b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return OMX_ErrorNone; 765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 768b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn FillBufferDone() Component sens the output buffer to app using this 770b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * callback. 771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 772b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param hComponent This is component handle allocated by the OMX core. 773b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 774b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param ptr This is another pointer. 775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pBuffer This is output buffer. 777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 779b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 780b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 781b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 782b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return None 783b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 784b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 785b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid FillBufferDone (OMX_HANDLETYPE hComponent, OMX_PTR ptr, OMX_BUFFERHEADERTYPE* pBuffer) 788b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 789b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin write(OpBuf_Pipe[1], &pBuffer, sizeof(pBuffer)); 790b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 791b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE eError = OMX_ErrorNone; 792b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int GT_FlagE = 0; /* Fill Buffer 1 = First Buffer, 0 = Not First Buffer */ 793b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int GT_FlagF = 0; /*Empty Buffer 1 = First Buffer, 0 = Not First Buffer */ 794b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static OMX_NODE* pListHead = NULL; 795b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 796b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 797b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 798b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 799b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 800b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn EmptyBufferDone() Component sends the input buffer to app using this 801b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * callback. 802b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 803b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param hComponent This is component handle allocated by the OMX core. 804b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 805b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param ptr This is another pointer. 806b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 807b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pBuffer This is input buffer. 808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 810b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 813b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return None 814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 815b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid EmptyBufferDone(OMX_HANDLETYPE hComponent, OMX_PTR ptr, OMX_BUFFERHEADERTYPE* pBuffer) 819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (!preempted) 821b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin write(IpBuf_Pipe[1], &pBuffer, sizeof(pBuffer)); 822b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (GT_FlagF == 1 ) { /* First Buffer Reply*/ /* 1 = First Buffer, 0 = Not First Buffer */ 824b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to FillBufferDone <First: FillBufferDone>"); 825b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_FlagF = 0 ; /* 1 = First Buffer, 0 = Not First Buffer */ 826b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 827b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 828b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 829b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 830b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 831b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 832b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn send_input_buffer() Sends the input buffer to the component. 833b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 834b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pHandle This is component handle allocated by the OMX core. 835b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 836b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @param pBuffer This is the buffer pointer. 837b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 838b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fIn This is input file handle. 839b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 840b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @pre None 841b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 842b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @post None 843b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 844b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @return Appropriate OMX error. 845b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 846b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @see None 847b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 848b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 849b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE send_input_buffer(OMX_HANDLETYPE pHandle, OMX_BUFFERHEADERTYPE* pBufferHeader, FILE *fIn) 850b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 851b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 852b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nRead = 0; 853b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static int totalRead = 0; 854b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static int fileHdrReadFlag = 0; 855b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static int ccnt = 1; 856b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (!fileHdrReadFlag) { 857b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fileHdrReadFlag = 1; 858b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 859b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin nRead = fread(pBufferHeader->pBuffer, 1, pBufferHeader->nAllocLen , fIn); 860b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 861b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (nRead != 0) { 862b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin totalRead += nRead; 863b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBufferHeader->nFilledLen = nRead; 864b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin ccnt++; 865b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 866b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("\n*****************************************************\n"); 867b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d :: App:: pBuffer->pBuffer = %p pBuffer->nAllocLen = * %ld, nRead = %d, totalread = %d\n", 868b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin __LINE__, pBufferHeader->pBuffer, pBufferHeader->nAllocLen, nRead, totalRead); 869b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("\n*****************************************************\n"); 870b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 871b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 872b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(sendlastbuffer){ 873b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sendlastbuffer = 0; 874b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBufferHeader->nFlags = 0; 875b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 876b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return error; 877b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 878b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 879b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(nRead < pBufferHeader->nAllocLen) { 880b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBufferHeader->nFlags = OMX_BUFFERFLAG_EOS; 881b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sendlastbuffer = 1; 882b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 883b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBufferHeader->nFlags = 0; 884b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 885b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBufferHeader->nFilledLen = nRead; 886b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_EmptyThisBuffer(pHandle, pBufferHeader); 887b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return error; 888b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 889b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 890b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 891b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 892b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn validateArg4() This is the main function of application which gets called. 893b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 894b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 895b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 896b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint validateArg4 (char *sArg4) 897b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 898b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int gDasfMode = -1; 899b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 900b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (!strcmp(sArg4, "DM")) { 901b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin gDasfMode = 1; 902b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sArg4, "FM")) { 903b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin gDasfMode = 0; 904b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 905b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("\n%d :: App: Sending Bad Parameter for dasf mode\n",__LINE__); 906b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: App: Should Be One of these Modes FM or DM\n",__LINE__); 907b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin gDasfMode = -1; 908b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 909b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 910b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (gDasfMode); 911b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 912b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 913b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 914b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 915b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn getNumTestCase() This is the main function of application which gets called. 916b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 917b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 918b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 919b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinint getNumTestCase (char *sTestCase, char *sFileName) 920b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 921b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int iTestCase = 0; 922b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 923b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(!strcmp(sTestCase,"TC_1")) { 924b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 1; 925b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_2")) { 926b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 2; 927b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_3")) { 928b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 3; 929b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_4")) { 930b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 4; 931b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_5")) { 932b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 5; 933b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_6")) { 934b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 6; 935b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_7")) { 936b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 7; 937b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_8")) { 938b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 8; 939b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (!strcmp(sTestCase,"TC_9")) { 940b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin iTestCase = 9; 941b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 942b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printTestCaseInfo (iTestCase, sFileName); 943b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 944b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (iTestCase); 945b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 946b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 947b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 948b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 949b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn printTestCaseInfo() This is the main function of application which gets called. 950b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 951b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 952b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 953b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid printTestCaseInfo (int iTestCase, char *sFileName) 954b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 955b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin switch (iTestCase) { 956b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 1: 957b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 7: 958b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 8: 959b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 960b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing Simple PLAY till EOF \n"); 961b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 962b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName, ".pcm"); 963b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 964b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 2: 965b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 966b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing Basic Stop \n"); 967b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 968b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName, "_tc2.pcm"); 969b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 970b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 3: 971b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 972b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing PAUSE & RESUME Command\n"); 973b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------\n"); 974b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName, ".pcm"); 975b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 976b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 4: 977b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("---------------------------------------------\n"); 978b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing STOP Command by Stopping In-Between\n"); 979b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("---------------------------------------------\n"); 980b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 981b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 5: 982b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------------------\n"); 983b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing Repeated PLAY without Deleting Component\n"); 984b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("-------------------------------------------------\n"); 985b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName,"_tc5.pcm"); 986b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 987b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 6: 988b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("------------------------------------------------\n"); 989b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Testing Repeated PLAY with Deleting Component\n"); 990b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("------------------------------------------------\n"); 991b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName,"_tc6.pcm"); 992b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 993b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 9: 994b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("------------------------------------------------\n"); 995b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("TimeStamp, TickCounts\n"); 996b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("------------------------------------------------\n"); 997b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcat(sFileName,"_tc6.pcm"); 998b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 999b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1000b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1001b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return; 1002b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1003b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1004b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1005b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1006b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn checkInputParameters() This is the main function of application which gets called. 1007b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1008b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1009b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1010b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean checkInputParameters (iNumParams) 1011b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1012b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(iNumParams != 9) { 1013b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Wrong Arguments: See Below:\n\n"); 1014b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Usage: [TestApp] [Input File] [Input File Bit Rate] [TC ID]\ 1015b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin[FM/DM] [NB INPUT BUF] [INPUT BUF SIZE] [NB OUTPUT BUF] [OUTPUT BUF SIZE]\n",__LINE__); 1016b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1017b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1018b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1019b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1020b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1021b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1022b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1023b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn validateSampRate() This is the main function of application which gets called. 1024b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1025b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1026b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1027b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean validateSampRate (int iSampRate) 1028b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1029b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (iSampRate == 64000) { 1030b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1031b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if(iSampRate == 56000) { 1032b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1033b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if(iSampRate == 48000) { 1034b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1035b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (iSampRate == INVALID_SAMPLING_FREQ) { 1036b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************************************\n"); 1037b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: App: Note: Invalid Frequency has been specified by App\n",__LINE__); 1038b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("***********************************************************\n"); 1039b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1040b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 1041b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("%d :: Sample Frequency Not Supported: \n", __LINE__); 1042b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Supported frequencies are: 64000 or 56000 or 48000.\n"); 1043b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("If you want to specify invalid sampling frequency, specify %d and test the component for error.\n", 1044b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin INVALID_SAMPLING_FREQ); 1045b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: Exiting...........\n",__LINE__); 1046b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1047b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1048b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("Unspecified error.\n"); 1049b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1050b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1051b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1052b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1053b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1054b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxSetInputPortParameter() This is the main function of application which gets called. 1055b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1056b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1057b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1058b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetInputPortParameter (OMX_HANDLETYPE *pHandle, int nIpBuffs, int nIpBufSize) 1059b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1060b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE pCompPrivateStruct; 1061b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1062b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1063b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nSize = sizeof (OMX_PARAM_PORTDEFINITIONTYPE); 1064b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.eDir = OMX_DirInput; 1065b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nBufferCountActual = nIpBuffs; 1066b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nBufferSize = nIpBufSize; 1067b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.format.audio.eEncoding = OMX_AUDIO_CodingPCM; 1068b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.bEnabled = OMX_TRUE; 1069b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.bPopulated = OMX_FALSE; 1070b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nPortIndex = OMX_DirInput; 1071b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1072b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1073b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter(*pHandle,OMX_IndexParamPortDefinition, &pCompPrivateStruct); 1074b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Set Parameter Test-SetParameter"); 1075b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 1076b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter(*pHandle,OMX_IndexParamPortDefinition, &pCompPrivateStruct); 1077b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1078b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1079b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1080b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("%d :: OMX_ErrorBadParameter\n",__LINE__); 1081b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1082b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1083b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1084b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1085b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1086b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1087b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1088b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxSetOutputPortParameter() This is the main function of application which gets called. 1089b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1090b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1091b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1092b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetOutputPortParameter (OMX_HANDLETYPE *pHandle, int nOpBuffs, int nOpBufSize, int gDasfMode) 1093b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1094b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE pCompPrivateStruct; 1095b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1096b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1097b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.eDir = OMX_DirOutput; 1098b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nBufferCountActual = (gDasfMode == 1)? 0 : nOpBuffs; 1099b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nBufferSize = nOpBufSize; 1100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.format.audio.eEncoding = OMX_AUDIO_CodingPCM; 1101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.bEnabled = OMX_TRUE; 1102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.bPopulated = (gDasfMode == 1)? OMX_TRUE : OMX_FALSE; 1103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStruct.nPortIndex = OMX_DirOutput; 1104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter(*pHandle,OMX_IndexParamPortDefinition, &pCompPrivateStruct); 1108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Set Parameter Test-SetParameter"); 1109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 1110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter(*pHandle,OMX_IndexParamPortDefinition, &pCompPrivateStruct); 1111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("%d :: OMX_ErrorBadParameter\n",__LINE__); 1115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn g722SetInputPort() This is the main function of application which gets called. 1123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean g722SetInputPort (OMX_HANDLETYPE *pHandle, int iSampRate) 1127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PCMMODETYPE pG722Param; 1129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE); 1132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nVersion.s.nVersionMajor = 0xF1; 1133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nVersion.s.nVersionMinor = 0xF2; 1134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nPortIndex = OMX_DirInput; 1135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nChannels = 1; /* mono */ 1136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nBitPerSample = 8; 1137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.eNumData = OMX_NumericalDataUnsigned; 1138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.eEndian = OMX_EndianLittle; 1139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.bInterleaved = OMX_FALSE; 1140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.ePCMMode = OMX_AUDIO_PCMModeLinear; 1141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nSamplingRate = iSampRate; 1142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter (*pHandle, OMX_IndexParamAudioPcm, &pG722Param); 1146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Set Parameter Test-SetParameter"); 1147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 1148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter (*pHandle, OMX_IndexParamAudioPcm, &pG722Param); 1149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn g722SetOutputPort() This is the main function of application which gets called. 1161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean g722SetOutputPort (OMX_HANDLETYPE *pHandle) 1165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_PARAM_PCMMODETYPE pG722Param; 1167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE); 1170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nVersion.s.nVersionMajor = 0xF1; 1171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nVersion.s.nVersionMinor = 0xF2; 1172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nPortIndex = OMX_DirOutput; 1173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nChannels = 1; /* mono */ 1174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nBitPerSample = 16; 1175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.nSamplingRate = 16000; 1176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.eNumData = OMX_NumericalDataUnsigned; 1177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.eEndian = OMX_EndianLittle; 1178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.bInterleaved = OMX_FALSE; 1179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pG722Param.ePCMMode = OMX_AUDIO_PCMModeLinear; 1180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter (*pHandle, OMX_IndexParamAudioPcm, &pG722Param); 1184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Set Parameter Test-SetParameter"); 1185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 1186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetParameter (*pHandle, OMX_IndexParamAudioPcm, &pG722Param); 1187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxSetConfigMute() This is the main function of application which gets called. 1199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetConfigMute (OMX_HANDLETYPE *pHandle, OMX_BOOL bMute) 1203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_CONFIG_MUTETYPE pCompPrivateStructMute; 1205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* default setting for Mute/Unmute */ 1208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructMute.nSize = sizeof (OMX_AUDIO_CONFIG_MUTETYPE); 1209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructMute.nVersion.s.nVersionMajor = 0xF1; 1210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructMute.nVersion.s.nVersionMinor = 0xF2; 1211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructMute.nPortIndex = OMX_DirInput; 1212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructMute.bMute = bMute; 1213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetConfig(*pHandle, OMX_IndexConfigAudioMute, &pCompPrivateStructMute); 1215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxSetConfigVolume() This is the main function of application which gets called. 1225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinboolean omxSetConfigVolume (OMX_HANDLETYPE *pHandle, OMX_S32 nVolume) 1229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_AUDIO_CONFIG_VOLUMETYPE pCompPrivateStructVolume; 1231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* default setting for volume */ 1234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE); 1235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.nVersion.s.nVersionMajor = 0xF1; 1236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.nVersion.s.nVersionMinor = 0xF2; 1237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.nPortIndex = OMX_DirInput; 1238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.bLinear = OMX_FALSE; 1239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.sVolume.nValue = nVolume; /* actual volume */ 1240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.sVolume.nMin = 0; /* min volume */ 1241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pCompPrivateStructVolume.sVolume.nMax = 100; /* max volume */ 1242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SetConfig(*pHandle, OMX_IndexConfigAudioVolume, &pCompPrivateStructVolume); 1244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_ErrorBadParameter; 1246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (FALSE); 1247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (TRUE); 1249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxUseBuffers() This is the main function of application which gets called. 1254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE omxUseBuffers (OMX_HANDLETYPE *pHandle, int gDasfMode, int nIpBuffs, int nIpBufSize, OMX_BUFFERHEADERTYPE *pInputBufferHeader [], int nOpBuffs, int nOpBufSize, OMX_BUFFERHEADERTYPE *pOutputBufferHeader []) 1258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int i=0; /* 0j0 <<<<<<<<<<< */ 1261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef USE_BUFFER 1263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i < nIpBuffs; i++) { 1264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: About to call OMX_AllocateBuffer On Input\n",__LINE__); 1265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_AllocateBuffer(*pHandle, &pInputBufferHeader[i], 0, NULL, nIpBufSize); 1266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: called OMX_AllocateBuffer\n",__LINE__); 1267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error returned by OMX_AllocateBuffer()\n",__LINE__); 1269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 1274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i < nOpBuffs; i++) { 1275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_AllocateBuffer(*pHandle,&pOutputBufferHeader[i],1,NULL,nOpBufSize); 1276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error returned by OMX_AllocateBuffer()\n",__LINE__); 1278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 1283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* pInputBuffer [MAX_NUM_OF_BUFS] = {NULL}; 1284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* pOutputBuffer [MAX_NUM_OF_BUFS] = {NULL}; 1285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i<nIpBuffs; i++) { 1287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (pInputBuffer[i] == NULL) { 1288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pInputBuffer[i] = (OMX_U8*)malloc(nIpBufSize); 1289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: About to call OMX_UseBuffer On Input\n",__LINE__); 1290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: About to call OMX_UseBuffer On Input\n",__LINE__); 1291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_UseBuffer(*pHandle,&pInputBufferHeader[i],0,NULL,nIpBufSize,pInputBuffer[i]); 1292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error returned by OMX_UseBuffer()\n",__LINE__); 1294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 1300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i<nOpBuffs; i++) { 1301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (pOutputBuffer[i] == NULL) { 1302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pOutputBuffer[i] = malloc (nOpBufSize + 256); 1303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pOutputBuffer[i] = pOutputBuffer[i] + 128; 1304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* allocate output buffer */ 1305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: About to call OMX_UseBuffer On Output\n",__LINE__); 1306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("%d :: About to call OMX_UseBuffer On Output\n",__LINE__); 1307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_UseBuffer(*pHandle,&pOutputBufferHeader[i],1,NULL,nOpBufSize,pOutputBuffer[i]); 1308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: Error returned by OMX_UseBuffer()\n",__LINE__); 1310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pOutputBufferHeader[i]->nFilledLen = 0; 1313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn testCases() This is the main function of application which gets called. 1323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCases (OMX_HANDLETYPE *pHandle, fd_set *rfds, int tcID, FILE *fIn, FILE *fOut, int *frmCnt, int *totalFilled, struct timeval *tv, int gDasfMode, int nIpBuffs, OMX_BUFFERHEADERTYPE *pInputBufferHeader [], int nOpBuffs, OMX_BUFFERHEADERTYPE *pOutputBufferHeader []) 1327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin boolean bFlag = true; 1329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin static int frmCount = 0; 1330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int fdmax = maxint(IpBuf_Pipe [0], OpBuf_Pipe [0]); 1333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fdmax = maxint (fdmax, Event_Pipe [0]); 1334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FD_ZERO (rfds); 1336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FD_SET (IpBuf_Pipe[0], rfds); 1337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FD_SET (OpBuf_Pipe[0], rfds); 1338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin FD_SET (Event_Pipe[0], rfds); 1339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin tv->tv_sec = 1; 1340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin tv->tv_usec = 0; 1341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int retval = select(fdmax+1, rfds, NULL, NULL, tv); 1343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(retval == -1) { 1344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin perror("select()"); 1345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ( " : Error \n"); 1346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (OMX_EventError); 1347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(retval == 0) { 1350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d :: BasicFn App Timeout !!!!!!!!!!! \n",__LINE__); 1351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*****/ 1353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin frmCount++; 1354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin switch (tcID) { 1356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 1: 1357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 5: 1358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 6: 1359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer = NULL; 1361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: APP: input buffer received, filled length = %d\n",__LINE__,(int)pBuffer->nFilledLen); 1363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 2: 1370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 4: 1371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(*frmCnt == 4) { 1373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("Shutting down ---------- \n"); 1374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle,OMX_CommandStateSet, OMX_StateIdle, NULL); 1378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf (stderr,"Error from SendCommand-Idle(Stop) State function\n"); 1380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(tcID == 4) { 1383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = testCase_2_4 (pHandle, gDasfMode, fIn, fOut, nIpBuffs, pInputBufferHeader); 1384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf (stderr,"Error from SendCommand-Idle(Stop) State function\n"); 1386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 1390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer = NULL; 1391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (*frmCnt)++; 1398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 3: 1401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(frmCount == 3 || frmCount == 6) { 1402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = testCase_3 (pHandle); 1403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer = NULL; 1411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (*frmCnt)++; 1418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 7: 1421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* test mute/unmute playback stream */ 1422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer = NULL; 1424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (*frmCnt)++; 1430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(*frmCnt == 3) { 1433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("************Mute the playback stream*****************\n"); 1434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetConfigMute (pHandle, OMX_TRUE); 1435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 1436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(*frmCnt == 6) { 1441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("************Unmute the playback stream*****************\n"); 1442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetConfigMute (pHandle, OMX_FALSE); 1443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 1444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 8: 1450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* test set volume for playback stream */ 1451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer = NULL; 1453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (*frmCnt)++; 1460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(*frmCnt == 3) { 1463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("************Set stream volume to high*****************\n"); 1464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetConfigVolume (pHandle, 0x8000); 1465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 1466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(*frmCnt == 6) { 1471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("************Set stream volume to low*****************\n"); 1472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin bFlag = omxSetConfigVolume (pHandle, 0x1000); 1473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (bFlag == FALSE) { 1474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case 9: 1479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(FD_ISSET(IpBuf_Pipe[0], rfds)) { 1480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuffer= NULL; 1481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer)); 1482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: APP: input buffer received, filled length = %d\n",__LINE__,(int)pBuffer->nFilledLen); 1483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pBuffer, fIn); 1484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (error != OMX_ErrorNone) { 1485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBuffer->nTimeStamp = (OMX_S64) rand() % 70; 1489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBuffer->nTickCount = (OMX_S64) rand() % 70; 1490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("SENDING TIMESTAMP = %d\n", (int) pBuffer->nTimeStamp); 1491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("SENDING TICK COUNT = %ld\n", pBuffer->nTickCount); 1492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin default: 1496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: ### Running Simple DEFAULT Case Here ###\n",__LINE__); 1497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } /* end switch */ 1498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /**********************/ 1499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( FD_ISSET(OpBuf_Pipe[0], rfds) ) { 1500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE* pBuf = NULL; 1501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(OpBuf_Pipe[0], &pBuf, sizeof(pBuf)); 1502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(pBuf->nFlags == OMX_BUFFERFLAG_EOS){ 1503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("EOS received by App, Stopping the component\n"); 1504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pBuf->nFlags = 0; 1505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* StopComponent(pHandle);*/ 1506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fseek(fIn, 0, SEEK_SET); 1507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(pBuf->nFilledLen == 0) { 1509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: APP: output buffer received, filled length = %d, totalfilled = %d\n",__LINE__,(int)pBuf->nFilledLen,totalFilled); 1510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 1511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: APP: output buffer received, filled length = %d, totalfilled = %d\n",__LINE__,(int)pBuf->nFilledLen,totalFilled); 1512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fwrite(pBuf->pBuffer, 1, pBuf->nFilledLen, fOut); 1513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin totalFilled += pBuf->nFilledLen; 1515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fflush(fOut); 1516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_FillThisBuffer(*pHandle, pBuf); 1517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*************/ 1519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*<<<<<<< Process Manager <<<<<<< */ 1520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if ( FD_ISSET (Event_Pipe[0], rfds) ) { 1521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 pipeContents =0; 1522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin read(Event_Pipe[0], &pipeContents, sizeof(OMX_U8)); 1523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (pipeContents == 0) { 1525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Test app received OMX_ErrorResourcesPreempted\n"); 1527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin WaitForState(pHandle,OMX_StateIdle); 1528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int i; 1529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (i=0; i < nIpBuffs; i++) { 1530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_FreeBuffer (pHandle,OMX_DirInput,pInputBufferHeader[i]); 1531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( (error != OMX_ErrorNone)) { 1532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d :: G722DecTest.c :: Error in Free Handle function\n",__LINE__); 1533b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1534b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1535b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1536b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 1537b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (i=0; i < nOpBuffs; i++) { 1538b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_FreeBuffer (pHandle,OMX_DirOutput,pOutputBufferHeader[i]); 1539b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if( (error != OMX_ErrorNone)) { 1540b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error in Free Handle function\n",__LINE__); 1541b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1542b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1543b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1544b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1545b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef USE_BUFFER 1546b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* newfree the App Allocated Buffers */ 1547b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: AmrDecTest.c :: Freeing the App Allocated Buffers in TestApp\n",__LINE__); 1548b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i < nIpBuffs; i++) { 1549b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_MEMPRINT("%d::: [TESTAPPFREE] pInputBuffer[%d] = %p\n",__LINE__,i,pInputBuffer[i]); 1550b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(pInputBuffer[i] != NULL){ 1551b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pInputBuffer[i] = pInputBuffer[i] - 128; 1552b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin newfree(pInputBuffer[i]); 1553b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pInputBuffer[i] = NULL; 1554b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1555b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1556b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for(i=0; i < numOutputBuffers; i++) { 1557b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_MEMPRINT("%d::: [TESTAPPFREE] pOutputBuffer[%d] = %p\n",__LINE__,i, pOutputBuffer[i]); 1558b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(pOutputBuffer[i] != NULL){ 1559b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pOutputBuffer[i] = pOutputBuffer[i] - 128; 1560b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin newfree(pOutputBuffer[i]); 1561b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pOutputBuffer[i] = NULL; 1562b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1563b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1564b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1565b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1566b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_SendCommand(*pHandle,OMX_CommandStateSet, OMX_StateIdle/*OMX_StateLoaded*/,NULL); 1567b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin WaitForState(pHandle, OMX_StateIdle/*OMX_StateLoaded*/); 1568b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef WAITFORRESOURCES 1569b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_SendCommand(*pHandle,OMX_CommandStateSet,OMX_StateWaitForResources,NULL); 1570b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin WaitForState(pHandle,OMX_StateWaitForResources); 1571b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1572b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (pipeContents == 1) { 1573b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1574b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Test app received OMX_ErrorResourcesAcquired\n"); 1575b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1576b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_SendCommand(*pHandle,OMX_CommandStateSet,OMX_StateIdle,NULL); 1577b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int i = 0; 1578b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (i=0; i < nIpBuffs; i++) { 1579b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* allocate input buffer */ 1580b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_AllocateBuffer (*pHandle,&pInputBufferHeader[i],0,NULL, G722D_INPUT_BUFFER_SIZE *3); /*To have enought space for */ 1581b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1582b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: G722DecTest.c :: Error returned by OMX_AllocateBuffer()\n",__LINE__); 1583b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1584b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1585b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin WaitForState(pHandle,OMX_StateIdle); 1586b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_SendCommand(*pHandle,OMX_CommandStateSet,OMX_StateExecuting,NULL); 1587b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin WaitForState(pHandle,OMX_StateExecuting); 1588b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin rewind(fIn); 1589b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1590b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (i=0; i < nIpBuffs;i++) { 1591b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin send_input_buffer(*pHandle, pInputBufferHeader[i], fIn); 1592b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1593b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else if (pipeContents == 2) { 1594b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE CurState = OMX_StateInvalid; 1595b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin char strCurrState [20] = {""}; 1596b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1597b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_GetState(*pHandle, &CurState); 1598b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin getString_OMX_State (strCurrState, CurState); 1599b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle,OMX_CommandStateSet, OMX_StateIdle, NULL); 1600b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateIdle); 1601b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1602b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateIdle>"); 1603b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1604b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1605b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("\nError: WaitForState reports an error %X!!!!!!!\n", error); 1606b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return error; 1607b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1608b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* 1609b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #if 1 1610b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle,OMX_CommandStateSet, OMX_StateLoaded, NULL); 1611b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1612b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d :: G722DecTest.c :: Error from SendCommand-Idle State function\n",__LINE__); 1613b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("goto EXIT %d\n",__LINE__); 1614b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1615b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *goto EXIT;* 1616b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (-1); 1617b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1618b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateLoaded); 1619b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1620b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT( "%d :: G722DecTest.c :: Error: WaitForState reports an error %X\n",__LINE__, error); 1621b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("goto EXIT %d\n",__LINE__); 1622b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin *goto EXIT;* 1623b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (-1); 1624b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1625b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin # ifdef OMX_GETTIME 1626b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateIdle>"); *<OMX_StateLoaded>");* 1627b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin # endif 1628b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1629b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #endif 1630b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1631b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*goto SHUTDOWN;*/ 1632b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (OMX_ErrorNone); 1633b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /**/ 1634b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } else { 1635b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf ("--------> Pipe content = %d <----------\n", pipeContents); 1636b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1637b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1638b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1639b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1640b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1641b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1642b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1643b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn testCase_2_4() This is the main function of application which gets called. 1644b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1645b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1646b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1647b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCase_2_4 (OMX_HANDLETYPE *pHandle, int gDasfMode, FILE *fIn, FILE *fOut, int nIpBuffs, OMX_BUFFERHEADERTYPE *pInputBufferHeader []) 1648b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1649b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1650b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1651b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT ("*********** Waiting for state to change to Idle ************\n\n"); 1652b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1653b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1654b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateIdle>"); 1655b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1656b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1657b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateIdle); 1658b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1659b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stderr, "Error: WaitForState reports an error %X\n", error); 1660b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1661b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1662b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** State Changed to Idle ************\n\n"); 1663b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1664b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Component Has Stopped here and waiting for %d seconds before it plays further\n",SLEEP_TIME); 1665b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sleep(SLEEP_TIME); 1666b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1667b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*************** Execute command to Component *******************\n"); 1668b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1669b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1670b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1671b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1672b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1673b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand(*pHandle, OMX_CommandStateSet,OMX_StateExecuting, NULL); 1674b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1675b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf (stderr,"Error from SendCommand-Executing State function\n"); 1676b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1677b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1678b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1679b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** Waiting for state to change to Executing ************\n\n"); 1680b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState(pHandle, OMX_StateExecuting); 1681b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1682b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1683b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1684b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1685b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1686b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stderr, "Error: WaitForState reports an error %X\n", error); 1687b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1688b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1689b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** State Changed to Executing ************\n\n"); 1690b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1691b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 1692b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*rewind input and output files*/ 1693b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fseek(fIn, 0L, SEEK_SET); 1694b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fseek(fOut, 0L, SEEK_SET); 1695b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1696b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int k = 0; 1697b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (k=0; k < nIpBuffs; k++) { 1698b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pInputBufferHeader[k], fIn); 1699b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1700b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1701b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1702b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1703b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1704b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn testCase_3() This is the main function of application which gets called. 1705b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1706b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1707b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1708b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE testCase_3 (OMX_HANDLETYPE *pHandle) 1709b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1710b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1711b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1712b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("\n\n*************** Pause command to Component *******************\n"); 1713b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1714b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1715b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateExecuting>"); 1716b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1717b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1718b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand (*pHandle, OMX_CommandStateSet, OMX_StatePause, NULL); 1719b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1720b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf (stderr,"Error from SendCommand-Pasue State function\n"); 1721b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1722b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1723b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** Waiting for state to change to Pause ************\n"); 1724b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1725b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); 1726b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1727b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState (pHandle, OMX_StatePause); 1728b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1729b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1730b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stderr, "Error: WaitForState reports an error %X\n", error); 1731b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1732b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1733b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** State Changed to Pause ************\n\n"); 1734b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1735b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin printf("Sleeping for %d secs....\n\n",SLEEP_TIME); 1736b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin sleep(SLEEP_TIME); 1737b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1738b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*************** Resume command to Component *******************\n"); 1739b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1740b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StatePause>"); 1741b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1742b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_SendCommand (*pHandle, OMX_CommandStateSet,OMX_StateExecuting, NULL); 1743b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1744b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf (stderr,"Error from SendCommand-Executing State function\n"); 1745b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1746b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1747b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1748b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("******** Waiting for state to change to Resume ************\n"); 1749b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1750b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1751b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_END("Call to SendCommand <OMX_StateExecuting>"); 1752b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1753b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1754b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = WaitForState (pHandle, OMX_StateExecuting); 1755b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1756b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin fprintf(stderr, "Error: WaitForState reports an error %X\n", error); 1757b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1758b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1759b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_STATEPRINT("*********** State Changed to Resume ************\n\n"); 1760b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1761b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1762b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1763b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1764b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1765b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn sendInBuffFillOutBuff() This is the main function of application which gets called. 1766b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1767b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1768b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1769b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE sendInBuffFillOutBuff (OMX_HANDLETYPE *pHandle, int nIpBuffs, int nOpBuffs, int gDasfMode, OMX_BUFFERHEADERTYPE *pInputBufferHeader[], FILE *fIn, OMX_BUFFERHEADERTYPE *pOutputBufferHeader[]) 1770b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1771b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int k = 0; 1772b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1773b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1774b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (k=0; k < nIpBuffs; k++) { 1775b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1776b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (k == 0) { 1777b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_FlagE=1; /* 1 = First Buffer, 0 = Not First Buffer */ 1778b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); /* Empty Bufffer */ 1779b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1780b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1781b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = send_input_buffer (*pHandle, pInputBufferHeader[k], fIn); 1782b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1783b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1784b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1785b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1786b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (gDasfMode == 0) { 1787b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (k=0; k < nOpBuffs; k++) { 1788b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef OMX_GETTIME 1789b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (k == 0) { 1790b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_FlagF=1; /* 1 = First Buffer, 0 = Not First Buffer */ 1791b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GT_START(); /* Fill Buffer */ 1792b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1793b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 1794b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_FillThisBuffer (*pHandle, pOutputBufferHeader[k]); 1795b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(error != OMX_ErrorNone) { 1796b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1797b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1798b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1799b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1800b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1801b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1802b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1803b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1804b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn omxFreeBuffers() This is the main function of application which gets called. 1805b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1806b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1807b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1808b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE omxFreeBuffers (OMX_HANDLETYPE *pHandle, int nBuffs, OMX_BUFFERHEADERTYPE *pBufferHeader [], char *sBuffTypeMsg) 1809b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1810b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int i = 0; 1811b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_ERRORTYPE error = OMX_ErrorNone; 1812b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1813b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin for (i=0; i<nBuffs; i++) { 1814b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT("%d :: App: Freeing %p %s BufHeader\n",__LINE__,pBufferHeader[i], sBuffTypeMsg); 1815b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin error = OMX_FreeBuffer(*pHandle,OMX_DirInput,pBufferHeader[i]); 1816b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if((error != OMX_ErrorNone)) { 1817b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin APP_DPRINT ("%d:: Error in Free Handle function\n",__LINE__); 1818b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1819b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1820b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1821b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1822b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return (error); 1823b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1824b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================= * */ 1825b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 1826b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * @fn getString_OMX_State () This is the main function of application which gets called. 1827b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 1828b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 1829b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ================================================================================ * */ 1830b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid getString_OMX_State (char *ptrString, OMX_STATETYPE state) 1831b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 1832b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin switch (state) { 1833b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateInvalid: 1834b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateInvalid\0"); 1835b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1836b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateLoaded: 1837b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateLoaded\0"); 1838b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1839b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateIdle: 1840b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateIdle\0"); 1841b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1842b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateExecuting: 1843b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateExecuting\0"); 1844b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1845b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StatePause: 1846b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StatePause\0"); 1847b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1848b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateWaitForResources: 1849b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateWaitForResources\0"); 1850b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1851b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin case OMX_StateMax: 1852b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "OMX_StateMax\0"); 1853b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1854b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin default: 1855b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin strcpy (ptrString, "Unknown state\0"); 1856b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin break; 1857b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 1858b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 1859b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin return; 1860b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 1861