1

avcodec_decode_video2 的文档中,它给出了以下警告:

警告:

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

如果这没有实现,当发生过度读取时会导致分段错误吗?或者它可能会导致奇怪的腐败?我只是好奇,因为我有腐败,我不确定这是否可能导致我的问题。

4

1 回答 1

2

它不一定会导致分段错误,但它会undefined behavior,因为这些读取器将读取未分配的内存。这可能会使程序立即崩溃,或者工作一段时间,甚至看起来工作正常:你永远无法确定何时undefined behavior.

于 2013-09-17T18:44:48.813 回答