[FFmpeg-devel] [PATCH 5/5] avcodec/decode: EAGAIN is not fully supported in decode_simple_internal()

James Almer jamrial at gmail.com
Tue Sep 19 02:30:58 EEST 2023


On 9/18/2023 7:35 PM, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>   libavcodec/decode.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index 169ee79acd9..376e4a4d373 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -457,6 +457,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
>       if (ret == AVERROR(EAGAIN))
>           av_frame_unref(frame);
>   
> +    av_assert0(consumed != AVERROR(EAGAIN)); // code later will add AVERROR(EAGAIN) to a pointer

FF_CODEC_CB_TYPE_DECODE decoders must not return EAGAIN or EOF, only 
actual error codes. IMO that should be stated too.

>       if (consumed < 0)
>           ret = consumed;
>       if (consumed >= 0 && avctx->codec->type == AVMEDIA_TYPE_VIDEO)

LGTM.


More information about the ffmpeg-devel mailing list