ffmpeg如何判读一帧(AVPacket)不完整
现在手上有个程序用ffmpeg从网络接收TS流, 然后通过av_read_frame()分离出一帧帧的音视频帧(TS术语中叫ES),保存在一个个的AVPacket中, 再通过av_decode_video把AVpacket中的数据解码到 AVFrame中,再把AVFrame中的yuv420数据渲染到屏幕上。
因为网络会丢包,可能会丢掉几个TS包,这样av_read_frame分离出来的帧数据就会不完整。
问题是:我现在能知道一个AVpacket中的实际大小,但我不知道这个AVPacket应该是多大,因此我无法判断这个AVPacket到底完整不?
补充:理论上PES包头有这个ES的总大小,但TS官方文档说这个pes_packet_size数据段也可能为0。那么我通过什么方法知道这个AVPacket(ES)丢失了数据,不完整呢。
不胜感激!