什么是损坏的MPEG流?

时间:2013-09-09 14:08:21

标签: c++ ffmpeg mpeg avcodec

我正在阅读avcodec documentation,我试图理解MPEG流被损坏的含义。它提到:

  

输入缓冲区buf的结尾应设置为0,以确保对损坏的MPEG流不会发生过度读取。

那么如果输入缓冲区的末尾未设置为0会发生什么?这会引发腐败吗?

1 个答案:

答案 0 :(得分:1)

要找到答案,你可以查看为这种编解码器读取缓冲区的代码 - 这里avcodec

似乎缓冲区中填充了许多帧,并且在每帧数据的末尾都有一个字节数。如果将其设置为零,则在MPEG流的某种损坏的情况下,解码器将不会继续读取未初始化的存储器。由于编码错误,传输错误或存储介质上的(很少)毛刺,这些流可能被破坏。这是防御性编程的一个很好的例子。