[FFmpeg-devel] [PATCH 1/2] lavc/encode: improve the empty frame check

James Almer jamrial at gmail.com
Mon Dec 13 13:40:49 EET 2021


On 12/13/2021 7:47 AM, Anton Khirnov wrote:
> Test for buf[0] rather than data[0] (which is broken for some hwaccel
> formats).
> ---
>   libavcodec/encode.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavcodec/encode.c b/libavcodec/encode.c
> index dd25cf999b..5575cf23db 100644
> --- a/libavcodec/encode.c
> +++ b/libavcodec/encode.c
> @@ -366,7 +366,7 @@ int attribute_align_arg avcodec_send_frame(AVCodecContext *avctx, const AVFrame
>       if (avci->draining)
>           return AVERROR_EOF;
>   
> -    if (avci->buffer_frame->data[0])
> +    if (avci->buffer_frame->buf[0])

(avci->buffer_frame->buf[0] || (avci->buffer_frame->data[0]). Right now 
you can pass it a non reference counted frame which will be made into 
one by av_frame_ref() when stored in the encode context for processing, 
which the doxy allows, and this patch as is will break it.

>           return AVERROR(EAGAIN);
>   
>       if (!frame) {
> 



More information about the ffmpeg-devel mailing list