[FFmpeg-devel] [PATCH] avformat/matroskadec: return AVERROR(EIO) rather than AVERROR_EOF on parse error

Sophia Wang skw at google.com
Mon Aug 1 23:22:39 EEST 2016


Thanks for the quick response. matroska_resync() is currently written to
only return AVERROR_EOF, so using that error code directly wouldn't be any
more informative. But your suggestion would work if matroska_resync() kept
the error code returned by avio_seek(). Would such a change warrant
splitting into a separate patch?

On Sun, Jul 31, 2016 at 10:26 AM, Nicolas George <george at nsup.org> wrote:

> Le quartidi 14 thermidor, an CCXXIV, Sophia Wang a écrit :
> > Since matroska->done is only set to 1 in matroska_resync(), the choice
> > of error is made by checking the return value of matroska_resync()
> > rather than checking matroska->done directly on the next
> > while-iteration.
>
> This is not what your code do:
>
> > +            if (matroska_resync(matroska, pos) < 0)
> > +                return avio_feof(s->pb) ? AVERROR_EOF : AVERROR(EIO);
>
> It checks the return value of matroska_resync() and then invents a
> completely unrelated error code.
>
> What it should do is use the error code from matroska_resync(). As simple
> as
> that.
>
> Regards,
>
> --
>   Nicolas George
>


More information about the ffmpeg-devel mailing list