Lines Matching defs:pAppData
117 VIDENCTEST_HandleError(pAppData, _e_); \
383 MYDATATYPE* pAppData;
554 void VIDENCTEST_EventHandler(OMX_HANDLETYPE hComponent, MYDATATYPE* pAppData, OMX_EVENTTYPE eEvent, OMX_U32 nData1, OMX_U32 nData2, OMX_PTR pEventData)
561 pHandle= pAppData->pHandle;
562 pListHead = pAppData->pMemoryListHead;
567 pAppData->pEventArray[pAppData->nEventCount] = pEventPrivate;
568 pAppData->nEventCount++;
572 pEventPrivate->pAppData = pAppData;
578 write(pAppData->eventPipe[1], &pEventPrivate, sizeof(pEventPrivate));
595 void VIDENCTEST_FillBufferDone(OMX_HANDLETYPE hComponent, MYDATATYPE* pAppData, OMX_BUFFERHEADERTYPE* pBuffer)
599 write(pAppData->OpBuf_Pipe[1], &pBuffer, sizeof(pBuffer));
615 void VIDENCTEST_EmptyBufferDone(OMX_HANDLETYPE hComponent, MYDATATYPE* pAppData, OMX_BUFFERHEADERTYPE* pBuffer)
619 write(pAppData->IpBuf_Pipe[1], &pBuffer, sizeof(pBuffer));
677 OMX_ERRORTYPE VIDENCTEST_HandleError(MYDATATYPE* pAppData, OMX_ERRORTYPE eError)
680 OMX_HANDLETYPE pHandle = pAppData->pHandle;
686 pListHead = pAppData->pMemoryListHead;
688 switch (pAppData->eCurrentState) {
698 if (pAppData->bAllocateOBuf == OMX_TRUE) {
700 pAppData->pOBuffer[nCounter] -= 128;
701 pAppData->pOBuffer[nCounter] = (unsigned char*)pAppData->pOBuffer[nCounter];
702 VIDENCTEST_FREE(pAppData->pOBuffer[nCounter], pListHead);
703 pAppData->pOBuffer[nCounter] = NULL;
707 eError = OMX_FreeBuffer(pHandle, pAppData->pOutPortDef->nPortIndex, pAppData->pOutBuff[nCounter]);
709 if (pAppData->bAllocateIBuf == OMX_TRUE) {
711 pAppData->pIBuffer[nCounter] -= 128;
712 pAppData->pIBuffer[nCounter] = (unsigned char*)pAppData->pIBuffer[nCounter];
713 VIDENCTEST_FREE(pAppData->pIBuffer[nCounter], pListHead);
714 pAppData->pIBuffer[nCounter] = NULL;
718 eError = OMX_FreeBuffer(pHandle, pAppData->pInPortDef->nPortIndex, pAppData->pInBuff[nCounter]);
726 fclose(pAppData->fIn);
727 fclose(pAppData->fOut);
728 if(pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData->NalFormat == VIDENC_TEST_NAL_SLICE) {
729 fclose(pAppData->fNalnd);
732 eErr = close(pAppData->IpBuf_Pipe[0]);
738 eErr = close(pAppData->OpBuf_Pipe[0]);
744 eErr = close(pAppData->eventPipe[0]);
750 eErr = close(pAppData->IpBuf_Pipe[1]);
756 eErr = close(pAppData->OpBuf_Pipe[1]);
762 eErr = close(pAppData->eventPipe[1]);
767 pAppData->fIn = NULL;
768 pAppData->fOut = NULL;
769 pAppData->fNalnd = NULL;
794 * @param pAppData
801 OMX_ERRORTYPE VIDENCTEST_SetH264Parameter(MYDATATYPE* pAppData)
804 OMX_HANDLETYPE pHandle = pAppData->pHandle;
808 pAppData->pInPortDef->nBufferCountActual = NUM_OF_IN_BUFFERS;
809 pAppData->pInPortDef->nBufferCountMin = 1;
810 pAppData->pInPortDef->bEnabled = OMX_TRUE;
811 pAppData->pInPortDef->bPopulated = OMX_FALSE;
812 pAppData->pInPortDef->eDomain = OMX_PortDomainVideo;
815 pAppData->pInPortDef->format.video.cMIMEType = "yuv";
816 pAppData->pInPortDef->format.video.pNativeRender = NULL;
817 pAppData->pInPortDef->format.video.nStride = -1;
818 pAppData->pInPortDef->format.video.nSliceHeight = -1;
819 pAppData->pInPortDef->format.video.xFramerate = fToQ16(pAppData->nFramerate);
820 pAppData->pInPortDef->format.video.bFlagErrorConcealment = OMX_FALSE;
821 pAppData->pInPortDef->format.video.eColorFormat = pAppData->eColorFormat;
822 pAppData->pInPortDef->format.video.nFrameWidth = pAppData->nWidth;
823 pAppData->pInPortDef->format.video.nFrameHeight = pAppData->nHeight;
827 eError = OMX_SetParameter(pHandle, OMX_IndexParamPortDefinition, pAppData->pInPortDef);
831 eError = OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, pAppData->pInPortDef);
834 pAppData->nSizeIn = pAppData->pInPortDef->nBufferSize;
838 memset(pAppData->pH264, 0x0, sizeof(OMX_VIDEO_PARAM_AVCTYPE));
839 pAppData->pH264->nSize = sizeof(OMX_VIDEO_PARAM_AVCTYPE);
840 pAppData->pH264->nVersion.s.nVersionMajor = 0x1;
841 pAppData->pH264->nVersion.s.nVersionMinor = 0x0;
842 pAppData->pH264->nVersion.s.nRevision = 0x0;
843 pAppData->pH264->nVersion.s.nStep = 0x0;
844 pAppData->pH264->nPortIndex = VIDENC_OUTPUT_PORT;
845 pAppData->pH264->nSliceHeaderSpacing = 0;
846 pAppData->pH264->nPFrames = -1;
847 pAppData->pH264->nBFrames = -1;
848 pAppData->pH264->bUseHadamard = 0;
849 pAppData->pH264->nRefFrames = -1;
850 pAppData->pH264->nRefIdx10ActiveMinus1 = -1;
851 pAppData->pH264->nRefIdx11ActiveMinus1 = -1;
852 pAppData->pH264->bEnableUEP = OMX_FALSE;
853 pAppData->pH264->bEnableFMO = OMX_FALSE;
854 pAppData->pH264->bEnableASO = OMX_FALSE;
855 pAppData->pH264->bEnableRS = OMX_FALSE;
856 pAppData->pH264->eProfile = OMX_VIDEO_AVCProfileBaseline;
857 pAppData->pH264->nAllowedPictureTypes = -1;
858 pAppData->pH264->bFrameMBsOnly = OMX_FALSE;
859 pAppData->pH264->bMBAFF = OMX_FALSE;
860 pAppData->pH264->bEntropyCodingCABAC = OMX_FALSE;
861 pAppData->pH264->bWeightedPPrediction = OMX_FALSE;
862 pAppData->pH264->nWeightedBipredicitonMode = -1;
863 pAppData->pH264->bconstIpred = OMX_FALSE;
864 pAppData->pH264->bDirect8x8Inference = OMX_FALSE;
865 pAppData->pH264->bDirectSpatialTemporal = OMX_FALSE;
866 pAppData->pH264->nCabacInitIdc = -1;
867 pAppData->pH264->eLoopFilterMode = OMX_VIDEO_AVCLoopFilterDisable;
868 pAppData->pH264->eLevel = pAppData->eLevelH264;
870 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoAvc, pAppData->pH264);
875 /*memset(pAppData->pOutPortDef, 0x1, sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
876 pAppData->pOutPortDef->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
877 pAppData->pOutPortDef->nVersion.s.nVersionMajor = 0x1;
878 pAppData->pOutPortDef->nVersion.s.nVersionMinor = 0x0;
879 pAppData->pOutPortDef->nVersion.s.nRevision = 0x0;
880 pAppData->pOutPortDef->nVersion.s.nStep = 0x0;
881 pAppData->pOutPortDef->nPortIndex = VIDENC_OUTPUT_PORT;
882 pAppData->pOutPortDef->eDir = OMX_DirOutput;*/
883 pAppData->pOutPortDef->nBufferCountActual = NUM_OF_OUT_BUFFERS;
884 pAppData->pOutPortDef->nBufferCountMin = 1;
885 /*pAppData->pOutPortDef->nBufferSize = pAppData->nOutBuffSize;*/
886 pAppData->pOutPortDef->bEnabled = OMX_TRUE;
887 pAppData->pOutPortDef->bPopulated = OMX_FALSE;
888 pAppData->pOutPortDef->eDomain = OMX_PortDomainVideo;
891 pAppData->pOutPortDef->format.video.cMIMEType = "264";
892 pAppData->pOutPortDef->format.video.pNativeRender = NULL;
893 pAppData->pOutPortDef->format.video.nFrameWidth = pAppData->nWidth;
894 pAppData->pOutPortDef->format.video.nFrameHeight = pAppData->nHeight;
895 pAppData->pOutPortDef->format.video.nStride = 0;
896 pAppData->pOutPortDef->format.video.nSliceHeight = 0;
897 pAppData->pOutPortDef->format.video.nBitrate = pAppData->nBitrate;
898 pAppData->pOutPortDef->format.video.xFramerate = 0;
899 pAppData->pOutPortDef->format.video.bFlagErrorConcealment = OMX_FALSE;
900 pAppData->pOutPortDef->format.video.eCompressionFormat = pAppData->eCompressionFormat;
902 eError = OMX_SetParameter (pHandle, OMX_IndexParamPortDefinition, pAppData->pOutPortDef);
906 eError = OMX_GetParameter (pHandle, OMX_IndexParamPortDefinition, pAppData->pOutPortDef);
909 pAppData->nSizeOut = pAppData->pOutPortDef->nBufferSize;
913 pAppData->pVidParamBitrate->nSize = sizeof(OMX_VIDEO_PARAM_BITRATETYPE);
914 pAppData->pVidParamBitrate->nVersion.s.nVersionMajor = 0x1;
915 pAppData->pVidParamBitrate->nVersion.s.nVersionMinor = 0x0;
916 pAppData->pVidParamBitrate->nVersion.s.nRevision = 0x0;
917 pAppData->pVidParamBitrate->nVersion.s.nStep = 0x0;
918 pAppData->pVidParamBitrate->nPortIndex = VIDENC_OUTPUT_PORT;
919 pAppData->pVidParamBitrate->eControlRate = pAppData->eControlRate;
920 pAppData->pVidParamBitrate->nTargetBitrate = pAppData->pOutPortDef->format.video.nBitrate;
923 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoBitrate, pAppData->pVidParamBitrate);
928 pAppData->pQuantization->nSize = sizeof(OMX_VIDEO_PARAM_QUANTIZATIONTYPE);
929 pAppData->pQuantization->nVersion.s.nVersionMajor = 0x1;
930 pAppData->pQuantization->nVersion.s.nVersionMinor = 0x0;
931 pAppData->pQuantization->nVersion.s.nRevision = 0x0;
932 pAppData->pQuantization->nVersion.s.nStep = 0x0;
933 pAppData
934 pAppData->pQuantization->nQpI = pAppData->nQpI;
936 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoQuantization, pAppData->pQuantization);
940 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Param.DeblockFilter", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
943 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->bDeblockFilter));
946 if(pAppData->nEncodingPreset!=VIDENCTEST_USE_DEFAULT_VALUE_UI && pAppData->nEncodingPreset<=4){
947 printf("EncodingPreset %d selected\n", pAppData->nEncodingPreset);
948 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.EncodingPreset", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
950 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nEncodingPreset));
954 if(pAppData->nUnrestrictedMV != (OMX_U8)VIDENCTEST_USE_DEFAULT_VALUE_UI){
955 printf("nUnrestrictedMV %d selected\n", pAppData->nUnrestrictedMV);
956 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.UnrestrictedMV", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
958 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nUnrestrictedMV));
962 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.NALFormat", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
964 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->NalFormat));
977 * @param pAppData
984 OMX_ERRORTYPE VIDENCTEST_SetMpeg4Parameter(MYDATATYPE* pAppData)
987 OMX_HANDLETYPE pHandle = pAppData->pHandle;
991 pAppData->pInPortDef->nBufferCountActual = NUM_OF_IN_BUFFERS;
992 pAppData->pInPortDef->nBufferCountMin = 2;
993 pAppData->pInPortDef->bEnabled = OMX_TRUE;
994 pAppData->pInPortDef->bPopulated = OMX_FALSE;
995 pAppData->pInPortDef->eDomain = OMX_PortDomainVideo;
998 pAppData->pInPortDef->format.video.cMIMEType = "yuv";
999 pAppData->pInPortDef->format.video.pNativeRender = NULL;
1000 pAppData->pInPortDef->format.video.nStride = -1;
1001 pAppData->pInPortDef->format.video.nSliceHeight = -1;
1002 pAppData->pInPortDef->format.video.xFramerate = fToQ16(pAppData->nFramerate);
1003 pAppData->pInPortDef->format.video.bFlagErrorConcealment = OMX_FALSE;
1004 pAppData->pInPortDef->format.video.eColorFormat = pAppData->eColorFormat;
1005 pAppData->pInPortDef->format.video.nFrameWidth = pAppData->nWidth;
1006 pAppData->pInPortDef->format.video.nFrameHeight = pAppData->nHeight;
1008 eError = OMX_SetParameter (pHandle, OMX_IndexParamPortDefinition, pAppData->pInPortDef);
1012 eError = OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, pAppData->pInPortDef);
1015 pAppData->nSizeIn = pAppData->pInPortDef->nBufferSize;
1019 pAppData->pOutPortDef->nBufferCountActual = NUM_OF_OUT_BUFFERS;
1020 pAppData->pOutPortDef->nBufferCountMin = 1;
1021 pAppData->pOutPortDef->bEnabled = OMX_TRUE;
1022 pAppData->pOutPortDef->bPopulated = OMX_FALSE;
1023 pAppData->pOutPortDef->eDomain = OMX_PortDomainVideo;
1026 pAppData->pOutPortDef->format.video.cMIMEType = "mp4";
1027 pAppData->pOutPortDef->format.video.pNativeRender = NULL;
1028 pAppData->pOutPortDef->format.video.nFrameWidth = pAppData->nWidth;
1029 pAppData->pOutPortDef->format.video.nFrameHeight = pAppData->nHeight;
1030 pAppData->pOutPortDef->format.video.nStride = 0;
1031 pAppData->pOutPortDef->format.video.nSliceHeight = 0;
1032 pAppData->pOutPortDef->format.video.nBitrate = pAppData->nBitrate;
1033 pAppData->pOutPortDef->format.video.xFramerate = 0;
1034 pAppData->pOutPortDef->format.video.bFlagErrorConcealment = OMX_FALSE;
1035 pAppData->pOutPortDef->format.video.eCompressionFormat = pAppData->eCompressionFormat;
1037 eError = OMX_SetParameter (pHandle, OMX_IndexParamPortDefinition, pAppData->pOutPortDef);
1041 eError = OMX_GetParameter (pHandle, OMX_IndexParamPortDefinition, pAppData->pOutPortDef);
1044 pAppData->nSizeOut = pAppData->pOutPortDef->nBufferSize;
1048 pAppData->pVidParamBitrate->nSize = sizeof(OMX_VIDEO_PARAM_BITRATETYPE);
1049 pAppData->pVidParamBitrate->nVersion.s.nVersionMajor = 0x1;
1050 pAppData->pVidParamBitrate->nVersion.s.nVersionMinor = 0x0;
1051 pAppData->pVidParamBitrate->nVersion.s.nRevision = 0x0;
1052 pAppData->pVidParamBitrate->nVersion.s.nStep = 0x0;
1053 pAppData->pVidParamBitrate->nPortIndex = VIDENC_OUTPUT_PORT;
1054 pAppData->pVidParamBitrate->eControlRate = pAppData->eControlRate;
1055 pAppData->pVidParamBitrate->nTargetBitrate = pAppData->pOutPortDef->format.video.nBitrate;
1059 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoBitrate, pAppData->pVidParamBitrate);
1064 if (pAppData->eCompressionFormat == OMX_VIDEO_CodingH263) {
1065 pAppData->pH263->nSize = sizeof(OMX_VIDEO_PARAM_H263TYPE);
1066 pAppData->pH263->nVersion.s.nVersionMajor = 0x1;
1067 pAppData->pH263->nVersion.s.nVersionMinor = 0x0;
1068 pAppData->pH263->nVersion.s.nRevision = 0x0;
1069 pAppData->pH263->nVersion.s.nStep = 0x0;
1070 pAppData->pH263->nPortIndex = VIDENC_OUTPUT_PORT;
1071 pAppData->pH263->eLevel = pAppData->eLevelH63;
1072 pAppData->pH263->nGOBHeaderInterval = pAppData->nGOBHeaderInterval;
1074 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoH263, pAppData->pH263);
1080 pAppData->pQuantization->nSize = sizeof(OMX_VIDEO_PARAM_QUANTIZATIONTYPE);
1081 pAppData->pQuantization->nVersion.s.nVersionMajor = 0x1;
1082 pAppData->pQuantization->nVersion.s.nVersionMinor = 0x0;
1083 pAppData->pQuantization->nVersion.s.nRevision = 0x0;
1084 pAppData->pQuantization->nVersion.s.nStep = 0x0;
1085 pAppData->pQuantization->nPortIndex = VIDENC_OUTPUT_PORT;
1086 pAppData->pQuantization->nQpI = pAppData->nQpI;
1088 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoQuantization, pAppData->pQuantization);
1093 if (pAppData->eCompressionFormat == OMX_VIDEO_CodingMPEG4) {
1094 pAppData->pMpeg4->nSize = sizeof(OMX_VIDEO_PARAM_MPEG4TYPE);
1095 pAppData->pMpeg4->nVersion.s.nVersionMajor = 0x1;
1096 pAppData->pMpeg4->nVersion.s.nVersionMinor = 0x0;
1097 pAppData->pMpeg4->nVersion.s.nRevision = 0x0;
1098 pAppData->pMpeg4->nVersion.s.nStep = 0x0;
1099 pAppData->pMpeg4->nPortIndex = VIDENC_OUTPUT_PORT;
1100 pAppData->pMpeg4->eLevel = pAppData->eLevelMpeg4;
1102 eError = OMX_SetParameter (pHandle, OMX_IndexParamVideoMpeg4, pAppData->pMpeg4);
1107 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Param.VBVSize", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1110 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nVBVSize));
1113 if(pAppData->nMIRRate != VIDENCTEST_USE_DEFAULT_VALUE){
1115 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.MIRRate", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1117 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nMIRRate));
1121 if(pAppData->nResynchMarkerSpacing != VIDENCTEST_USE_DEFAULT_VALUE){
1134 ErrorCorrectionType.nResynchMarkerSpacing = pAppData->nResynchMarkerSpacing;
1139 if(pAppData->nUnrestrictedMV != (OMX_U8)VIDENCTEST_USE_DEFAULT_VALUE_UI){
1140 printf("nUnrestrictedMV %d selected\n", pAppData->nUnrestrictedMV);
1141 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.UnrestrictedMV", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1143 eError = OMX_SetParameter(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nUnrestrictedMV));
1156 * @param pAppData
1163 OMX_ERRORTYPE VIDENCTEST_AllocateResources(MYDATATYPE* pAppData)
1169 pListHead = pAppData->pMemoryListHead;
1171 VIDENCTEST_MALLOC(pAppData->pCb, sizeof(OMX_CALLBACKTYPE), OMX_CALLBACKTYPE, pListHead);
1172 VIDENCTEST_MALLOC(pAppData->pInPortDef, sizeof(OMX_PARAM_PORTDEFINITIONTYPE), OMX_PARAM_PORTDEFINITIONTYPE, pListHead);
1173 VIDENCTEST_MALLOC(pAppData->pOutPortDef, sizeof(OMX_PARAM_PORTDEFINITIONTYPE), OMX_PARAM_PORTDEFINITIONTYPE, pListHead);
1175 if (pAppData->eCompressionFormat == OMX_VIDEO_CodingH263) {
1176 VIDENCTEST_MALLOC(pAppData->pVidParamBitrate, sizeof(OMX_VIDEO_PARAM_BITRATETYPE), OMX_VIDEO_PARAM_BITRATETYPE, pListHead);
1177 VIDENCTEST_MALLOC(pAppData->pH263, sizeof(OMX_VIDEO_PARAM_H263TYPE), OMX_VIDEO_PARAM_H263TYPE, pListHead);
1179 else if (pAppData->eCompressionFormat == OMX_VIDEO_CodingMPEG4) {
1180 VIDENCTEST_MALLOC(pAppData->pVidParamBitrate, sizeof(OMX_VIDEO_PARAM_BITRATETYPE), OMX_VIDEO_PARAM_BITRATETYPE, pListHead);
1181 VIDENCTEST_MALLOC(pAppData->pMpeg4, sizeof(OMX_VIDEO_PARAM_MPEG4TYPE), OMX_VIDEO_PARAM_MPEG4TYPE, pListHead);
1183 else if (pAppData->eCompressionFormat == OMX_VIDEO_CodingAVC) {
1184 VIDENCTEST_MALLOC(pAppData->pVidParamBitrate, sizeof(OMX_VIDEO_PARAM_BITRATETYPE), OMX_VIDEO_PARAM_BITRATETYPE, pListHead);
1185 VIDENCTEST_MALLOC(pAppData->pH264, sizeof(OMX_VIDEO_PARAM_AVCTYPE), OMX_VIDEO_PARAM_AVCTYPE, pListHead);
1192 VIDENCTEST_MALLOC(pAppData->pQuantization, sizeof(OMX_VIDEO_PARAM_QUANTIZATIONTYPE), OMX_VIDEO_PARAM_QUANTIZATIONTYPE, pListHead);
1195 retval = pipe(pAppData->IpBuf_Pipe);
1200 retval = pipe(pAppData->OpBuf_Pipe);
1205 retval = pipe(pAppData->eventPipe);
1221 * @param pAppData
1228 OMX_ERRORTYPE VIDENCTEST_AllocateBuffers(MYDATATYPE* pAppData)
1234 pListHead = pAppData->pMemoryListHead;
1237 if (pAppData->bAllocateIBuf == OMX_TRUE) {
1238 VIDENCTEST_MALLOC(pAppData->pIBuffer[nCounter], pAppData->nSizeIn + 256, OMX_U8, pListHead);
1239 pAppData->pIBuffer[nCounter] += 128;
1240 pAppData->pIBuffer[nCounter] = (unsigned char*)pAppData->pIBuffer[nCounter];
1244 if (pAppData->bAllocateOBuf == OMX_TRUE) {
1245 VIDENCTEST_MALLOC(pAppData->pOBuffer[nCounter], pAppData->nSizeOut + 256, OMX_U8, pListHead);
1246 pAppData->pOBuffer[nCounter] += 128;
1247 pAppData->pOBuffer[nCounter] = (unsigned char*)pAppData->pOBuffer[nCounter];
1260 * @param pAppData
1267 OMX_ERRORTYPE VIDENCTEST_FreeResources(MYDATATYPE* pAppData)
1273 pListHead = pAppData->pMemoryListHead;
1275 VIDENCTEST_FREE(pAppData->pCb, pListHead);
1276 VIDENCTEST_FREE(pAppData->pInPortDef, pListHead);
1277 VIDENCTEST_FREE(pAppData->pOutPortDef, pListHead);
1279 if((pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData
1280 && pAppData->szOutFileNal) {
1281 VIDENCTEST_FREE(pAppData->szOutFileNal, pListHead);
1284 if (pAppData->pH264 != NULL) {
1285 VIDENCTEST_FREE(pAppData->pH264, pListHead);
1288 VIDENCTEST_FREE(pAppData->pVidParamBitrate, pListHead);
1290 if (pAppData->pH263 != NULL) {
1291 VIDENCTEST_FREE(pAppData->pH263, pListHead);
1294 VIDENCTEST_FREE(pAppData->pQuantization, pListHead);
1296 if (pAppData->pMpeg4 != NULL) {
1297 VIDENCTEST_FREE(pAppData->pMpeg4, pListHead);
1300 for (i = 0; i < pAppData->nEventCount; i++) {
1301 VIDENCTEST_FREE(pAppData->pEventArray[i], pListHead);
1380 * @param pAppData MYDATA handle
1387 OMX_ERRORTYPE VIDENCTEST_PassToLoaded(MYDATATYPE* pAppData)
1395 pListHead = pAppData->pMemoryListHead;
1397 eError = VIDENCTEST_AllocateResources(pAppData);
1402 pAppData->fdmax = maxint(pAppData->IpBuf_Pipe[0], pAppData->eventPipe[0]);
1404 pAppData->fdmax = maxint(pAppData->OpBuf_Pipe[0], pAppData->fdmax);
1413 *pAppData->pCb = sCb;
1415 eError = TIOMX_GetHandle(&pHandle, StrVideoEncoder, pAppData, pAppData->pCb);
1423 pAppData->pHandle = pHandle;
1426 VIDENCTEST_MALLOC(pAppData->pVideoInit, sizeof(OMX_PORT_PARAM_TYPE), OMX_PORT_PARAM_TYPE, pListHead);
1428 eError = OMX_GetParameter(pHandle, OMX_IndexParamVideoInit, pAppData->pVideoInit);
1431 pAppData->nStartPortNumber = pAppData->pVideoInit->nStartPortNumber;
1432 pAppData->nPorts = pAppData->pVideoInit->nPorts;
1434 VIDENCTEST_FREE(pAppData->pVideoInit, pListHead);
1437 for (i = pAppData->nStartPortNumber; i < pAppData->nPorts; i++) {
1438 VIDENCTEST_MALLOC(pAppData->pPortDef[i], sizeof(OMX_PARAM_PORTDEFINITIONTYPE), OMX_PARAM_PORTDEFINITIONTYPE, pListHead);
1440 pAppData->pPortDef[i]->nPortIndex = i;
1441 eError = OMX_GetParameter(pHandle, OMX_IndexParamPortDefinition, pAppData->pPortDef[i]);
1444 if (pAppData->pPortDef[i]->eDir == OMX_DirInput) {
1445 memcpy(pAppData->pInPortDef, pAppData->pPortDef[i], sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
1448 memcpy(pAppData->pOutPortDef, pAppData->pPortDef[i], sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
1450 VIDENCTEST_FREE(pAppData->pPortDef[i], pListHead);
1453 switch (pAppData->eCompressionFormat) {
1455 eError = VIDENCTEST_SetMpeg4Parameter(pAppData);
1459 eError = VIDENCTEST_SetMpeg4Parameter(pAppData);
1463 eError = VIDENCTEST_SetH264Parameter(pAppData);
1472 VIDENCTEST_AllocateBuffers(pAppData);
1475 pAppData->eCurrentState = VIDENCTEST_StateLoaded;
1488 * @param pAppData MYDATA handle
1495 OMX_ERRORTYPE VIDENCTEST_PassToReady(MYDATATYPE* pAppData)
1501 pHandle = pAppData->pHandle;
1507 if (pAppData->bAllocateIBuf == OMX_TRUE) {
1509 &pAppData->pInBuff[nCounter],
1510 pAppData->pInPortDef->nPortIndex,
1511 pAppData,
1512 pAppData->pInPortDef->nBufferSize,
1513 pAppData->pIBuffer[nCounter]);
1518 &pAppData->pInBuff[nCounter],
1519 pAppData->pInPortDef->nPortIndex,
1520 pAppData,
1521 pAppData->pInPortDef->nBufferSize);
1526 pAppData->nInBufferCount = NUM_OF_IN_BUFFERS;
1529 if (pAppData->bAllocateOBuf == OMX_TRUE) {
1531 &pAppData->pOutBuff[nCounter],
1532 pAppData->pOutPortDef->nPortIndex,
1533 pAppData,
1534 pAppData->pOutPortDef->nBufferSize,
1535 pAppData->pOBuffer[nCounter]);
1540 &pAppData->pOutBuff[nCounter],
1541 pAppData->pOutPortDef->nPortIndex,
1542 pAppData,
1543 pAppData->pOutPortDef->nBufferSize);
1548 pAppData->nOutBufferCount = NUM_OF_OUT_BUFFERS;
1550 pAppData->bLastOutBuffer = 0;
1564 * @param pAppData MYDATA handle
1571 OMX_ERRORTYPE VIDENCTEST_Starting(MYDATATYPE* pAppData)
1578 pHandle = pAppData->pHandle;
1579 pAppData->pComponent = (OMX_COMPONENTTYPE*)pHandle;
1582 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.IntraFrameInterval", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1586 if(pAppData->nIntraFrameInterval == VIDENCTEST_USE_DEFAULT_VALUE){
1587 pAppData->nIntraFrameInterval = 30;
1589 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nIntraFrameInterval));
1593 if (pAppData->eCompressionFormat == OMX_VIDEO_CodingMPEG4 ||
1594 pAppData->eCompressionFormat == OMX_VIDEO_CodingH263) {
1598 (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1601 pAppData->nTargetFrameRate = pAppData->nFramerate; /* Refer to DSP socket node interface guide for usage */
1602 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nTargetFrameRate));
1609 (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1611 pAppData->nAIRRate = 0; /* Refer to DSP socket node interface guide for usage */
1612 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nAIRRate));
1616 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.TargetBitRate", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
1619 pAppData->nTargetBitRate = pAppData->nBitrate; /* Refer to DSP socket node interface guide for usage */
1620 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nTargetBitRate));
1624 pAppData->nCurrentFrameIn = 0;
1625 pAppData->nCurrentFrameOut = 0;
1629 if ( pAppData->eTypeOfTest == VIDENCTEST_StopRestart || pAppData->eTypeOfTest == VIDENCTEST_PauseResume) {
1630 if (pAppData->nReferenceFrame <= 1 ){
1633 else if (pAppData->nReferenceFrame < NUM_OF_IN_BUFFERS){
1634 nBuffersToSend = pAppData->nReferenceFrame;
1645 if (pAppData->eTypeOfTest == VIDENCTEST_PartialRecord && pAppData->nReferenceFrame < NUM_OF_IN_BUFFERS) {
1646 nBuffersToSend = pAppData->nReferenceFrame;
1652 pAppData->pOutBuff[nCounter]->nFilledLen = 0;
1653 eError = pAppData->pComponent->FillThisBuffer(pHandle, pAppData->pOutBuff[nCounter]);
1655 pAppData->nOutBufferCount--;
1660 pAppData->pInBuff[nCounter]->nFilledLen = VIDENCTEST_fill_data(pAppData->pInBuff[nCounter], pAppData->fIn , pAppData->pInPortDef->nBufferSize);
1662 if (pAppData->pInBuff[nCounter]->nFlags == OMX_BUFFERFLAG_EOS && pAppData->pInBuff[nCounter]->nFilledLen == 0) {
1663 pAppData->eCurrentState = VIDENCTEST_StateStopping;
1664 eError = pAppData->pComponent->EmptyThisBuffer(pHandle, pAppData->pInBuff[nCounter]);
1666 pAppData->nInBufferCount--;
1670 pAppData->pComponent->EmptyThisBuffer(pHandle, pAppData->pInBuff[nCounter]);
1671 pAppData
1672 pAppData->nCurrentFrameIn++;
1676 pAppData->eCurrentState = VIDENCTEST_StateEncoding;
1688 * @param pAppData MYDATA handle
1695 OMX_ERRORTYPE VIDENCTEST_DeInit(MYDATATYPE* pAppData)
1700 OMX_HANDLETYPE pHandle = pAppData->pHandle;
1701 pListHead = pAppData->pMemoryListHead;
1712 fclose(pAppData->fIn);
1713 fclose(pAppData->fOut);
1714 if(pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData->NalFormat == VIDENC_TEST_NAL_SLICE) {
1715 fclose(pAppData->fNalnd);
1718 eErr = close(pAppData->IpBuf_Pipe[0]);
1724 eErr = close(pAppData->OpBuf_Pipe[0]);
1730 eErr = close(pAppData->eventPipe[0]);
1736 eErr = close(pAppData->IpBuf_Pipe[1]);
1742 eErr = close(pAppData->OpBuf_Pipe[1]);
1748 eErr = close(pAppData->eventPipe[1]);
1754 pAppData->fIn = NULL;
1755 pAppData->fOut = NULL;
1756 pAppData->fNalnd = NULL;
1758 VIDENCTEST_FreeResources(pAppData);
1761 VIDENCTEST_FREE(pAppData, pListHead);
1763 pAppData = NULL;
1776 * @param pAppData
1784 OMX_ERRORTYPE VIDENCTEST_HandleState(MYDATATYPE* pAppData, OMX_U32 eState)
1787 OMX_HANDLETYPE pHandle = pAppData->pHandle;
1791 pListHead = pAppData->pMemoryListHead;
1796 if(pAppData->eCurrentState == VIDENCTEST_StateLoaded) {
1797 pAppData->eCurrentState = VIDENCTEST_StateUnLoad;
1802 if (pAppData->eCurrentState == VIDENCTEST_StateLoaded) {
1803 pAppData->eCurrentState = VIDENCTEST_StateReady;
1808 else if(pAppData->eCurrentState == VIDENCTEST_StateWaitEvent){
1809 if(pAppData->bStop == OMX_TRUE){
1812 pAppData->eCurrentState = VIDENCTEST_StateStop;
1819 pAppData->bStop = OMX_FALSE;
1826 if (pAppData->bAllocateIBuf == OMX_TRUE) {
1828 pAppData->pIBuffer[nCounter] -= 128;
1829 pAppData->pIBuffer[nCounter] = (unsigned char*)pAppData->pIBuffer[nCounter];
1830 VIDENCTEST_FREE(pAppData->pIBuffer[nCounter], pListHead);
1831 pAppData->pIBuffer[nCounter] = NULL;
1835 eError = OMX_FreeBuffer(pHandle, pAppData->pInPortDef->nPortIndex, pAppData->pInBuff[nCounter]);
1841 pAppData->eCurrentState = VIDENCTEST_StateStarting;
1842 eError = VIDENCTEST_Starting(pAppData);
1846 pAppData->eCurrentState = VIDENCTEST_StatePause;
1854 pAppData->bStop = OMX_FALSE;
1875 * @param pAppData
1883 OMX_ERRORTYPE VIDENCTEST_CheckArgs_H263(MYDATATYPE* pAppData, char** argv)
1889 pAppData->eControlRate = OMX_Video_ControlRateDisable;
1892 pAppData->eControlRate = OMX_Video_ControlRateVariable;
1895 pAppData->eControlRate = OMX_Video_ControlRateConstant;
1903 pAppData->nGOBHeaderInterval = atoi(argv[10]);
1904 pAppData->nQpI = atoi(argv[11]);
1908 pAppData->eLevelH63 = OMX_VIDEO_H263Level10;
1911 pAppData->eLevelH63 = OMX_VIDEO_H263Level20;
1914 pAppData->eLevelH63 = OMX_VIDEO_H263Level30;
1917 pAppData->eLevelH63 = OMX_VIDEO_H263Level40;
1920 pAppData->eLevelH63 = OMX_VIDEO_H263Level45;
1923 pAppData->eLevelH63 = OMX_VIDEO_H263Level50;
1926 pAppData->eLevelH63 = OMX_VIDEO_H263Level60;
1929 pAppData->eLevelH63 = OMX_VIDEO_H263Level70;
1938 pAppData->bAllocateIBuf = OMX_FALSE;
1939 pAppData->bAllocateOBuf = OMX_FALSE;
1942 pAppData->bAllocateIBuf = OMX_TRUE;
1943 pAppData->bAllocateOBuf = OMX_TRUE;
1946 pAppData->nVBVSize = atoi(argv[14]);
1959 * @param pAppData
1967 OMX_ERRORTYPE VIDENCTEST_CheckArgs_Mpeg4(MYDATATYPE* pAppData, char** argv)
1973 pAppData->eControlRate = OMX_Video_ControlRateDisable;
1976 pAppData->eControlRate = OMX_Video_ControlRateVariable;
1979 pAppData->eControlRate = OMX_Video_ControlRateConstant;
1987 pAppData->nQpI = atoi(argv[11]);
1990 pAppData->eLevelMpeg4 = atoi(argv[12]);
1995 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level0;
1998 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level1;
2001 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level2;
2004 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level3;
2007 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level4;
2010 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level5;
2013 pAppData->eLevelMpeg4 = OMX_VIDEO_MPEG4Level0b;
2024 pAppData->bAllocateIBuf = OMX_FALSE;
2025 pAppData->bAllocateOBuf = OMX_FALSE;
2028 pAppData->bAllocateIBuf = OMX_TRUE;
2029 pAppData->bAllocateOBuf = OMX_TRUE;
2032 pAppData->nVBVSize = atoi(argv[14]);
2045 * @param pAppData
2053 OMX_ERRORTYPE VIDENCTEST_CheckArgs_AVC(MYDATATYPE* pAppData, char** argv)
2059 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel1;
2062 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel11;
2065 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel12;
2068 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel13;
2071 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel2;
2074 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel21;
2077 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel22;
2080 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel3;
2083 pAppData->eLevelH264 = OMX_VIDEO_AVCLevel1b;
2091 pAppData->nOutBuffSize = atoi(argv[10]);
2094 pAppData->bAllocateIBuf = OMX_FALSE;
2095 pAppData->bAllocateOBuf = OMX_FALSE;
2098 pAppData->bAllocateIBuf = OMX_TRUE;
2099 pAppData->bAllocateOBuf = OMX_TRUE;
2103 pAppData->bDeblockFilter = OMX_FALSE;
2106 pAppData->bDeblockFilter = OMX_TRUE;
2117 pAppData->eControlRate = OMX_Video_ControlRateDisable;
2120 pAppData->eControlRate = OMX_Video_ControlRateVariable;
2123 pAppData->eControlRate = OMX_Video_ControlRateConstant;
2129 pAppData->nQpI = atoi(argv[14]);
2151 OMX_ERRORTYPE VIDENCTEST_CheckOptionalArgs(MYDATATYPE* pAppData, int argc, char* argv []){
2175 pAppData->nMIRRate=atoi(optarg);
2179 pAppData->nResynchMarkerSpacing=atoi(optarg);
2183 pAppData->nIntraFrameInterval=atoi(optarg);
2186 if(pAppData->eCompressionFormat == OMX_VIDEO_CodingAVC){
2188 pAppData->nEncodingPreset=atoi(optarg);
2195 pAppData->NalFormat=atoi(optarg);
2199 pAppData->nQPIoF=atoi(optarg);
2202 pAppData
2237 MYDATATYPE* pAppData;
2242 VIDENCTEST_MALLOC(pAppData, sizeof(MYDATATYPE), MYDATATYPE, pMemoryListHead);
2244 *pAppDataTmp = pAppData;
2245 pAppData->pMemoryListHead = pMemoryListHead;
2246 pAppData->eCurrentState = VIDENCTEST_StateUnLoad;
2247 pAppData->nMIRRate=VIDENCTEST_USE_DEFAULT_VALUE;
2248 pAppData->nResynchMarkerSpacing=VIDENCTEST_USE_DEFAULT_VALUE;
2249 pAppData->nIntraFrameInterval=VIDENCTEST_USE_DEFAULT_VALUE;
2250 pAppData->nEncodingPreset=VIDENCTEST_USE_DEFAULT_VALUE_UI;
2251 pAppData->nUnrestrictedMV=(OMX_U8)VIDENCTEST_USE_DEFAULT_VALUE_UI;
2252 pAppData->NalFormat = 0;
2253 pAppData->nQPIoF = 0;
2254 pAppData->bForceIFrame = 0;
2265 pAppData->szInFile = argv[1];
2266 pAppData->fIn = fopen(pAppData->szInFile, "r");
2267 if (!pAppData->fIn) {
2268 printf("Error: failed to open the file <%s>", pAppData->szInFile);
2273 pAppData->szOutFile = argv[2];
2274 pAppData->fOut = fopen(pAppData->szOutFile, "w");
2275 if (!pAppData->fOut) {
2276 VIDENCTEST_DPRINT("Error: failed to open the file <%s>", pAppData->szOutFile);
2281 pAppData->nWidth = atoi(argv[3]);
2282 if (pAppData->nWidth & 15) {
2286 pAppData->nHeight = atoi(argv[4]);
2287 if (pAppData->nHeight & 15) {
2293 pAppData->eColorFormat = OMX_COLOR_FormatYUV420Planar;/*420*/
2296 pAppData->eColorFormat = OMX_COLOR_FormatYCbYCr;/*422-BE*/
2299 pAppData->eColorFormat = OMX_COLOR_FormatCbYCrY;/*422-LE*/
2308 pAppData->nBitrate = atoi(argv[6]);
2309 if(pAppData->nBitrate > 10000000) {
2313 pAppData->nFramerate = atoi(argv[7]);
2314 if(pAppData->nFramerate < 7 || pAppData->nFramerate > 30) {
2320 pAppData->eCompressionFormat = OMX_VIDEO_CodingH263;
2321 eError = VIDENCTEST_CheckArgs_H263(pAppData, argv);
2325 pAppData->eCompressionFormat = OMX_VIDEO_CodingMPEG4;
2326 eError = VIDENCTEST_CheckArgs_Mpeg4(pAppData, argv);
2330 pAppData->eCompressionFormat = OMX_VIDEO_CodingAVC;
2331 eError = VIDENCTEST_CheckArgs_AVC(pAppData, argv);
2343 pAppData->eTypeOfTest = VIDENCTEST_FullRecord;
2349 pAppData->eTypeOfTest = VIDENCTEST_FullRecord;
2350 pAppData->bStop = OMX_FALSE;
2353 pAppData->eTypeOfTest = VIDENCTEST_PartialRecord;
2354 pAppData->bStop = OMX_FALSE;
2357 pAppData->eTypeOfTest = VIDENCTEST_PauseResume;
2358 pAppData->bStop = OMX_TRUE;
2361 pAppData->eTypeOfTest = VIDENCTEST_StopRestart;
2362 pAppData->bStop = OMX_TRUE;
2365 pAppData->eTypeOfTest = VIDENCTEST_FullRecord;
2371 pAppData->nReferenceFrame = 0;
2375 pAppData->nReferenceFrame = atoi(argv[16]);
2379 pAppData->nNumberOfTimesTodo = 1;
2383 pAppData->nNumberOfTimesTodo = 1;
2386 pAppData->nNumberOfTimesTodo = atoi(argv[17]);
2387 VIDENCTEST_PRINT("nNumberOfTimesTodo %lu \n", pAppData->nNumberOfTimesTodo);
2391 VIDENCTEST_CheckOptionalArgs(pAppData, argc, argv);
2393 if(pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData->NalFormat == VIDENC_TEST_NAL_SLICE) {
2394 VIDENCTEST_MALLOC(pAppData->szOutFileNal, strlen(pAppData->szOutFile)+3, char, pMemoryListHead);
2395 strcpy(pAppData->szOutFileNal, pAppData->szOutFile);
2396 strcat(pAppData->szOutFileNal, "nd");
2397 pAppData->fNalnd = fopen(pAppData->szOutFileNal, "w");
2398 if (!pAppData->szOutFileNal) {
2399 VIDENCTEST_DPRINT("Error: failed to open the file <%s>", pAppData->szOutFileNal);
2424 OMX_ERRORTYPE VIDENCTEST_Confirm(MYDATATYPE* pAppData)
2427 OMX_HANDLETYPE pHandle = pAppData->pHandle;
2429 switch (pAppData->eTypeOfTest){
2432 pAppData->nNumberOfTimesDone++;
2433 if(pAppData->nNumberOfTimesTodo == pAppData->nNumberOfTimesDone) {
2434 pAppData->bExit = OMX_TRUE;
2437 pAppData->bExit = OMX_FALSE;
2438 VIDENCTEST_PRINT("\nTimes Done: %i of %i \n", pAppData->nNumberOfTimesDone, pAppData->nNumberOfTimesTodo);
2439 pAppData->fOut = fopen(pAppData->szOutFile, "w");
2440 if(pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData->NalFormat == VIDENC_TEST_NAL_SLICE) {
2441 pAppData->fNalnd = fopen(pAppData->szOutFileNal, "w");
2443 if (!pAppData->fIn){
2446 rewind(pAppData->fIn);
2453 if (pAppData->bStop == OMX_TRUE) {
2454 if(pAppData->eTypeOfTest == VIDENCTEST_StopRestart) {
2455 rewind(pAppData->fIn);
2459 else if (pAppData->eTypeOfTest == VIDENCTEST_PauseResume) {
2465 pAppData->nNumberOfTimesDone++;
2466 if(pAppData->nNumberOfTimesTodo == pAppData->nNumberOfTimesDone) {
2467 pAppData->bExit = OMX_TRUE;
2470 pAppData->bExit = OMX_FALSE;
2471 fprintf(stdout, "\nTimes Done: %lx of %lx \n", pAppData->nNumberOfTimesDone, pAppData->nNumberOfTimesTodo);
2472 if(pAppData->eTypeOfTest == VIDENCTEST_StopRestart || pAppData->eTypeOfTest == VIDENCTEST_PauseResume) {
2473 pAppData->bStop = OMX_TRUE;
2476 pAppData->bStop = OMX_FALSE;
2479 pAppData->fOut = fopen(pAppData->szOutFile, "w");
2480 if (!pAppData->fOut){
2483 if(pAppData->NalFormat == VIDENC_TEST_NAL_FRAME || pAppData->NalFormat == VIDENC_TEST_NAL_SLICE) {
2484 pAppData->fNalnd = fopen(pAppData->szOutFileNal, "w");
2485 if (!pAppData->fNalnd){
2489 rewind(pAppData->fIn);
2496 pAppData->eCurrentState = VIDENCTEST_StateWaitEvent;
2517 OMX_ERRORTYPE VIDENCTEST_HandlePortDisable(MYDATATYPE* pAppData, OMX_U32 ePort)
2520 OMX_HANDLETYPE pHandle = pAppData->pHandle;
2524 pAppData->nUnresponsiveCount = 0;
2525 pListHead = pAppData->pMemoryListHead;
2531 if (pAppData->bAllocateOBuf == OMX_TRUE) {
2533 pAppData->pOBuffer[nCounter] -= 128;
2534 pAppData->pOBuffer[nCounter] = (unsigned char*)pAppData->pOBuffer[nCounter];
2535 VIDENCTEST_FREE(pAppData->pOBuffer[nCounter], pListHead);
2536 pAppData->pOBuffer[nCounter] = NULL;
2540 eError = OMX_FreeBuffer(pHandle, pAppData->pOutPortDef->nPortIndex, pAppData->pOutBuff[nCounter]);
2545 if (pAppData->bExit == OMX_TRUE) {
2548 pAppData->eCurrentState = VIDENCTEST_StateLoaded;
2555 if (pAppData->bAllocateIBuf == OMX_TRUE) {
2556 VIDENCTEST_MALLOC(pAppData->pIBuffer[nCounter], pAppData->nSizeIn + 256, OMX_U8, pListHead);
2557 pAppData->pIBuffer[nCounter] += 128;
2558 pAppData->pIBuffer[nCounter] = (unsigned char*)pAppData->pIBuffer[nCounter];
2563 if (pAppData->bAllocateIBuf == OMX_TRUE) {
2565 &pAppData->pInBuff[nCounter],
2566 pAppData->pInPortDef->nPortIndex,
2567 pAppData,
2568 pAppData->pInPortDef->nBufferSize,
2569 pAppData->pIBuffer[nCounter]);
2574 &pAppData->pInBuff[nCounter],
2575 pAppData->pInPortDef->nPortIndex,
2576 pAppData,
2577 pAppData->pInPortDef->nBufferSize);
2595 * @param pAppData
2603 OMX_ERRORTYPE VIDENCTEST_HandlePortEnable(MYDATATYPE* pAppData, OMX_U32 ePort)
2606 OMX_HANDLETYPE pHandle = pAppData->pHandle;
2610 pAppData->nUnresponsiveCount = 0;
2611 pListHead = pAppData->pMemoryListHead;
2618 if (pAppData->bAllocateOBuf == OMX_TRUE) {
2619 VIDENCTEST_MALLOC(pAppData->pOBuffer[nCounter], pAppData->nSizeOut + 256, OMX_U8, pListHead);
2620 pAppData->pOBuffer[nCounter] += 128;
2621 pAppData->pOBuffer[nCounter] = (unsigned char*)pAppData->pOBuffer[nCounter];
2626 if (pAppData->bAllocateOBuf == OMX_TRUE) {
2628 &pAppData->pOutBuff[nCounter],
2629 pAppData->pOutPortDef->nPortIndex,
2630 pAppData,
2631 pAppData->pOutPortDef->nBufferSize,
2632 pAppData->pOBuffer[nCounter]);
2637 &pAppData->pOutBuff[nCounter],
2638 pAppData->pOutPortDef->nPortIndex,
2639 pAppData,
2640 pAppData->pOutPortDef->nBufferSize);
2660 * @param pAppData
2668 OMX_ERRORTYPE VIDENCTEST_HandleEventError(MYDATATYPE* pAppData, OMX_U32 eErr, OMX_U32 nData2)
2710 if(pAppData->nUnresponsiveCount++ > MAX_UNRESPONSIVE_COUNT){
2749 MYDATATYPE* pAppData;
2766 eError = VIDENCTEST_CheckArgs(argc, argv, &pAppData);
2772 eError = VIDENCTEST_PassToLoaded(pAppData);
2776 pListHead = pAppData->pMemoryListHead;
2777 pHandle = pAppData->pHandle;
2780 eError = VIDENCTEST_PassToReady(pAppData);
2786 FD_SET(pAppData->IpBuf_Pipe[0], &rfds);
2787 FD_SET(pAppData->OpBuf_Pipe[0], &rfds);
2788 FD_SET(pAppData->eventPipe[0], &rfds);
2792 pAppData->nRetVal = pselect(pAppData->fdmax+1, &rfds, NULL, NULL, NULL,&set);
2794 if (pAppData->nRetVal == -1) {
2800 if (pAppData->nRetVal == 0) {
2804 VIDENCTEST_HandleError(pAppData, OMX_ErrorUndefined);
2813 if (FD_ISSET(pAppData->eventPipe[0], &rfds)) {
2819 read(pAppData->eventPipe[0], &pEventPrivate, sizeof(pEventPrivate));
2829 eError = VIDENCTEST_HandleState(pAppData, nData2);
2837 eError = VIDENCTEST_HandlePortDisable(pAppData, nData2);
2843 eError = VIDENCTEST_HandlePortEnable(pAppData, nData2);
2852 eError = VIDENCTEST_HandleEventError(pAppData, nData1, nData2);
2893 if(FD_ISSET(pAppData->IpBuf_Pipe[0], &rfds)){
2895 read(pAppData->IpBuf_Pipe[0], &pBuffer, sizeof(pBuffer));
2896 pAppData->nInBufferCount++;
2898 if(pAppData->eCurrentState == VIDENCTEST_StateEncoding) {
2899 pBuffer->nFilledLen = VIDENCTEST_fill_data(pBuffer, pAppData->fIn , pAppData->pInPortDef->nBufferSize);
2902 pAppData->eCurrentState = VIDENCTEST_StateStopping;
2903 eError = pAppData->pComponent->EmptyThisBuffer(pHandle, pBuffer);
2905 pAppData->nInBufferCount--;
2908 if(pAppData->eTypeOfTest != VIDENCTEST_FullRecord){
2909 if(pAppData->nCurrentFrameIn == pAppData->nReferenceFrame){
2910 pAppData->eCurrentState = VIDENCTEST_StateStopping;
2911 if(pAppData->eTypeOfTest == VIDENCTEST_PauseResume) {
2912 eError = pAppData->pComponent->EmptyThisBuffer(pHandle, pBuffer);
2914 pAppData->nInBufferCount--;
2915 pAppData->nCurrentFrameIn++;
2920 if(pAppData->eCurrentState == VIDENCTEST_StateEncoding){
2921 if(pAppData->nQPIoF > 0) {
2922 if(!(pAppData->nCurrentFrameIn % pAppData->nQPIoF)) {
2923 pAppData->bForceIFrame = OMX_TRUE;
2925 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.ForceIFrame", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
2927 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->bForceIFrame));
2929 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.QPI", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
2931 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->nQpI));
2935 pAppData->bForceIFrame = OMX_FALSE;
2936 eError = OMX_GetExtensionIndex(pHandle,"OMX.TI.VideoEncode.Config.ForceIFrame", (OMX_INDEXTYPE*)(&(pAppData->nVideoEncodeCustomParamIndex)));
2938 eError = OMX_SetConfig(pHandle, pAppData->nVideoEncodeCustomParamIndex, &(pAppData->bForceIFrame));
2942 eError = pAppData->pComponent->EmptyThisBuffer(pHandle, pBuffer);
2944 pAppData->nInBufferCount--;
2945 pAppData->nCurrentFrameIn++;
2949 if(pAppData->eCurrentState == VIDENCTEST_StateStopping) {
2950 if(pAppData->nInBufferCount == NUM_OF_IN_BUFFERS){
2951 pAppData->eCurrentState = VIDENCTEST_StateConfirm;
2956 if(FD_ISSET(pAppData->OpBuf_Pipe[0], &rfds)){
2958 read(pAppData->OpBuf_Pipe[0], &pBuffer, sizeof(pBuffer));
2959 pAppData->nOutBufferCount++;
2964 (pAppData->eTypeOfTest != VIDENCTEST_FullRecord &&
2965 pAppData->nCurrentFrameIn == pAppData->nReferenceFrame)) {
2966 pAppData->bLastOutBuffer = 1;
2971 pAppData->nCurrentFrameOut++;
2972 fwrite(pBuffer->pBuffer, 1, pBuffer->nFilledLen, pAppData->fOut);
2973 nError = ferror(pAppData->fOut);
2977 nError = fflush(pAppData->fOut);
2982 if(pAppData->NalFormat == VIDENC_TEST_NAL_SLICE){
2984 fwrite(&nNalSlices, 1, sizeof(OMX_U32), pAppData->fNalnd);
2985 fwrite(&(pBuffer->nFilledLen), 1, sizeof(OMX_U32), pAppData->fNalnd);
2986 nError = ferror(pAppData->fNalnd);
2990 nError = fflush(pAppData->fNalnd);
2996 if((pAppData->NalFormat == VIDENC_TEST_NAL_FRAME) &&
3004 fwrite(pIndexNal, 1, sizeof(OMX_U32), pAppData->fNalnd);
3008 pAppData->fNalnd);
3009 nError = ferror(pAppData->fNalnd);
3013 nError = fflush(pAppData->fNalnd);
3021 if(pAppData->eCurrentState == VIDENCTEST_StateEncoding ||
3022 pAppData->eCurrentState == VIDENCTEST_StateStopping) {
3024 eError = pAppData->pComponent->FillThisBuffer(pHandle, pBuffer);
3026 pAppData->nOutBufferCount--;
3030 if (pAppData->eCurrentState == VIDENCTEST_StateConfirm ) {
3031 if (pAppData->bLastOutBuffer){
3032 VIDENCTEST_PRINT("Number of Input Buffer at Client Side : %i\n", pAppData->nInBufferCount);
3033 VIDENCTEST_PRINT("Number of Output Buffer at Client Side : %i\n", pAppData->nOutBufferCount);
3034 VIDENCTEST_PRINT("Frames Out: %i\n", pAppData->nCurrentFrameOut);
3036 eError = VIDENCTEST_Confirm(pAppData);
3042 if (pAppData->eCurrentState == VIDENCTEST_StateUnLoad) {
3048 if(pAppData->nCurrentFrameIn != pAppData->nCurrentFrameOut)
3050 printf("App: Warning!!! FrameIn: %d FrameOut: %d\n", (int)pAppData->nCurrentFrameIn, (int)pAppData->nCurrentFrameOut);
3053 eError = VIDENCTEST_DeInit(pAppData);