diff --git a/framework/demuxer/avFormatDemuxer.cpp b/framework/demuxer/avFormatDemuxer.cpp index 4a21d3dbe..24ce6a782 100644 --- a/framework/demuxer/avFormatDemuxer.cpp +++ b/framework/demuxer/avFormatDemuxer.cpp @@ -240,7 +240,6 @@ namespace Cicada { } if (mCtx->pb && mCtx->pb->error == FRAMEWORK_ERR_EXIT) { - mCtx->pb->error = 0; av_packet_free(&pkt); return FRAMEWORK_ERR_EXIT; } @@ -466,6 +465,10 @@ namespace Cicada { if (mInterruptCb) { mInterruptCb(mUserArg, 0); } + if(mCtx->pb->error < 0) { + mCtx->pb->error = 0; + avio_feof(mCtx->pb); + } mPacketQueue.clear(); mError = 0;