vo_gpu_next: use pl deinterlace shader for bwdif instead of sw filter#17394
vo_gpu_next: use pl deinterlace shader for bwdif instead of sw filter#17394llyyr wants to merge 1 commit intompv-player:masterfrom
Conversation
filters/f_auto_filters.c
Outdated
| // We check also if a filter is already present, to avoid removing it | ||
| bool filter_needed = opts->deinterlace == 1 || | ||
| (opts->deinterlace == -1 && (p->interlaced_frame || p->sub.filter)); | ||
| bool filter_needed = (info && info->deinterlace) && (opts->deinterlace == 1 || |
There was a problem hiding this comment.
Isn't this flipped? We don't want filter when deinterlace is supported. Also we might still prefer hardware deint. Might actually need an option, not sure.
There was a problem hiding this comment.
Made it only override the software filter, still crashes with hwdec however. I won't have time to look at this for a bit
There was a problem hiding this comment.
Hardware Intel deint should be always preferred. Just need this fixed. #15197
Works on FFmpeg correctly on Linux
ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -v debug -f rawvideo -pix_fmt yuv420p -s:v 720x480 -top 1 -i MotionTest_i_tff_720x480_10f_I420.yuv -vf 'format=nv12,hwupload,deinterlace_vaapi=mode=weave:rate=field,hwdownload,format=nv12' -pix_fmt yuv420p -vframes 20 -y dump.yuv
|
Yes, for some reason bwdif_vulkan stopped working for me after around FFmpeg 7.1, just outputs a green screen instead. No idea what happened but libplacebo's deinterlacing works. |
a5e1c86 to
0939147
Compare
Currently a draft because it breaks when changing hwdec during runtime
|
This should be implemented such that it's possible to output full frame rate (60i -> 60p), instead of every other frame. |
Currently a draft because it breaks when changing hwdec during runtime