av_read_frame 加 FF_INPUT_BUFFER_PADDING_SIZE 吗?

does av_read_frame add FF_INPUT_BUFFER_PADDING_SIZE?

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

av_read_frame(pFormatCtx, &packet)

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

The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than the actual read bytes because some optimized bitstream readers read 32 or 64 bits at once and could read over the end. The end of the input buffer buf should be set to 0 to ensure that no overreading happens for damaged MPEG streams.

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

谢谢。

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