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 [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
