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); }
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); } }