[FFmpeg-devel] [PATCH 1/2] lavc/encode: improve the empty frame check
James Almer
jamrial at gmail.com
Mon Dec 13 15:56:23 EET 2021
On 12/13/2021 10:30 AM, Anton Khirnov wrote:
> 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.
Oh, this is checking the already buffered frame, not the input one.
Nevermind then.
More information about the ffmpeg-devel
mailing list