C++ 什么是损坏的MPEG流?

C++ 什么是损坏的MPEG流?,c++,ffmpeg,mpeg,avcodec,C++,Ffmpeg,Mpeg,Avcodec,我正在通读,我试图理解MPEG流被破坏意味着什么。它提到: 输入缓冲区buf的末尾应设置为0,以确保损坏的MPEG流不会发生过度读取 那么,如果输入缓冲区的结尾未设置为0,会发生什么情况?这是否可能导致损坏?要找到答案,您可以查看读取此类编解码器缓冲区的代码-此处 似乎缓冲区中充满了大量的帧,在每一帧数据的末尾都有下一帧数据的字节计数。如果该值设置为零,则在MPEG流发生某种损坏的情况下,解码器将不会继续读取未初始化的内存。由于存储介质上的编码错误、传输错误或(很少)故障,这些流可能会损坏。这是

我正在通读,我试图理解MPEG流被破坏意味着什么。它提到:

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


那么,如果输入缓冲区的结尾未设置为0,会发生什么情况?这是否可能导致损坏?

要找到答案,您可以查看读取此类编解码器缓冲区的代码-此处

似乎缓冲区中充满了大量的帧,在每一帧数据的末尾都有下一帧数据的字节计数。如果该值设置为零,则在MPEG流发生某种损坏的情况下,解码器将不会继续读取未初始化的内存。由于存储介质上的编码错误、传输错误或(很少)故障,这些流可能会损坏。这是防御性编程的一个很好的例子