I tried to 8 channel display in networking multithread-environment(1 channel = 1 thread). The codec is H264.
I used Vdec_requestBitStreamBuffer(VDEC_BUF_REQUEST_S * bufReq, VCODEC_BITSBUF_LIST_S *pBitsBufList, UInt32 timeout) function to get buffer. Each thread called Vdec_requestBitStreamBuffer() function as 30fps. I used DVRRDK_V03.00.00.00.
I assigned struct 'bufReq' to this.
bufReq->numBufs = 1
bufReq->reqType = VDEC_BUFREQTYPE_CHID;
bufReq->u[0].chNum = channelNumber;
I tried to displaying 30fps per channel, but decoder buffer getting has failed frequently. Image resolution is 352x288. I thinked when pBitsBufList->numBufs's value has 0, buffer getting is failed.
When the value is 0, if decoder is tried to decoding P frame, decoded P frame is broken until next I frame has coming.
I want to know variable VDEC_BUF_REQUEST_S::numBufs's role. According to DVR RDK API Guide, it's role is 'Number of empty buffers needed from decode framework'. Does it means "How many have decoding channel at once? " or "How many have buffer per channel?"
And, I hope to know how to displaying 30fps per channel with no buffer getting fail.
Thank you.