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 <[email protected]>
> ---
>  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.

-- 
Anton Khirnov
_______________________________________________
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".

Reply via email to