Esempio n. 1
0
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-----");
}
Esempio n. 2
0
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;
}