[FFmpeg-devel] [PATCH] lavf/async: Fix wrapped_url_read return value

Guangyu Sun gsun at roblox.com
Thu Sep 29 21:15:02 EEST 2022


On Wed, Sep 28, 2022 at 7:08 AM Anton Khirnov <anton at khirnov.net> wrote:
>
> Quoting Guangyu Sun (2022-09-19 07:22:39)
> > This fixes a regression from commit 36117968ad.
> >
> > wrapped_url_read() used to be able to return positive number from
> > ffurl_read(). It relies on the result to check if EOF is reached in
> > async_buffer_task().
> >
> > Test case:
> >   ffmpeg -f lavfi -i testsrc -t 1 test.mp4
> >   ffmpeg -i async:test.mp4
> >
> > Signed-off-by: Guangyu Sun <gsun at roblox.com>
> > ---
> >  libavformat/async.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavformat/async.c b/libavformat/async.c
> > index 547417aa1e..a929f4d16e 100644
> > --- a/libavformat/async.c
> > +++ b/libavformat/async.c
> > @@ -139,7 +139,7 @@ static int wrapped_url_read(void *src, void *dst, size_t *size)
> >      *size             = ret > 0 ? ret : 0;
> >      c->inner_io_error = ret < 0 ? ret : 0;
> >
> > -    return c->inner_io_error;
> > +    return ret;
>
> This is wrong, FIFO callbacks must return 0 on success. This should be
> handled in ring_write() instead.

Thanks. I just submitted a new version.

Guangyu

>
> --
> Anton Khirnov


More information about the ffmpeg-devel mailing list