在documentation for avcodec_decode_video2中,它会发出以下警告:
警告:
输入缓冲区必须大于FF_INPUT_BUFFER_PADDING_SIZE 实际读取字节,因为一些优化的比特流 读者一次读取32或64位,并可以读取结束。该 输入缓冲区buf的结尾应该设置为0以确保没有 对于损坏的MPEG流,会发生重读。
如果没有实现,这会在发生重读时导致分段错误吗?或者它是否可能导致奇怪的腐败?我很好奇,因为我有腐败,我不确定这是否可能导致我的问题。
答案 0 :(得分:2)
它不一定会导致分段错误,但它会undefined behavior
,因为这些读者会读取未分配的内存。这可能会使程序立即崩溃,或者工作一段时间,甚至看起来工作正常:您永远无法确定undefined behavior
是什么时候。