VLC3: Crash when playing an interlaced video with certain video filters loaded
When playing an interlaced video with certain video filters - VLC crashes, but with it disabled - VLC plays it correctly.
Environment:
- VLC 3.0.21
- Linux x86_64
- Intel iGPU, no dedicated GPU
Steps to reproduce:
- Set VLC hardware-accelerated decoding to Disable
- Enable the built-in "FPS conversion video filter" (no other video filters are enabled)
- Restart VLC
- Play
McCartney-MPEG2_1080-interlaced_sample.mkvinterlaced video from this forum post - Observe the crash
Syslog contains:
Jan 24 08:15:14 debian kernel: [769976.274648] vlc[2385030]: segfault at 10 ip 00007fa6342ab1eb sp 00007fa6343b47a0 error 4 in libgl_plugin.so[7fa6342a2000+c000]
Here is the VLC log: vlc-fps.log
It's also reproducible using an out-of-tree dummy video filter plugin that doesn't do anything:
#include <vlc_common.h>
#include <vlc_filter.h>
#include <vlc_plugin.h>
static int Create(vlc_object_t *);
static void Destroy(vlc_object_t *);
vlc_module_begin()
set_description("Noop video filter")
set_shortname("Noop video filter")
set_capability("video filter", 0)
set_category(CAT_VIDEO)
set_subcategory(SUBCAT_VIDEO_VFILTER)
set_callbacks(Create, Destroy)
vlc_module_end()
static picture_t *filter(filter_t *p_filter, picture_t *p_pic_in)
{
// don't filter anything, return as it is
return p_pic_in;
}
static int Create(vlc_object_t *p_this)
{
filter_t *p_filter = (filter_t *)p_this;
if (p_filter->fmt_out.video.i_chroma != p_filter->fmt_in.video.i_chroma) {
msg_Err(p_filter, "this filter doesn't do video conversion");
return VLC_EGENERIC;
}
p_filter->pf_video_filter = filter;
return VLC_SUCCESS;
}
static void Destroy(vlc_object_t *p_this)
{
}
Edited by nurupo