does av_read_frame add FF_INPUT_BUFFER_PADDING_SIZE?

does av_read_frame add FF_INPUT_BUFFER_PADDING_SIZE?

本文关键字:BUFFER PADDING SIZE INPUT add av read frame does FF      更新时间:2023-10-16

我正在使用libav读取MPEG流
我正在使用函数av_read_frame()将一些帧读取到数据包中:

av_read_frame(pFormatCtx, &packet)

然后,我使用函数avcodec_decode_video2将分组解码为帧
函数avcodec_decode_video2的文档包含以下警告:

输入缓冲区的FF_input_buffer_PADDING_SIZE必须大于实际读取字节,因为一些优化的比特流读取器读取32或一次64位,并且可以在末尾读取。输入的末尾缓冲区buf应设置为0,以确保不会发生重写用于损坏的MPEG流。

我想知道函数av_read_frame是否还没有分配额外的FF_INPUT_BUFFER_PADDING_SIZE?

谢谢。

是的,av_read_frame()总是为您添加FF_INPUT_BUFFER_PADDING_SIZE。如果您使用自己的去复用数据作为avcodec_decode_video2()的输入,例如,如果您编写自己的解复用器(就像VLC或mplayer所做的那样),您只需要关心这一点。