When decode some frames normally, such as 18 frames or so, then
IpcBitsOutLink_getEmptyVideoBitStreamBufs will never return an empty buffer,
and dsp can not give user software a destination for decode bitstream.
What is the possible reason? Thanks!
My Create param below:
#if 1
System_LinkQueInfo queInfo;
UCHAR ucnumCh = gblGetMixDecChanNums(0);
queInfo.numCh = ucnumCh;
for(i=0; i<ucnumCh; i++)
{
queInfo.chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDBITSTREAM;
queInfo.chInfo[i].codingformat = gblGetVideoDecType(0);
queInfo.chInfo[i].memType = SYSTEM_MT_TILEDMEM;
queInfo.chInfo[i].dataFormat = SYSTEM_DF_YUV420P;
queInfo.chInfo[i].startX = 0;
queInfo.chInfo[i].startY = 0;
queInfo.chInfo[i].pitch[0] = 0;
queInfo.chInfo[i].pitch[1] = 0;
queInfo.chInfo[i].pitch[2] = 0;
queInfo.chInfo[i].width = gblGetVideoDecImageWidth(0);
queInfo.chInfo[i].height = gblGetVideoDecImageHeight(0);
queInfo.chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE;
ipcBitsOutHostPrm.numBufPerCh[i] = 24;
}
ipcBitsOutHostPrm.baseCreateParams.numOutQue = 1;
ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink = ipcBitsInVideoId;
ipcBitsOutHostPrm.bufPoolPerCh = TRUE;//FALSE;
Chains_ipcBitsInitCreateParams_BitsOutHLOS(&ipcBitsOutHostPrm,&queInfo);
#endif
for(i=0; i<ucnumCh; i++) //固定创建最多的16路1080p60解码
{
decPrm.chCreateParams[i].format = gblGetVideoDecType(0);
decPrm.chCreateParams[i].profile = IH264VDEC_PROFILE_ANY;
decPrm.chCreateParams[i].targetMaxWidth = 1920;
decPrm.chCreateParams[i].targetMaxHeight = 1080;
decPrm.chCreateParams[i].fieldMergeDecodeEnable = FALSE;
decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = 60;
decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate = 8*1000*1000;
decPrm.chCreateParams[i].numBufPerCh = 6;
}
the question is below
Bitstream_BufList gemptyBufList;
reqInfo.numBufs = 1;
reqInfo.u[0].minBufSize = bitBufSize;
reqInfo.u[0].chNum = ulDecChan;
reqInfo.reqType = IPC_BITSOUTHLOS_BITBUFREQTYPE_CHID;
IpcBitsOutLink_getEmptyVideoBitStreamBufs(SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0,
&gemptyBufList,
&reqInfo);
the return gemptyBufList.numBufs is always 0 buf