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

Attachment: 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".

Reply via email to