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.

Bitrate changes ineffective with IPNC 2.8 encoder?

I am using a custom board that contains a DM8127 and testing the H.264 encoder in IPNC RDK 2.8.  I've  tried setting various target and max bit rates, but they seem to have very little effect on the size of the encoder output.  I'm reading a YUV file on the A8, sending it to the encoder on the Video M3, getting the encoded output back on the A8 and writing it to a file.  I've tried setting chCreateParams[i].maxBitRate and chCreateParams[i].defaultDynamicParams.targetBitRate in EncLink_CreateParams to values from 0.1 to 100 Mbps, and setting chCreateParams[i].rateControlPreset to both IVIDEO_LOW_DELAY and IVIDEO_STORAGE.  These have resulted in a change to the size of the encoded file of, at most, 0.16%.

Am I missing something?  Why do the bitrate values have virtually no effect on the size of the encoder output?  Thanks!

  • I changed pLinkDynPrm->targetBitRate in the usecase file, the result is just as expected.

  • Hello,

    Firstly, v2.8 is the almost an year old release, can you please migrate to latest version v3.5 . Please contact Appro or local FAE for latest drop.

    We have updated codecs and fixes for it in the latest one.

    From bitrate standpooint changing the bitrate in dynamic paramters of the codecs should take effect.

    Also, in file stream.c, please use the BITRATE changing switch->case statements where these API are called from McFW layer.

    Regards,

    Raghu

  • Thank you, Raghu.  The code in stream.c showed the problem.  Apparently, just setting defaultDynamicParams.targetBitRate in the EncLink_CreateParams passed when the encoder link is created is not sufficient.  I had to also make a Venc_setDynamicParam(..., VENC_BITRATE) call after the encoder was started to get the bit rate I wanted.