Marton Balint (12019-08-24): > avio_feof() returns true both in case of actual EOF and in case of IO errors. > Some demuxers (matroska) have special handling to be able to return the proper > error for this exact reason, e.g.: > > if (avio_feof(pb)) { > if (pb->error) { > return pb->error; > } else { > return AVERROR_EOF; > } > } > > However, most of the demuxers do not, and they simply return AVERROR_EOF if > avio_feof() is true, so there is a real chance that IO errors are mistaken for > EOF. > > We might just say that the API user should always check the IO context error > attribute on EOF to make sure no IO errors happened, but not even ffmpeg.c > does > this. It should be more intuitive to the API user if we simply return the IO > error as the return value of av_read_frame() instead of AVERROR_EOF.
I am not very happy with this. It might be a short-term mitigation of the problem, but the real issue is that demuxers do not correctly do their error checking, ant that needs to be fixed. I am not opposing this patch, but I think it is important to keep that in mind. Regards, -- Nicolas George
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".