summaryrefslogtreecommitdiffstats
path: root/domx/test/sample_proxy/test_sample_proxy.c
diff options
context:
space:
mode:
Diffstat (limited to 'domx/test/sample_proxy/test_sample_proxy.c')
-rwxr-xr-xdomx/test/sample_proxy/test_sample_proxy.c1222
1 files changed, 0 insertions, 1222 deletions
diff --git a/domx/test/sample_proxy/test_sample_proxy.c b/domx/test/sample_proxy/test_sample_proxy.c
deleted file mode 100755
index 59830a9..0000000
--- a/domx/test/sample_proxy/test_sample_proxy.c
+++ /dev/null
@@ -1,1222 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#define COMPONENT_NAME "OMX.TI.DUCATI1.MISC.SAMPLE" // needs to be specific for every configuration wrapper
-#define OMX_SAMPLE_USEBUF OMX_TRUE
-
-/****************************************************************
-* INCLUDE FILES
-****************************************************************/
-/* ----- system and platform files ----------------------------*/
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-
-/*-------program files ----------------------------------------*/
-#include <OMX_Core.h>
-#include <OMX_Component.h>
-#include "timm_osal_interfaces.h"
-
-
-#define OMX_SAMPLE_TILER_TEST
-
-#ifdef OMX_SAMPLE_TILER_TEST
-
-#include "memmgr.h"
-
-#endif
-
-
-#define OMX_SAMPLE_INPUT_PORT 0
-#define OMX_SAMPLE_OUTPUT_PORT 1
-
-#ifdef OMX_SAMPLE_TILER_TEST
-
-
-#define OMX_SAMPLE_IN_2DYHEIGHT 4
-#define OMX_SAMPLE_IN_2DYWIDTH 8
-#define OMX_SAMPLE_IN_2DUVHEIGHT 2
-#define OMX_SAMPLE_IN_2DUVWIDTH 4
-/*
- #define STRIDE_8BIT (16 * 1024)
- #define STRIDE_16BIT (32 * 1024)
-*/
-#define OMX_SAMPLE_IN_HEIGHT 6
-#define OMX_SAMPLE_IN_WIDTH 8
-
-#define STRIDE_LINUX (4 * 1024)
-
-#define OMX_SAMPLE_BUFFER_SIZE 48
-
-
-void Test_Util_Memcpy_1Dto2D(TIMM_OSAL_PTR pDst2D, TIMM_OSAL_PTR pSrc1D,
- TIMM_OSAL_U32 nSize1D, TIMM_OSAL_U32 nHeight2D, TIMM_OSAL_U32 nWidth2D,
- TIMM_OSAL_U32 nStride2D)
-{
- TIMM_OSAL_U8 *pInBuffer;
- TIMM_OSAL_U8 *pOutBuffer;
- TIMM_OSAL_U32 nSizeLeft, i;
-
- nSizeLeft = nSize1D;
- pInBuffer = (TIMM_OSAL_U8 *) pSrc1D;
- pOutBuffer = (TIMM_OSAL_U8 *) pDst2D;
- //The lower limit is copied. If nSize1D < H*W then 1Dsize is copied else H*W is copied
- for (i = 0; i < nHeight2D; i++)
- {
- if (nSizeLeft >= nWidth2D)
- {
- TIMM_OSAL_Memcpy(pOutBuffer, pInBuffer, nWidth2D);
- } else
- {
- TIMM_OSAL_Memcpy(pOutBuffer, pInBuffer, nSizeLeft);
- break;
- }
- nSizeLeft -= nWidth2D;
- pInBuffer =
- (TIMM_OSAL_U8 *) ((TIMM_OSAL_U32) pInBuffer + nWidth2D);
- pOutBuffer =
- (TIMM_OSAL_U8 *) ((TIMM_OSAL_U32) pOutBuffer + nStride2D);
- }
-}
-
-#endif
-
-
-/****************************************************************
-* EXTERNAL REFERENCES NOTE : only use if not found in header file
-****************************************************************/
-/*--------data declarations -----------------------------------*/
-/*--------function prototypes ---------------------------------*/
-
-/****************************************************************
-* PRIVATE DECLARATIONS Defined and used only here
-****************************************************************/
-/*--------function declarations -------------------------------*/
-
-/*--------data declarations -----------------------------------*/
-#define NUM_DOMAINS 0x4
-#define OMX_NOPORT 0xfffffffe
-
-//#define INPUT_FILE "../../omx/omx_il_1_x/omx_base/test/patterns/chikita.mp3"
-#define INPUT_FILE "sample_input.mp3"
-#define NON_TUN_OUTPUT_FILE "nt_output.mp3"
-
-static int gTest = 1;
-
-#define TIMM_OSAL_MallocaBuffer(_size, bContigous, nBlockAlignment) \
- TIMM_OSAL_Malloc (_size, TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_EXT)
-
-#define OMX_TEST_BUFFERS_OF_TRAFFIC 20
-
-#define OMX_TEST_BAIL_IF_ERROR(_eError) \
- if(OMX_ErrorNone != (eError = _eError)){ \
- goto OMX_TEST_BAIL; \
- }
-
-#define OMX_TEST_SET_ERROR_BAIL(_eCode, _desc) \
-{ \
- eError = _eCode; \
- printf(_desc);\
- goto OMX_TEST_BAIL; \
-}
-
-#define OMX_TEST_INIT_STRUCT(_s_, _name_) \
- memset(&(_s_), 0x0, sizeof(_name_)); \
- (_s_).nSize = sizeof(_name_); \
- (_s_).nVersion.s.nVersionMajor = 0x1; \
- (_s_).nVersion.s.nVersionMinor = 0x1; \
- (_s_).nVersion.s.nRevision = 0x0; \
- (_s_).nVersion.s.nStep = 0x0
-
-#define BUFFER_LIST_CLEAR_ENTRY(_pL, _pB)\
- _pB = _pL->pBufHdr; \
- _pL->pBufHdr = NULL; \
- _pL = _pL->pNextBuf;
-
-#define BUFFER_LIST_SET_ENTRY(_pL, _pB) \
-{ \
- BufferList *_pT = _pL; \
- while(_pT && _pT->pBufHdr){ \
- _pT = _pT->pNextBuf; \
- } \
- if(_pT) \
- _pT->pBufHdr = _pB; \
-}
-
-#define BUFFERLIST_CLEAR_ENTRY(_pL, _pB)\
- _pB = _pL->pBufHdr; \
- _pL->pBufHdr = NULL; \
- _pL = _pL->pNextBuf;
-
-typedef struct _BufferList BufferList;
-
-struct _BufferList
-{
- OMX_BUFFERHEADERTYPE *pBufHdr;
- OMX_BUFFERHEADERTYPE *pOrigBufHdr;
- BufferList *pNextBuf;
-};
-
-typedef struct SampleCompTestCtxt
-{
- OMX_HANDLETYPE hComp;
- OMX_STATETYPE eState;
- OMX_U32 nPorts;
- OMX_HANDLETYPE hStateSetEvent;
- OMX_HANDLETYPE hPortDisableEvent;
- OMX_HANDLETYPE hPortEnableEvent;
- OMX_STRING inFilePath;
- OMX_STRING outFilePath;
- FILE *pOutputFile;
- FILE *pInputfile;
- OMX_BOOL bEOS;
- BufferList *pInBufferList;
- BufferList *pOutBufferList;
- OMX_BOOL bClientAllocBuf;
- OMX_U32 nBufDoneCalls;
- OMX_PORT_PARAM_TYPE sPortParam[NUM_DOMAINS];
-} SampleCompTestCtxt;
-
-//this test compiles only for ducati SYS
-typedef struct TestCtxt
-{
- OMX_HANDLETYPE hComp;
- OMX_STATETYPE eState;
- OMX_U32 nPorts;
- OMX_HANDLETYPE hStateSetEvent;
- OMX_HANDLETYPE hPortDisableEvent;
- OMX_HANDLETYPE hPortEnableEvent;
- OMX_STRING inFilePath;
- OMX_STRING outFilePath;
- FILE *pOutputFile;
- FILE *pInputfile;
- OMX_BOOL bEOS;
- BufferList *pInBufferList;
- BufferList *pOutBufferList;
- OMX_BOOL bClientAllocBuf;
- OMX_U32 nBufDoneCalls;
- //OMX_PORT_PARAM_TYPE sPortParam[NUM_DOMAINS];
-} TestCtxt;
-
-
-static OMX_U32 nInBufCount = 0;
-static OMX_U32 nOutBufCount = 0;
-
-
-//Semaphore_Handle EBDSem;
-//Semaphore_Params EBDsemParams;
-
-//Semaphore_Handle FBDSem;
-//Semaphore_Params FBDsemParams;
-/*========================================================*/
-/* @ fn OMX_TEST_ErrorToString :: ERROR to STRING */
-/*========================================================*/
-OMX_STRING OMX_TEST_ErrorToString(OMX_ERRORTYPE eError)
-{
-
- OMX_STRING errorString;
-
- switch (eError)
- {
-
- case OMX_ErrorNone:
- errorString = "ErrorNone";
- break;
- case OMX_ErrorInsufficientResources:
- errorString = "ErrorInsufficientResources";
- break;
- case OMX_ErrorUndefined:
- errorString = "ErrorUndefined";
- break;
- case OMX_ErrorInvalidComponentName:
- errorString = "ErrorInvalidComponentName";
- break;
- case OMX_ErrorComponentNotFound:
- errorString = "ErrorComponentNotFound";
- break;
- case OMX_ErrorInvalidComponent:
- errorString = "ErrorInvalidComponent";
- break;
- case OMX_ErrorBadParameter:
- errorString = "ErrorBadParameter";
- break;
- case OMX_ErrorNotImplemented:
- errorString = "ErrorNotImplemented";
- break;
- case OMX_ErrorUnderflow:
- errorString = "ErrorUnderflow";
- break;
- case OMX_ErrorOverflow:
- errorString = "ErrorOverflow";
- break;
- case OMX_ErrorHardware:
- errorString = "ErrorHardware";
- break;
- case OMX_ErrorInvalidState:
- errorString = "ErrorInvalidState";
- break;
- case OMX_ErrorStreamCorrupt:
- errorString = "ErrorStreamCorrupt";
- break;
- case OMX_ErrorPortsNotCompatible:
- errorString = "ErrorPortsNotCompatible";
- break;
- case OMX_ErrorResourcesLost:
- errorString = "ErrorResourcesLost";
- break;
- case OMX_ErrorNoMore:
- errorString = "ErrorNoMore";
- break;
- case OMX_ErrorVersionMismatch:
- errorString = "ErrorVersionMismatch";
- break;
- case OMX_ErrorNotReady:
- errorString = "ErrorNotReady";
- break;
- case OMX_ErrorTimeout:
- errorString = "ErrorTimeout";
- break;
- case OMX_ErrorSameState:
- errorString = "ErrorSameState";
- break;
- case OMX_ErrorResourcesPreempted:
- errorString = "ErrorResourcesPreempted";
- break;
- case OMX_ErrorPortUnresponsiveDuringAllocation:
- errorString = "ErrorPortUnresponsiveDuringAllocation";
- break;
- case OMX_ErrorPortUnresponsiveDuringDeallocation:
- errorString = "ErrorPortUnresponsiveDuringDeallocation";
- break;
- case OMX_ErrorPortUnresponsiveDuringStop:
- errorString = "ErrorPortUnresponsiveDuringStop";
- break;
- case OMX_ErrorIncorrectStateTransition:
- errorString = "ErrorIncorrectStateTransition";
- break;
- case OMX_ErrorIncorrectStateOperation:
- errorString = "ErrorIncorrectStateOperation";
- break;
- case OMX_ErrorUnsupportedSetting:
- errorString = "ErrorUnsupportedSetting";
- break;
- case OMX_ErrorUnsupportedIndex:
- errorString = "ErrorUnsupportedIndex";
- break;
- case OMX_ErrorBadPortIndex:
- errorString = "ErrorBadPortIndex";
- break;
- case OMX_ErrorPortUnpopulated:
- errorString = "ErrorPortUnpopulated";
- break;
- case OMX_ErrorComponentSuspended:
- errorString = "ErrorComponentSuspended";
- break;
- case OMX_ErrorDynamicResourcesUnavailable:
- errorString = "ErrorDynamicResourcesUnavailable";
- break;
- case OMX_ErrorMbErrorsInFrame:
- errorString = "ErrorMbErrorsInFrame";
- break;
- case OMX_ErrorFormatNotDetected:
- errorString = "ErrorFormatNotDetected";
- break;
- case OMX_ErrorContentPipeOpenFailed:
- errorString = "ErrorContentPipeOpenFailed";
- break;
- case OMX_ErrorContentPipeCreationFailed:
- errorString = "ErrorContentPipeCreationFailed";
- break;
- case OMX_ErrorSeperateTablesUsed:
- errorString = "ErrorSeperateTablesUsed";
- break;
- case OMX_ErrorTunnelingUnsupported:
- errorString = "ErrorTunnelingUnsupported";
- break;
- default:
- errorString = "<unknown>";
- break;
- }
- return errorString;
-}
-
-/*========================================================*/
-/* @ fn OMX_TEST_StateToString :: STATE to STRING */
-/*========================================================*/
-OMX_STRING OMX_TEST_StateToString(OMX_STATETYPE eState)
-{
- OMX_STRING StateString;
-
- switch (eState)
- {
- case OMX_StateInvalid:
- StateString = "Invalid";
- break;
- case OMX_StateLoaded:
- StateString = "Loaded";
- break;
- case OMX_StateIdle:
- StateString = "Idle";
- break;
- case OMX_StateExecuting:
- StateString = "Executing";
- break;
- case OMX_StatePause:
- StateString = "Pause";
- break;
- case OMX_StateWaitForResources:
- StateString = "WaitForResources ";
- break;
- default:
- StateString = "<unknown>";
- break;
- }
-
- return StateString;
-}
-
-/* Application callback Functions */
-/*========================================================*/
-/* @ fn SampleTest_EventHandler :: Application callback */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_EventHandler(OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_EVENTTYPE eEvent,
- OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2, OMX_IN OMX_PTR pEventData)
-{
- SampleCompTestCtxt *pContext;
-
- printf("\n___________ ENTERED CLIENT CALLBACK:%s", __FUNCTION__);
-
- if (pAppData == NULL)
- return OMX_ErrorNone;
-
- pContext = (SampleCompTestCtxt *) pAppData;
-
- switch (eEvent)
- {
- case OMX_EventCmdComplete:
- printf("\n OMX_EventCmdComplete case: \n");
- if (OMX_CommandStateSet == nData1)
- {
- printf(" Component Transitioned to %s state \n",
- OMX_TEST_StateToString((OMX_STATETYPE) nData2));
- pContext->eState = (OMX_STATETYPE) nData2;
- TIMM_OSAL_SemaphoreRelease(pContext->hStateSetEvent);
- } else if (OMX_CommandFlush == nData1)
- {
- /* Nothing to do over here */
- } else if (OMX_CommandPortDisable == nData1)
- {
- /* Nothing to do over here */
- TIMM_OSAL_SemaphoreRelease(pContext->
- hPortDisableEvent);
- } else if (OMX_CommandPortEnable == nData1)
- {
- /* Nothing to do over here */
- } else if (OMX_CommandMarkBuffer == nData1)
- {
- /* Nothing to do over here */
- }
- break;
-
- case OMX_EventError:
- printf("\nOMX EVENT ERROR!!!!!! \n");
- break;
-
- case OMX_EventMark:
- break;
-
- case OMX_EventPortSettingsChanged:
- break;
-
- case OMX_EventBufferFlag:
- break;
-
- case OMX_EventResourcesAcquired:
- break;
-
- case OMX_EventComponentResumed:
- break;
-
- case OMX_EventDynamicResourcesAvailable:
- break;
-
- case OMX_EventPortFormatDetected:
- break;
-
- default:
- break;
- }
-
- goto OMX_TEST_BAIL;
- OMX_TEST_BAIL:
- return OMX_ErrorNone;
-}
-
-/*========================================================*/
-/* @ fn SampleTest_EmptyBufferDone :: Application callback */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_EmptyBufferDone(OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_PTR pAppData, OMX_IN OMX_BUFFERHEADERTYPE * pBuffer)
-{
- SampleCompTestCtxt *pContext;
-
- printf("\n___________ ENTERED CLIENT CALLBACK:%s", __FUNCTION__);
-
- if (pAppData == NULL)
- return OMX_ErrorNone;
-
- pContext = (SampleCompTestCtxt *) pAppData;
- pContext->nBufDoneCalls++;
-
- BUFFER_LIST_SET_ENTRY(pContext->pInBufferList, pBuffer);
- //Semaphore_post(EBDSem);
-
- goto OMX_TEST_BAIL;
- OMX_TEST_BAIL:
- printf("\nEBD done\n");
- return OMX_ErrorNone;
-}
-
-/*========================================================*/
-/* @ fn SampleTest_FillBufferDone :: Application callback */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_FillBufferDone(OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_PTR pAppData, OMX_IN OMX_BUFFERHEADERTYPE * pBuffHeader)
-{
- SampleCompTestCtxt *pContext;
-
- printf("\n___________ ENTERED CLIENT CALLBACK:%s", __FUNCTION__);
-
- if (pAppData == NULL)
- return OMX_ErrorNone;
-
- pContext = (SampleCompTestCtxt *) pAppData;
- pContext->nBufDoneCalls++;
-
- if (pContext->pOutputFile && gTest)
- {
- printf(" writing to output file :: buffer cnt : %d\n",
- nOutBufCount);
- nOutBufCount++;
- fwrite(pBuffHeader->pBuffer, 1, pBuffHeader->nFilledLen,
- pContext->pOutputFile);
- }
-
- BUFFER_LIST_SET_ENTRY(pContext->pOutBufferList, pBuffHeader);
- //Semaphore_post(FBDSem);
-
- goto OMX_TEST_BAIL;
- OMX_TEST_BAIL:
- printf("\nFBD done\n");
- return OMX_ErrorNone;
-}
-
-
-static void SampleTest_ReadInputFile(SampleCompTestCtxt * pContext,
- OMX_PTR pData, OMX_U32 nBytes, FILE * fp)
-{
- OMX_U32 nReadSize = 0;
-
- printf("\nIn read i/p file\n");
- if (pData == NULL)
- printf("\npData is NULL\n");
- else
- printf("\npData = %x\n", pData);
- printf("\nnBytes = %d\n", nBytes);
- if (fp == NULL)
- printf("\nfp is NULL\n");
- else
- printf("\nfp = %x\n", fp);
- nReadSize = fread(pData, 1, nBytes, fp);
- if (nReadSize != nBytes)
- {
- pContext->bEOS = OMX_TRUE;
- }
-
- printf(" Reading from file :: Buffer cont : %d \n", nInBufCount);
- nInBufCount++;
-}
-
-/*========================================================*/
-/* @ fn SampleTest_WriteInBuffers :: Reads a buffer from a file and send to Comp */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_WriteInBuffers(SampleCompTestCtxt * pContext)
-{
-
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- BufferList *pList;
- OMX_BUFFERHEADERTYPE *pBufHeader;
-#ifdef OMX_SAMPLE_TILER_TEST
- OMX_U8 *pTmpBuffer = NULL, *pOrigTmpBuffer = NULL;
-#endif
- pList = pContext->pInBufferList;
- while (pList && pList->pBufHdr)
- {
- BUFFERLIST_CLEAR_ENTRY(pList, pBufHeader);
- printf("\nAbout to read from input file\n");
-#if defined(OMX_SAMPLE_TILER_TEST)
-
- //OMX_SAMPLE_BUFFER_SIZE is the total amt of data to be sent in the buffer
- pTmpBuffer =
- TIMM_OSAL_Malloc(OMX_SAMPLE_BUFFER_SIZE, 0, 0, 0);
- if (pTmpBuffer == NULL)
- OMX_TEST_SET_ERROR_BAIL
- (OMX_ErrorInsufficientResources,
- "malloc failed \n");
- pOrigTmpBuffer = pTmpBuffer;
-
- SampleTest_ReadInputFile(pContext, pTmpBuffer,
- OMX_SAMPLE_BUFFER_SIZE, pContext->pInputfile);
-
- Test_Util_Memcpy_1Dto2D(pBufHeader->pBuffer, pTmpBuffer,
- OMX_SAMPLE_BUFFER_SIZE, OMX_SAMPLE_IN_HEIGHT,
- OMX_SAMPLE_IN_WIDTH, STRIDE_LINUX);
- pBufHeader->nFilledLen = OMX_SAMPLE_BUFFER_SIZE;
-
- printf("\nBefore ETB pBufHeader->nInputPortIndex = %d\n",
- pBufHeader->nInputPortIndex);
-
- TIMM_OSAL_Free(pOrigTmpBuffer);
-
-#else
- SampleTest_ReadInputFile(pContext, pBufHeader->pBuffer,
- pBufHeader->nAllocLen, pContext->pInputfile);
- pBufHeader->nFilledLen = pBufHeader->nAllocLen;
-
-#endif
- if (pContext->bEOS == OMX_TRUE)
- {
- pBufHeader->nFlags |= OMX_BUFFERFLAG_EOS;
- }
-
- eError = OMX_EmptyThisBuffer(pContext->hComp, pBufHeader);
-
- OMX_TEST_BAIL_IF_ERROR(eError);
- }
-
- OMX_TEST_BAIL:
- return eError;
-
-}
-
-/*========================================================*/
-/* @ fn SampleTest_ReadOutBuffers :: Send out buffers */
-/*========================================================*/
-
-OMX_ERRORTYPE SampleTest_ReadOutBuffers(SampleCompTestCtxt * pContext)
-{
-
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- BufferList *pList;
- OMX_BUFFERHEADERTYPE *pBufHeader;
-
- pList = pContext->pOutBufferList;
- while (pList && pList->pBufHdr)
- {
- printf("\nAbout to do FTB\n");
-
- BUFFERLIST_CLEAR_ENTRY(pList, pBufHeader);
-
- eError = OMX_FillThisBuffer(pContext->hComp, pBufHeader);
-
- OMX_TEST_BAIL_IF_ERROR(eError);
- if (pBufHeader->nFlags == OMX_BUFFERFLAG_EOS)
- {
- pContext->nBufDoneCalls = OMX_TEST_BUFFERS_OF_TRAFFIC;
- }
- }
-
- OMX_TEST_BAIL:
- return eError;
-
-}
-
-
-
-/*========================================================*/
-/* @ fn SampleTest_AllocateBuffers :: Allocates the Resources on the available ports */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_AllocateBuffers(SampleCompTestCtxt * pContext,
- OMX_PARAM_PORTDEFINITIONTYPE * pPortDef)
-{
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_U8 *pBuffer = NULL;
- BufferList *pBufferList;
- BufferList *pTemp;
- OMX_BUFFERHEADERTYPE *pBufferHdr;
- OMX_U32 i = 100;
- OMX_COMPONENTTYPE *pComp;
-
-#ifdef OMX_SAMPLE_TILER_TEST
- MemAllocBlock *pBlock = NULL;
- OMX_U32 nNumBlocks = 1;
-
-/*For i/p port allocate 2D packed buffer, for o/p port allocate 1D buffer.
-Ideally client should get this from GetParams but this is just a sample test so
-values are hardcoded*/
-
- if (pPortDef->nPortIndex == OMX_SAMPLE_INPUT_PORT)
- {
- nNumBlocks = 2;
- pBlock =
- TIMM_OSAL_Malloc(sizeof(MemAllocBlock) * nNumBlocks, 0, 0,
- 0);
- TIMM_OSAL_Memset(pBlock, 0, sizeof(MemAllocBlock) * nNumBlocks);
- pBlock[0].dim.area.width = OMX_SAMPLE_IN_2DYWIDTH;
- pBlock[0].dim.area.height = OMX_SAMPLE_IN_2DYHEIGHT;
- pBlock[0].pixelFormat = PIXEL_FMT_8BIT;
- pBlock[1].dim.area.width = OMX_SAMPLE_IN_2DUVWIDTH;
- pBlock[1].dim.area.height = OMX_SAMPLE_IN_2DUVHEIGHT;
- pBlock[1].pixelFormat = PIXEL_FMT_16BIT;
- } else
- {
- nNumBlocks = 1;
- pBlock =
- TIMM_OSAL_Malloc(sizeof(MemAllocBlock) * nNumBlocks, 0, 0,
- 0);
- TIMM_OSAL_Memset(pBlock, 0, sizeof(MemAllocBlock) * nNumBlocks);
- pBlock[0].dim.len = OMX_SAMPLE_BUFFER_SIZE;
- pBlock[0].pixelFormat = PIXEL_FMT_PAGE;
- }
-#endif
-
- for (i = 0; i < pPortDef->nBufferCountActual; i++)
- {
- pBufferList =
- (BufferList *) TIMM_OSAL_Malloc(sizeof(BufferList),
- TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_INT);
- if (!pBufferList)
- {
- OMX_TEST_SET_ERROR_BAIL
- (OMX_ErrorInsufficientResources,
- "malloc failed \n");
- }
-
- if (pContext->bClientAllocBuf)
- {
-
-#ifdef OMX_SAMPLE_TILER_TEST
-/*For i/p port allocate 2D packed buffer, for o/p port allocate 1D buffer.
-Ideally client should get this from GetParams but this is just a sample test so
-values are hardcoded*/
- pBuffer = MemMgr_Alloc(pBlock, nNumBlocks);
- printf("\nMemMgr allocated buffer = 0x%x\n", pBuffer);
-#else
- pBuffer =
- (OMX_U8 *) TIMM_OSAL_MallocaBuffer(pPortDef->
- nBufferSize, pPortDef->bBuffersContiguous,
- pPortDef->nBufferAlignment);
-
-#endif
-
- if (!pBufferList)
- {
- OMX_TEST_SET_ERROR_BAIL
- (OMX_ErrorInsufficientResources,
- "malloc failed \n");
- }
-
- printf("\nCalling UseBuf on port %d\n",
- pPortDef->nPortIndex);
- eError =
- OMX_UseBuffer(pContext->hComp, &pBufferHdr,
- pPortDef->nPortIndex, 0, pPortDef->nBufferSize,
- pBuffer);
-
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- } else
- {
-
- pComp = (OMX_COMPONENTTYPE *) pContext->hComp;
- printf("\nCalling allocate buffer\n");
- eError =
- OMX_AllocateBuffer(pContext->hComp, &pBufferHdr,
- pPortDef->nPortIndex, 0, pPortDef->nBufferSize);
-
- OMX_TEST_BAIL_IF_ERROR(eError);
- }
- printf("\npBufferHdr->nOutputPortIndex = %d\n",
- pBufferHdr->nOutputPortIndex);
- printf("\npBufferHdr->nInputPortIndex = %d\n",
- pBufferHdr->nInputPortIndex);
- pBufferList->pNextBuf = NULL;
- pBufferList->pBufHdr = pBufferHdr;
- pBufferList->pOrigBufHdr = pBufferHdr;
-
- if (pPortDef->eDir == OMX_DirInput)
- {
- printf("\npBufferHdr->nOutputPortIndex = %d\n",
- pBufferHdr->nOutputPortIndex);
- printf("\npBufferHdr->nInputPortIndex = %d\n",
- pBufferHdr->nInputPortIndex);
- pBufferHdr->nOutputPortIndex = OMX_NOPORT;
- if (pContext->pInBufferList == NULL)
- {
- pContext->pInBufferList = pBufferList;
- } else
- {
- pTemp = pContext->pInBufferList;
- while (pTemp->pNextBuf)
- pTemp = pTemp->pNextBuf;
- pTemp->pNextBuf = pBufferList;
- }
- } else
- {
- pBufferHdr->nInputPortIndex = OMX_NOPORT;
- printf("\npBufferHdr->nOutputPortIndex = %d\n",
- pBufferHdr->nOutputPortIndex);
- printf("\npBufferHdr->nInputPortIndex = %d\n",
- pBufferHdr->nInputPortIndex);
- if (pContext->pOutBufferList == NULL)
- {
- pContext->pOutBufferList = pBufferList;
- } else
- {
- pTemp = pContext->pOutBufferList;
- while (pTemp->pNextBuf)
- pTemp = pTemp->pNextBuf;
- pTemp->pNextBuf = pBufferList;
- }
- }
- }
-
- OMX_TEST_BAIL:
-#ifdef OMX_SAMPLE_TILER_TEST
- if (pBlock != NULL)
- TIMM_OSAL_Free(pBlock);
-#endif
- if (eError != OMX_ErrorNone)
- {
- if (pBufferList)
- {
- TIMM_OSAL_Free(pBufferList);
- }
- }
-
- return eError;
-}
-
-/*========================================================*/
-/* @ fn SampleTest_DeInitBuffers :: Destroy the resources */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_DeInitBuffers(SampleCompTestCtxt * pContext)
-{
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_U8 *pBuffer;
- BufferList *pBufferList;
- BufferList *pTemp;
-
- OMX_U32 nRetVal = 0;
-
- pTemp = pContext->pInBufferList;
-
- while (pTemp)
- {
- pBufferList = (BufferList *) pTemp;
- pBuffer = (OMX_U8 *) pTemp->pOrigBufHdr->pBuffer;
-
- printf("\nCalling Free Buffer on port no. %d\n",
- pTemp->pOrigBufHdr->nInputPortIndex);
-
- eError =
- OMX_FreeBuffer(pContext->hComp,
- pTemp->pOrigBufHdr->nInputPortIndex, pTemp->pOrigBufHdr);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- if (pContext->bClientAllocBuf)
- {
-
-#ifdef OMX_SAMPLE_TILER_TEST
- nRetVal = MemMgr_Free(pBuffer);
- if (nRetVal)
- {
- printf("\nError in MemMgr free\n");
- }
-#else
- TIMM_OSAL_Free(pBuffer);
-#endif
- }
-
- pTemp = pTemp->pNextBuf;
- if (pBufferList)
- TIMM_OSAL_Free(pBufferList);
- }
-
- pContext->pInBufferList = NULL;
-
- pTemp = pContext->pOutBufferList;
- while (pTemp)
- {
- pBufferList = (BufferList *) pTemp;
- pBuffer = (OMX_U8 *) pTemp->pOrigBufHdr->pBuffer;
- printf("\nCalling Free Buffer on port no. %d\n",
- pTemp->pOrigBufHdr->nOutputPortIndex);
-
- eError =
- OMX_FreeBuffer(pContext->hComp,
- pTemp->pOrigBufHdr->nOutputPortIndex, pTemp->pOrigBufHdr);
- OMX_TEST_BAIL_IF_ERROR(eError);
- if (pContext->bClientAllocBuf)
- {
-#ifdef OMX_SAMPLE_TILER_TEST
- nRetVal = MemMgr_Free(pBuffer);
- if (nRetVal)
- {
- printf("\nError in MemMgr free\n");
- }
-#else
- TIMM_OSAL_Free(pBuffer);
-#endif
- }
-
- pTemp = pTemp->pNextBuf;
- if (pBufferList)
- TIMM_OSAL_Free(pBufferList);
-
- }
-
- pContext->pOutBufferList = NULL;
-
- OMX_TEST_BAIL:
- return eError;
-}
-
-/*========================================================*/
-/* @ fn SampleTest_TransitionWait :: Waits for the transition to be completed ,
- * incase of loaded to idle Allocates the Resources and while idle to loaded
- * destroys the resources */
-/*========================================================*/
-OMX_ERRORTYPE SampleTest_TransitionWait(OMX_STATETYPE eToState,
- SampleCompTestCtxt * pContext)
-{
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_PARAM_PORTDEFINITIONTYPE tPortDef;
- OMX_U32 i, j;
-
- eError = OMX_SendCommand(pContext->hComp, OMX_CommandStateSet,
- eToState, NULL);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- if ((eToState == OMX_StateIdle) &&
- (pContext->eState == OMX_StateLoaded))
- {
- for (i = 0; i < NUM_DOMAINS; i++)
- {
- for (j = pContext->sPortParam[i].nStartPortNumber;
- j < pContext->sPortParam[i].nStartPortNumber
- + pContext->sPortParam[i].nPorts; j++)
- {
-
- OMX_TEST_INIT_STRUCT(tPortDef,
- OMX_PARAM_PORTDEFINITIONTYPE);
- tPortDef.nPortIndex = j;
-//printf("\nCalling GetParam before UseBuf on port %d\n",j);
- eError = OMX_GetParameter(pContext->hComp,
- OMX_IndexParamPortDefinition,
- (OMX_PTR) & tPortDef);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
-// if(tPortDef.bEnabled)//AD
- eError =
- SampleTest_AllocateBuffers(pContext,
- &tPortDef);
-
- OMX_TEST_BAIL_IF_ERROR(eError);
- }
- }
- } else if ((eToState == OMX_StateLoaded) &&
- (pContext->eState == OMX_StateIdle))
- {
-
- eError = SampleTest_DeInitBuffers(pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- }
- printf("\nWaiting for state set event\n");
- TIMM_OSAL_SemaphoreObtain(pContext->hStateSetEvent,
- TIMM_OSAL_SUSPEND);
- printf("\nState set event recd.\n");
-
- if (pContext->eState != eToState)
- OMX_TEST_SET_ERROR_BAIL(OMX_ErrorUndefined,
- " InComplete Transition \n");
-
- OMX_TEST_BAIL:
- return eError;
-}
-
-
-/*========================================================*/
-/* @ fn OMX_Sample_UT0001 :: Initializes, move to Idle and then to executing, process
-* buffers and then destroy the component by moving back to idle, loaded, invalid */
-/*========================================================*/
-void main(void)
-{
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_HANDLETYPE hComp = NULL;
- OMX_CALLBACKTYPE oCallbacks;
- SampleCompTestCtxt *pContext;
- SampleCompTestCtxt oAppData;
-
- int ch1, ch2;
- int pass;
- int while_pass = 0, loc_diff = 0;
-
-
- pContext = &oAppData;
- printf(" Entering : %s \n", __FUNCTION__);
- memset(pContext, 0x0, sizeof(SampleCompTestCtxt));
-
- oCallbacks.EventHandler = SampleTest_EventHandler;
- oCallbacks.EmptyBufferDone = SampleTest_EmptyBufferDone;
- oCallbacks.FillBufferDone = SampleTest_FillBufferDone;
- printf("\nCalling sem create\n");
- /* Initialize Events to Track callbacks */
- TIMM_OSAL_SemaphoreCreate(&pContext->hStateSetEvent, 0);
- TIMM_OSAL_SemaphoreCreate(&pContext->hPortDisableEvent, 0);
- //TIMM_OSAL_MutexObtain(pContext->hStateSetEvent, TIMM_OSAL_SUSPEND);
- printf("\nSem created\n");
-
-
- pContext->pInputfile = fopen(INPUT_FILE, "rb");
- if (NULL == pContext->pInputfile)
- {
- eError = OMX_ErrorInsufficientResources;
- //goto OMX_TEST_BAIL;
- }
- printf("\nInput file opened\n");
- pContext->pOutputFile = fopen(NON_TUN_OUTPUT_FILE, "wb");
- if (NULL == pContext->pOutputFile)
- {
- eError = OMX_ErrorInsufficientResources;
- //goto OMX_TEST_BAIL;
- }
-
-
- /* Initialize OpenMAX */
- printf("\nInitialize OpenMAX\n");
- eError = OMX_Init();
- OMX_TEST_BAIL_IF_ERROR(eError);
- /* Load a component */
- printf("\nLoad a component\n");
- eError =
- OMX_GetHandle(&hComp, (OMX_STRING) "OMX.TI.DUCATI1.MISC.SAMPLE",
- pContext, &oCallbacks);
- OMX_TEST_BAIL_IF_ERROR(eError);
- pContext->hComp = hComp;
-printf ("\neError = 0x%x\n", eError);
-if(hComp)
- printf("\nhComp = 0x%x\n", hComp);
- /* Verify that the component is in Loaded state */
- printf("\nVerify that the component is in Loaded state\n");
-
- eError = OMX_GetState(pContext->hComp, &pContext->eState);
- OMX_TEST_BAIL_IF_ERROR(eError);
- if (OMX_StateLoaded != pContext->eState)
- {
- OMX_TEST_SET_ERROR_BAIL(OMX_ErrorUndefined,
- "not in loaded state \n");
- }
-
- /* detect all Audio ports on the component */
- OMX_TEST_INIT_STRUCT(pContext->sPortParam[0], OMX_PORT_PARAM_TYPE);
- eError = OMX_GetParameter(hComp, OMX_IndexParamAudioInit,
- (OMX_PTR) & pContext->sPortParam[0]);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- /* detect all video ports on the component */
- OMX_TEST_INIT_STRUCT(pContext->sPortParam[1], OMX_PORT_PARAM_TYPE);
- eError = OMX_GetParameter(hComp, OMX_IndexParamVideoInit,
- (OMX_PTR) & pContext->sPortParam[1]);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- /* detect all image ports on the component */
- OMX_TEST_INIT_STRUCT(pContext->sPortParam[2], OMX_PORT_PARAM_TYPE);
- eError = OMX_GetParameter(hComp, OMX_IndexParamImageInit,
- (OMX_PTR) & pContext->sPortParam[2]);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- /* detect all other ports on the component */
- OMX_TEST_INIT_STRUCT(pContext->sPortParam[3], OMX_PORT_PARAM_TYPE);
- eError = OMX_GetParameter(hComp, OMX_IndexParamOtherInit,
- (OMX_PTR) & pContext->sPortParam[3]);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- pContext->nPorts = pContext->sPortParam[0].nPorts +
- pContext->sPortParam[1].nPorts +
- pContext->sPortParam[2].nPorts + pContext->sPortParam[3].nPorts;
-
-
- pContext->bClientAllocBuf = OMX_SAMPLE_USEBUF;
- if (pContext->bClientAllocBuf == OMX_TRUE)
- {
- printf(" Client does Allocation of buffers \n");
- } else
- {
- printf(" Component does Allocation of buffers \n");
- }
-
- /* Transition to Idle state */
-
- eError = SampleTest_TransitionWait(OMX_StateIdle, pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
- /* Transition to Executing state */
- eError = SampleTest_TransitionWait(OMX_StateExecuting, pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
- printf("\nAbout to start processing buffers\n");
-
-
- /* process buffers */
-
- while (pContext->nBufDoneCalls < OMX_TEST_BUFFERS_OF_TRAFFIC)
- {
-
- eError = SampleTest_WriteInBuffers(pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- eError = SampleTest_ReadOutBuffers(pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
- while_pass++;
- //printf("\n WHILE PROCESS LOOP COUNT: BufDoneCount = %d %d",
- // while_pass, pContext->nBufDoneCalls);
-
- //printf("\n Waiting on Sample component to respond");
-
- }
-
-
- gTest = 0;
-
- /* Transition back to Idle state */
- eError = SampleTest_TransitionWait(OMX_StateIdle, pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
- /* Trasnition back to Loaded state */
- eError = SampleTest_TransitionWait(OMX_StateLoaded, pContext);
- OMX_TEST_BAIL_IF_ERROR(eError);
-
-
- OMX_TEST_BAIL:
-
- fclose(pContext->pInputfile);
- fclose(pContext->pOutputFile);
-
- if (eError == OMX_ErrorNone)
- {
- eError = OMX_FreeHandle(pContext->hComp);
- eError = OMX_Deinit();
- } else
- {
- SampleTest_TransitionWait(OMX_StateInvalid, pContext);
- SampleTest_DeInitBuffers(pContext);
-
- OMX_FreeHandle(pContext->hComp);
- OMX_Deinit();
- }
-
- TIMM_OSAL_SemaphoreDelete(pContext->hStateSetEvent);
- TIMM_OSAL_SemaphoreDelete(pContext->hPortDisableEvent);
-
- /* emit the Test Result */
- if (OMX_ErrorNone != eError)
- {
- printf(" TestCase Failed and returned an error:: %s \n",
- OMX_TEST_ErrorToString(eError));
- } else
- {
- printf
- ("\nTest case has ended, now comparing input and output files\n");
- pContext->pInputfile = fopen(INPUT_FILE, "rb");
- if (NULL == pContext->pInputfile)
- {
- printf("\n Error in opening INPUT_FILE");
- eError = OMX_ErrorInsufficientResources;
- }
-
- pContext->pOutputFile = fopen(NON_TUN_OUTPUT_FILE, "rb");
- if (NULL == pContext->pOutputFile)
- {
- printf("\n Error in opening NON_TUN_OUTPUT_FILE");
- eError = OMX_ErrorInsufficientResources;
- }
- pass = 1;
- while (1)
- {
- if (eError != OMX_ErrorNone)
- {
- pass = 0;
- break;
- }
- ch1 = fgetc(pContext->pInputfile);
- ch2 = fgetc(pContext->pOutputFile);
- loc_diff++;
- if (ch1 == EOF || ch2 == EOF)
- {
- break;
- }
- if (ch1 != ch2)
- {
- pass = 0;
- printf("\n \n");
- printf
- ("\n FILE SIZE = 320 KB - NUMBER OF ITERATIONS = 20 (10 for INPUT AND 10 FOR OUTPUT buffers\n");
- printf
- ("\n ################### LOCATION OF DIFFERENCE: %d ################### \n",
- loc_diff);
- break;
- }
- }
- fclose(pContext->pInputfile);
- fclose(pContext->pOutputFile);
- if (pass == 1)
- printf(" Test Case has Passed\n");
- else
- {
- printf("\nTest case has failed. (EOF not reached)\n");
- eError = OMX_ErrorUndefined;
- }
- }
-
- if (eError == OMX_ErrorNone)
- {
- printf(" Test Case has Passed :) \n");
- } else
- {
- printf("\nTest case has failed.(OMX Error)\n");
- }
-}
-