AVPacket pkt
//不知道pkt是否完整。
ret = av _ read _ frame(f-& gt;CTX & amp;PKT);
if (ret == AVERROR(EAGAIN)) {
av _ us LEEP(10000);
繼續;
}
if(ret & lt;0) {
av _ thread _ message _ queue _ set _ err _ recv(f-& gt;in_thread_queue,ret);
打破;
}
}
FFMpeg不提供接口,妳得修改FFMpeg源代碼。在瀏覽了壹天的FFMpeg源代碼後,外部接口只需要在AVPacket結構中增加壹個flag變量來判斷包的完整性。修改源代碼後的接口調用如下:
while (1) {
AVPacket pkt
ret = av _ read _ frame(f-& gt;CTX & amp;PKT);
if (pkt.nLostPackets) {
//做點什麽。
}否則{
//做點什麽
}
}