在avcodec_decode_video2的文档中,它给出以下警告:
警告:
输入缓冲区必须比实际读取的字节大FF_INPUT_BUFFER_PADDING_SIZE,因为某些优化的位流读取器会一次读取32或64位,并且可能会读取到最后。输入缓冲区buf的末尾应设置为0,以确保损坏的MPEG流不会发生过度读取。
如果不执行此操作,会在发生超读时导致分段错误吗?还是可能导致奇怪的腐败?我只是好奇,因为我有腐败,而且我不确定这是否可能导致我的问题。
不一定会导致分段错误,但可能是undefined behavior
,因为这些读取器将读取未分配的内存。这可能会使程序立即崩溃,或工作一段时间,甚至看起来运行良好:您永远无法确定它何时到undefined behavior
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句