我正在阅读avcodec documentation,我试图理解MPEG流被损坏的含义。它提到:
输入缓冲区buf的结尾应设置为0,以确保对损坏的MPEG流不会发生过度读取。
那么如果输入缓冲区的末尾未设置为0会发生什么?这会引发腐败吗?
答案 0 :(得分:1)
要找到答案,你可以查看为这种编解码器读取缓冲区的代码 - 这里avcodec
似乎缓冲区中填充了许多帧,并且在每帧数据的末尾都有一个字节数。如果将其设置为零,则在MPEG流的某种损坏的情况下,解码器将不会继续读取未初始化的存储器。由于编码错误,传输错误或存储介质上的(很少)毛刺,这些流可能被破坏。这是防御性编程的一个很好的例子。