vdr crashes deterministically when starting a playback under the following circumstances:
the current channel is deinterlaced by vaapi (for me: motion-compensated). Instanty, after starting a playbay, vaapidevice crashes. If I disable deinterlacing, everything works. Attached is a backtrace and the system info:
BACKTRACE
Thread 14 "vaapi video" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 9116]
0x00007fd431b14a01 in ?? () from /lib64/libdrm_intel.so.1
(gdb) bt
#0 0x00007fd431b14a01 in () at /lib64/libdrm_intel.so.1
#1 0x00007fd431dcaec5 in intel_batchbuffer_emit_reloc64 ()
at /usr/lib64/dri/i965_drv_video.so
#2 0x00007fd431d817df in bdw_veb_dndi_iecp_command ()
at /usr/lib64/dri/i965_drv_video.so
#3 0x00007fd431d819f0 in gen8_vebox_process_picture ()
at /usr/lib64/dri/i965_drv_video.so
#4 0x00007fd431d7c550 in gen75_proc_picture ()
at /usr/lib64/dri/i965_drv_video.so
#5 0x00007fd46c750d44 in vaEndPicture () at /lib64/libva.so.2
#6 0x00007fd44d357000 in VaapiPostprocessSurface (ctx=33554433, src=<optimized out>, dst=67108895, filters=filters@entry=0x7fd4267fb5f0, num_filters=<optimized out>, filter_flags=filter_flags@entry=40, pipeline_flags=0, frefs=0x55c51bf9bd70, num_frefs=1, brefs=0x7fd40c000c40, num_brefs=0) at video.c:1721
#7 0x00007fd44d357e71 in VaapiPostprocessSurface (num_brefs=0, brefs=<optimized out>, num_frefs=1, frefs=<optimized out>, pipeline_flags=0, filter_flags=40, num_filters=<optimized out>, filters=0x7fd4267fb5f0, dst=<optimized out>, src=<optimized out>, ctx=<optimized out>) at video.c:1681
#8 0x00007fd44d357e71 in VaapiApplyFilters (decoder=decoder@entry=0x55c51b4c3050, top_field=<optimized out>) at video.c:1875
#9 0x00007fd44d358281 in VaapiQueueSurface (
decoder=decoder@entry=0x55c51b4c3050, surface=surface@entry=67108867, softdec=0) at video.c:3083
#10 0x00007fd44d358e7f in VaapiRenderFrame (decoder=decoder@entry=0x55c51b4c3050, video_ctx=video_ctx@entry=0x7fd40c018080, frame=frame@entry=0x7fd40c09b900)
at video.c:3332
#11 0x00007fd44d359b79 in VaapiSyncRenderFrame (decoder=0x55c51b4c3050, video_ctx=0x7fd40c018080, frame=0x7fd40c09b900) at video.c:3850
#12 0x00007fd44d360d43 in CodecVideoDecode (decoder=0x55c51fc7c270, avpkt=avpkt@entry=0x7fd44d572b20 <MyVideoStream+13344>) at codec.c:284
#13 0x00007fd44d351d11 in VideoDecodeInput (stream=0x7fd44d56f700 <MyVideoStream>) at vaapidev.c:963
#14 0x00007fd44d35690d in VaapiDisplayHandlerThread () at video.c:3929
#15 0x00007fd44d35c184 in VideoDisplayHandlerThread (dummy=<optimized out>)
at video.c:4555
#16 0x00007fd4743c7594 in () at /lib64/libpthread.so.0
#17 0x00007fd472a13fdf in clone () at /lib64/libc.so.6
(gdb) frame 6
#6 0x00007fd44d357000 in VaapiPostprocessSurface (ctx=33554433,
src=<optimized out>, dst=67108895, filters=filters@entry=0x7fd4267fb5f0,
num_filters=<optimized out>, filter_flags=filter_flags@entry=40,
pipeline_flags=0, frefs=0x55c51bf9bd70, num_frefs=1, brefs=0x7fd40c000c40,
num_brefs=0) at video.c:1721
1721 vaEndPicture(VaDisplay, ctx);
(gdb) frame 7
#7 0x00007fd44d357e71 in VaapiPostprocessSurface (num_brefs=0,
brefs=<optimized out>, num_frefs=1, frefs=<optimized out>,
pipeline_flags=0, filter_flags=40, num_filters=<optimized out>,
filters=0x7fd4267fb5f0, dst=<optimized out>, src=<optimized out>,
ctx=<optimized out>) at video.c:1681
1681 if (src == VA_INVALID_ID || dst == VA_INVALID_ID || src == dst)
(gdb) frame 8
#8 VaapiApplyFilters (decoder=decoder@entry=0x55c51b4c3050,
top_field=<optimized out>) at video.c:1875
1875 VaapiPostprocessSurface(decoder->vpp_ctx, decoder->PlaybackSurface, *surface, filters_to_run, filter_count,
(gdb) frame 9
#9 0x00007fd44d358281 in VaapiQueueSurface (
decoder=decoder@entry=0x55c51b4c3050, surface=surface@entry=67108867,
softdec=0) at video.c:3083
3083 firstfield = VaapiApplyFilters(decoder, decoder->TopFieldFirst ? 1 : 0);
(gdb) frame 10
#10 0x00007fd44d358e7f in VaapiRenderFrame (
decoder=decoder@entry=0x55c51b4c3050,
video_ctx=video_ctx@entry=0x7fd40c018080, frame=frame@entry=0x7fd40c09b900)
at video.c:3332
3332 VaapiQueueSurface(decoder, surface, 0);
(gdb) frame 11
#11 0x00007fd44d359b79 in VaapiSyncRenderFrame (decoder=0x55c51b4c3050,
video_ctx=0x7fd40c018080, frame=0x7fd40c09b900) at video.c:3850
3850 VaapiRenderFrame(decoder, video_ctx, frame);
(gdb) frame 12
#12 0x00007fd44d360d43 in CodecVideoDecode (decoder=0x55c51fc7c270,
avpkt=avpkt@entry=0x7fd44d572b20 <MyVideoStream+13344>) at codec.c:284
284 VideoRenderFrame(decoder->HwDecoder, video_ctx, frame);
vdr crashes deterministically when starting a playback under the following circumstances:
the current channel is deinterlaced by vaapi (for me: motion-compensated). Instanty, after starting a playbay, vaapidevice crashes. If I disable deinterlacing, everything works. Attached is a backtrace and the system info:
BACKTRACE
VAAPIDEVICE SYSTEM INFORMATION REPORT
inxi
vainfo
ffmpeg
gcc
svdrpsend
INCLUDE THIS REPORT INTO YOUR GITHUB ISSUE
Dirk