This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Forced I-frame


We use DVR RDK 03.00.00.00 / DM8168 UDWorks platfom based design.
We capture PAL video in D1 / 25 fps.
The dynamic encoder settings are:
 frameRate = 25
 targetBitRate = 500000
 intraFrameInterval = 25

I try to use Venc_forceIDR(chId, 0) to force I-frames for new recording sequences.
I expected a time < frame duration (40 ms) till a new I-frame occurs.
But I measured time in a range from 20 ... 300 milli seconds until a forced I-frame will arrive via VCODEC_BITSBUF_S buffer.
Is this a typical behavior ?


 

  • When the forceIDR frame cmd is sent the next encoded frame will be forced to IDR frame. When you receive the encoded frame depends on the number of channels and number of input and output encoder buffers. Time will vary but I think 300 ms is quite large. Anyway the way to confirm if force I-frame is taking effect is to examine the GOP structure and check you have a GOP smaller than your default intraFrameInterval .

     

  • I use the forced I-frame to initiate a new video recoding sequence.
    The new sequence must start with an I-frame. The old sequence is recording until
    the next I-frame occurs. This can happen by forcing the I-frame or if the I-frame
    is in GOP. The time from enabing a change of sequence until the next I-frame arrive
    is variable but it should be as short as possible.