Exemplo n.º 1
0
static Void VdecVdis_bitsRdGetEmptyBitBufs(VCODEC_BITSBUF_LIST_S *emptyBufList, UInt32 resId)
{
    VDEC_BUF_REQUEST_S reqInfo;
    UInt32 i;

    emptyBufList->numBufs = 0;

    // require 2 buffers for each channel
    reqInfo.numBufs = gVdecVdis_config.numChnlInRes[resId] ;
    reqInfo.reqType = VDEC_BUFREQTYPE_CHID;

    for (i = 0; i < reqInfo.numBufs ; i++)
    {
        reqInfo.u[i].chNum = VdecVdis_getChnlIdFromBufSize(resId);
    }

    Vdec_requestBitstreamBuffer(&reqInfo, emptyBufList, 0);
}
Exemplo n.º 2
0
static void VdecVdis_bitsRdFillEmptyBuf(VCODEC_BITSBUF_S *pEmptyBuf, UInt32 resId)
{
    int statHdr, statData;
    int curCh;

    curCh = VdecVdis_getChnlIdFromBufSize(resId);

    if(gVdecVdis_obj.fpRdHdr[curCh] == NULL)
        return;

    if(gVdecVdis_config.fileInfo[curCh].enable == 0)
        return;

    pEmptyBuf->chnId    = curCh;

    statHdr  = fscanf(gVdecVdis_obj.fpRdHdr[curCh],"%d",&(pEmptyBuf->filledBufSize));
    
    OSA_assert(pEmptyBuf->filledBufSize <= pEmptyBuf->bufSize);

    statData = read(gVdecVdis_obj.fdRdData[curCh], pEmptyBuf->bufVirtAddr, pEmptyBuf->filledBufSize);

    if( feof(gVdecVdis_obj.fpRdHdr[curCh]) || statData != pEmptyBuf->filledBufSize )
    {
        #ifdef IPCBITS_OUT_HOST_DEBUG
        OSA_printf(" CH%d: Reached the end of file, rewind !!!", curCh);
        #endif
        clearerr(gVdecVdis_obj.fpRdHdr[curCh]);

        rewind(gVdecVdis_obj.fpRdHdr[curCh]);
  
        lseek(gVdecVdis_obj.fdRdData[curCh], 0, SEEK_SET);

        statHdr = fscanf(gVdecVdis_obj.fpRdHdr[curCh],"%d",&(pEmptyBuf->filledBufSize));
        
        OSA_assert(pEmptyBuf->filledBufSize <= pEmptyBuf->bufSize);
        statData = read(gVdecVdis_obj.fdRdData[curCh], pEmptyBuf->bufVirtAddr, pEmptyBuf->filledBufSize);
    }
}