[FFmpeg-devel] [PATCH, v2] lavf/vf_deinterlace_vaapi: flush queued frame for field in DeinterlacingBob

Mark Thompson sw at jkqxz.net
Sun Jan 9 20:32:07 EET 2022


On 29/12/2021 03:45, Xiang, Haihao wrote:
>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Linjie
>> Fu
>> Sent: Wednesday, September 18, 2019 16:20
>> To: ffmpeg-devel at ffmpeg.org
>> Cc: Fu, Linjie <linjie.fu at intel.com>
>> Subject: [FFmpeg-devel] [PATCH, v2] lavf/vf_deinterlace_vaapi: flush queued
>> frame for field in DeinterlacingBob
>>
>> For DeinterlacingBob mode with rate=field, the frame number of output
>> should equal 2x input total since only intra deinterlace is used.
>>
>> Currently for "backward_ref = 0, rate = field", extra_delay is
>> introduced. Due to the async without flush, frame number of output is
>> [expected_number - 2].
>>
>> Specifically, if the input only has 1 frame, the output will be empty.
>>
>> Add deint_vaapi_request_frame for deinterlace_vaapi, send NULL frame
>> to flush the queued frame.
>>
>> For 1 frame input in Bob mode with rate=field,
>> before patch: 0 frame;
>> after  patch: 2 frames;
>>
>> ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128
>>          -hwaccel_output_format vaapi -i input.h264 -an -vf
>>          deinterlace_vaapi=mode=bob:rate=field -f null -
> 
> Sorry for picking up the old thread.
> 
> Hi Mark,
> 
> Is your issue mentioned in http://ffmpeg.org/pipermail/ffmpeg-devel/2019-September/250080.html
> fixed by this patch version ? I'd like to apply this patch if it may work for you.

Yep, it now gives the expected number of frames and I do not have any segfaults.

I tested drivers with { forward = 0, backward = 0 } (iHD), { forward = 1, backward = 0 } (i965) and { forward = 2, backward = 1 } (gallium).

Thanks,

- Mark


More information about the ffmpeg-devel mailing list