[Libav-user] [dnxhd] Internal error, put_bits buffer too small

Jonathan Noble jonnobleuk at gmail.com
Thu Oct 3 00:02:11 EEST 2019


Hi,

I am trying to encode to dnxhd with libavcodec. The result is quite glitchy
with stuttering and anomalies on most frames.

During encoding I see the following message almost continuously.

> Internal error, put_bits buffer too small

I have tried to understand what this buffer is, how it is set up and I am
struggling. From what I can understand the puts_bit buffer is
DNXHDEncContext->m->pb which is initialised via init_put_bits() in
dnxhd_encode_thread().

The 2 arguments used in init_put_bits() are DNXHDEncContext->slice_offs and
DNXHDEncContext->slice_size. These 2 are configured in
dnxhd_setup_thread_slices() with 2 variables MpegEncContext->mb_width and
MpegEncContext->mb_bits.

If my understanding is correct the 2 aforementioned variables in
MpegEncContext are the variables I need to set. However, I have no idea
what they mean or how they are accessed outside of
AVCodecContext->priv_data.

Is my understanding correct? How does one setup the puts_bit buffer
correctly for a dnxhd encode?

Kind regards

Jon Noble
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20191002/cbec3421/attachment.html>


More information about the Libav-user mailing list