> -----Original Message----- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Mark Thompson > Sent: Wednesday, August 21, 2019 04:49 > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH] lavf/vf_deinterlace_vaapi: flush > queued frame in field mode > > On 02/08/2019 10:53, Linjie Fu wrote: > > Add deint_vaapi_request_frame for deinterlace_vaapi, send NULL frame > > to flush the queued frame. > > > > Fix the frame drop issue in field mode: > > > > ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -v verbose -c:v > > h264 -i ./input.h264 -vf 'format=nv12|vaapi,hwupload, > > deinterlace_vaapi=mode=bob:rate=field,hwdownload,format=nv12' > > -pix_fmt yuv420p -f rawvideo -vsync passthrough -y dump.yuv > > > > Signed-off-by: Linjie Fu <linjie...@intel.com> > > --- > > libavfilter/vf_deinterlace_vaapi.c | 46 > ++++++++++++++++++++++++++++++++------ > > 1 file changed, 39 insertions(+), 7 deletions(-) > > Can you explain in more detail what the problem is here? What frame is > being dropped?
Would you please try this clips to see whether it could be reproduced on your side? https://drive.google.com/open?id=11FZlT0vl_GoGjlEuihpZHgbwgVA7yGUV $ ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi -v verbose -c:v h264 -i ./input.h264 -vf 'hwupload,deinterlace_vaapi=mode=bob:rate=frame' -f null - 2 frames $ ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi -v verbose -c:v h264 -i ./input.h264 -vf 'hwupload,deinterlace_vaapi=mode=bob:rate=field' -f null - Before applying: 2 frames After applying: 4 frames > With this patch applied, the filter always segfaults for me at the end of the > stream when set to field rate: This patch just sends a NULL frame to deint_vaapi_request_frame() at the end. Since the input_frame is not NULL in the log, it's kind of weird if it triggers a segfault. Is it possible to share the clips to reproduce this? > $ gdb --args ./ffmpeg_g -hwaccel vaapi -hwaccel_device > /dev/dri/renderD129 -hwaccel_output_format vaapi -i f100.mp4 -an -vf > deinterlace_vaapi=rate=field -f null - > ... > Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. > 0x0000555555755fb1 in deint_vaapi_filter_frame (inlink=0x555559092300, > input_frame=0x555558d42000) at src/libavfilter/vf_deinterlace_vaapi.c:227 > 227 ctx->frame_queue[current_frame_index + i + 1]->data[3]; > (gdb) bt > #0 0x0000555555755fb1 in deint_vaapi_filter_frame (inlink=0x555559092300, > input_frame=0x555558d42000) at src/libavfilter/vf_deinterlace_vaapi.c:227 Thanks for the response. - linjie _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".