void loop_test_open(UInt32 fileId, UInt32 fileIndex) { static Uint32 loopNum[64] = {0}; char fileNameHdr[MCFW_IPC_BITS_MAX_FULL_PATH_FILENAME_LENGTH]; VdecVdis_FileInfo *pFileInfo; OSA_assert (fileIndex < gVdecVdis_config.fileNum); loopNum[fileId] = fileIndex; close(gVdecVdis_obj.fdRdData[fileId]); pFileInfo = &gVdecVdis_config.fileInfo[fileIndex]; if(strcmp(pFileInfo->codec,"h264") == 0) Demo_generateH264HdrFile(pFileInfo->path); else if(strcmp(pFileInfo->codec,"mjpeg") == 0) Demo_generateMjpgHdrFile(pFileInfo->path); else if(strcmp(pFileInfo->codec,"mpeg4") == 0) Demo_generateMpeg4HdrFile(pFileInfo->path); bzero(fileNameHdr,MCFW_IPC_BITS_MAX_FULL_PATH_FILENAME_LENGTH); strcat(fileNameHdr, pFileInfo->path); strcat(fileNameHdr,".hdr\0"); if (FALSE == VdecVdis_bitsRdFileExists(fileNameHdr)) { printf(" %d: ERROR: Header File [%s] for [%s] not found !!! \n", fileId, fileNameHdr, pFileInfo->path ); } fclose(gVdecVdis_obj.fpRdHdr[fileId]); gVdecVdis_obj.fpRdHdr[fileId] = fopen(fileNameHdr,"r"); OSA_assert(gVdecVdis_obj.fpRdHdr[fileId] != NULL); gVdecVdis_obj.fdRdData[fileId] = open(pFileInfo->path, O_RDONLY); if(gVdecVdis_obj.fdRdData[fileId]<= 0) perror("---------!!!!!!!!!1-----"); }
static Int VdecVdis_bitsRdOpenFileHandles(Bool headGenerate) { UInt32 status = OSA_SOK; UInt32 fileId, resId; Bool found = FALSE; char fileNameHdr[MCFW_IPC_BITS_MAX_FULL_PATH_FILENAME_LENGTH]; UInt32 fileLen; VdecVdis_FileInfo *pFileInfo; gVdecVdis_config.numRes = 0; OSA_assert(gVdecVdis_config.fileNum <= MCFW_IPC_BITS_MAX_FILE_NUM_IN_INI); /* assuming valid files = fileNum */ for (fileId = 0; fileId < gVdecVdis_config.fileNum; fileId++) { pFileInfo = &gVdecVdis_config.fileInfo[fileId]; printf(" %d: Opening file [%s] of %d x %d Codec: %s... \n", fileId, pFileInfo->path, pFileInfo->width, pFileInfo->height, pFileInfo->codec ); gVdecVdis_obj.fdRdData[fileId] = -1; gVdecVdis_obj.fpRdHdr[fileId] = NULL; if(!pFileInfo->enable) { printf(" %d: WARNING: File not ENABLED in .ini file ... ignoring this flag !!! \n", fileId); } if(pFileInfo->width==0 || pFileInfo->height==0 ) { printf(" %d: ERROR: Invalid width x height specified !!! \n", fileId); status = OSA_EFAIL; continue; } if(strlen(pFileInfo->codec) == 0) { printf(" %d: WARNING: Codec type not set. Will be considered as H264 ... ignoring this flag !!! \n", fileId); } if(pFileInfo->displaydelay == 0) { printf(" %d: WARNING: Either the displaydelay was not set or Default value was set as 0\n", fileId); } if(pFileInfo->numbuf == 0) { printf(" %d: WARNING: Either the Num of output buffers not set or Default value was set as zero\n", fileId); } if (FALSE == VdecVdis_bitsRdFileExists(pFileInfo->path)) { printf(" %d: ERROR: File [%s] not found !!! \n", fileId, pFileInfo->path ); status = OSA_EFAIL; continue; } else { status = OSA_SOK; } if (headGenerate) Demo_generateBitsHdrFile(pFileInfo->path); gVdecVdis_obj.fdRdData[fileId] = open(pFileInfo->path, O_RDONLY); OSA_assert(gVdecVdis_obj.fdRdData[fileId] > 0 ); strcpy(fileNameHdr, pFileInfo->path); fileLen = strlen(fileNameHdr); strcpy(fileNameHdr + (fileLen - 4),"hdr\0"); if (FALSE == VdecVdis_bitsRdFileExists(fileNameHdr)) { printf(" %d: ERROR: Header File [%s] for [%s] not found !!! \n", fileId, fileNameHdr, pFileInfo->path ); status = OSA_EFAIL; continue; } else { status = OSA_SOK; } gVdecVdis_obj.fpRdHdr[fileId] = fopen(fileNameHdr,"r"); OSA_assert(gVdecVdis_obj.fpRdHdr[fileId] != NULL); // find same resolution in the array found = FALSE; for(resId=0;resId<gVdecVdis_config.numRes;resId++) { if ((pFileInfo->width == gVdecVdis_config.res[resId].width) && (pFileInfo->height == gVdecVdis_config.res[resId].height)) { found = TRUE; break; } } if (!found) { gVdecVdis_config.res[resId].width = pFileInfo->width; gVdecVdis_config.res[resId].height = pFileInfo->height; gVdecVdis_config.numRes++; } gVdecVdis_config.numChnlInRes[resId] ++; gVdecVdis_config.resToChnl [ resId ] [ gVdecVdis_config.numChnlInRes[resId] - 1 ] = fileId; } if( status != OSA_SOK ) { printf(" \n"); printf(" !!! There were some errors in accessing the one of the input files or width x height of the bitstreams. !!!\n"); printf(" !!! Please check, Continuing with the rest!!! \n"); printf(" \n"); } for ( resId = 0; resId < gVdecVdis_config.numRes; resId++) { printf ("gVdecVdis_config.numRes : %d gVdecVdis_config.numChnlInRes[%d] : %d\n", gVdecVdis_config.numRes, resId, gVdecVdis_config.numChnlInRes[resId]); } printf(" File open ... DONE !!!\n"); printf(" \n"); return status; }