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

Anton Khirnov anton at khirnov.net
Mon Dec 13 15:30:32 EET 2021


Quoting James Almer (2021-12-13 12:40:49)
> 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.

Will it? As you said - av_frame_ref() ensures buffer_frame is always
refcounted.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list