vaav1dec: Crash with an AV1 test stream on Intel GPU
vaav1dec
is crashing with av1-1-b8-22-svc-L2T2.ivf
stream which is one of AV1 test vector of fluster
Note that vaapiav1dec
works fine
pipeline:
gst-launch-1.0 filesrc location=resources/AV1-TEST-VECTORS/av1-1-b8-22-svc-L2T2/av1-1-b8-22-svc-L2T2.ivf ! ivfparse ! av1parse ! vaav1dec ! videoconvert ! video/x-raw,format=I420 ! fakesink
callstack:
Thread 2 "ivfparse0:sink" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff3faf640 (LWP 13597)]
0x00007ffff4aa88bd in ?? () from /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
(gdb) bt
#0 0x00007ffff4aa88bd in () at /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
#1 0x00007ffff4993596 in () at /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
#2 0x00007ffff499a641 in () at /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
#3 0x00007ffff64bbe84 in vaSyncSurface () at /lib/x86_64-linux-gnu/libva.so.2
#4 0x00007ffff64f3736 in va_sync_surface (display=display@entry=0x5555559e5690, surface=surface@entry=11) at ../subprojects/gst-plugins-bad/gst-libs/gst/va/vasurfaceimage.c:203
#5 0x00007ffff64f39bc in va_ensure_image (display=display@entry=0x5555559e5690, surface=11, info=info@entry=0x7fffec24eab0, image=image@entry=0x7fffec0323b8, derived=derived@entry=0)
at ../subprojects/gst-plugins-bad/gst-libs/gst/va/vasurfaceimage.c:266
#6 0x00007ffff64ed57c in _va_map_unlocked (flags=(GST_MAP_READ | GST_MAP_FLAG_LAST), mem=0x7fffec032340) at ../subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.c:1194
#7 _va_map (mem=0x7fffec032340, maxsize=<optimized out>, flags=(GST_MAP_READ | GST_MAP_FLAG_LAST)) at ../subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.c:1228
#8 0x00007ffff7ee9acd in gst_memory_map (mem=mem@entry=0x7fffec032340, info=info@entry=0x7ffff3fad2b8, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gstreamer/gst/gstmemory.c:308
#9 0x00007ffff7eea07b in gst_memory_make_mapped (mem=mem@entry=0x7fffec032340, info=info@entry=0x7ffff3fad2b8, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gstreamer/gst/gstmemory.c:241
#10 0x00007ffff7eb27db in gst_buffer_map_range (buffer=0x7fffec257120, idx=0, length=1, info=info@entry=0x7ffff3fad2b8, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gstreamer/gst/gstbuffer.c:1855
#11 0x00007ffff676072b in default_map (meta=0x7fffec259480, plane=<optimized out>, info=0x7ffff3fad2b8, data=0x7ffff3fad298, stride=0x7ffff3fad248, flags=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideometa.c:231
#12 0x00007ffff678f71b in gst_video_frame_map_id
(frame=frame@entry=0x7ffff3fad1e0, info=info@entry=0x5555559b1d88, buffer=0x7fffec257120, id=id@entry=-1, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-frame.c:104
#13 0x00007ffff678fa01 in gst_video_frame_map (frame=frame@entry=0x7ffff3fad1e0, info=info@entry=0x5555559b1d88, buffer=<optimized out>, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-frame.c:246
#14 0x00007ffff675f943 in gst_video_filter_transform (trans=0x5555559b1b40, inbuf=<optimized out>, outbuf=0x7fffec6f5900) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideofilter.c:267
#15 0x00007ffff693b261 in default_generate_output (trans=0x5555559b1b40, outbuf=0x7ffff3fad7a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2188
#16 0x00007ffff693a93c in gst_base_transform_chain (pad=<optimized out>, parent=0x5555559b1b40, buffer=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2341
#17 0x00007ffff7eee4ed in gst_pad_chain_data_unchecked (pad=pad@entry=0x5555559dd190, type=type@entry=4112, data=data@entry=0x7fffec257120) at ../subprojects/gstreamer/gst/gstpad.c:4444
#18 0x00007ffff7ef0779 in gst_pad_push_data (pad=pad@entry=0x5555559dcf40, type=type@entry=4112, data=data@entry=0x7fffec257120) at ../subprojects/gstreamer/gst/gstpad.c:4708
#19 0x00007ffff7ef7e92 in gst_pad_push (pad=0x5555559dcf40, buffer=buffer@entry=0x7fffec257120) at ../subprojects/gstreamer/gst/gstpad.c:4827
#20 0x00007ffff674c29e in gst_video_decoder_clip_and_push_buf (decoder=decoder@entry=0x555555a3f290, buf=buf@entry=0x7fffec257120)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3730
#21 0x00007ffff6750e8b in gst_video_decoder_finish_frame (decoder=0x555555a3f290, frame=0x0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3548
#22 0x00007ffff6515d9a in gst_av1_decoder_drain_output_queue (self=self@entry=0x555555a3f290, num=0, ret=ret@entry=0x7ffff3fadad8)
at ../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.c:240
#23 0x00007ffff6516310 in gst_av1_decoder_handle_frame (decoder=0x555555a3f290, frame=0x7fffec032120) at ../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.c:734
#24 0x00007ffff6753343 in gst_video_decoder_decode_frame (decoder=decoder@entry=0x555555a3f290, frame=frame@entry=0x7fffec032120)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:4004
#25 0x00007ffff6753823 in gst_video_decoder_chain_forward (decoder=decoder@entry=0x555555a3f290, buf=buf@entry=0x7fffec6f56c0, at_eos=at_eos@entry=0)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2490
#26 0x00007ffff6756647 in gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>, buf=0x7fffec6f56c0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2832
#27 0x00007ffff7eee4ed in gst_pad_chain_data_unchecked (pad=pad@entry=0x5555559dccf0, type=type@entry=4112, data=data@entry=0x7fffec6f56c0) at ../subprojects/gstreamer/gst/gstpad.c:4444
#28 0x00007ffff7ef0779 in gst_pad_push_data (pad=pad@entry=0x5555559dcaa0, type=type@entry=4112, data=data@entry=0x7fffec6f56c0) at ../subprojects/gstreamer/gst/gstpad.c:4708
#29 0x00007ffff7ef7e92 in gst_pad_push (pad=0x5555559dcaa0, buffer=buffer@entry=0x7fffec6f56c0) at ../subprojects/gstreamer/gst/gstpad.c:4827
#30 0x00007ffff691a65f in gst_base_parse_push_frame (parse=0x5555557e6260, frame=frame@entry=0x7fffec002cf0) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2594
#31 0x00007ffff691d3ed in gst_base_parse_handle_and_push_frame (frame=0x7fffec002cf0, parse=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2445
#32 0x00007ffff68d6860 in gst_av1_parse_push_data (self=self@entry=0x5555557e6260, frame=frame@entry=0x7fffec002cf0, finish_sz=finish_sz@entry=1302, frame_finished=<optimized out>)
at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:993
#33 0x00007ffff68d8559 in gst_av1_parse_handle_to_small_and_equal_align (skipsize=0x7ffff3fae8d8, frame=0x7fffec002cf0, parse=0x5555557e6260)
at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:1652
#34 gst_av1_parse_handle_frame (parse=<optimized out>, frame=0x7fffec002cf0, skipsize=0x7ffff3fae8d8) at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:2001
#35 0x00007ffff6915248 in gst_base_parse_handle_buffer (parse=parse@entry=0x5555557e6260, buffer=<optimized out>, skip=skip@entry=0x7ffff3fae8d8, flushed=flushed@entry=0x7ffff3fae8dc)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2253
#36 0x00007ffff691b17e in gst_base_parse_chain (pad=<optimized out>, parent=<optimized out>, buffer=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3302
--Type <RET> for more, q to quit, c to continue without paging--
#37 0x00007ffff7eee4ed in gst_pad_chain_data_unchecked (pad=pad@entry=0x5555559dc850, type=type@entry=4112, data=data@entry=0x7fffec013120) at ../subprojects/gstreamer/gst/gstpad.c:4444
#38 0x00007ffff7ef0779 in gst_pad_push_data (pad=pad@entry=0x5555559dc600, type=type@entry=4112, data=data@entry=0x7fffec013120) at ../subprojects/gstreamer/gst/gstpad.c:4708
#39 0x00007ffff7ef7e92 in gst_pad_push (pad=0x5555559dc600, buffer=buffer@entry=0x7fffec013120) at ../subprojects/gstreamer/gst/gstpad.c:4827
#40 0x00007ffff691a65f in gst_base_parse_push_frame (parse=parse@entry=0x55555597f860, frame=frame@entry=0x7fffec002f70) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2594
#41 0x00007ffff691d3ed in gst_base_parse_handle_and_push_frame (frame=0x7fffec002f70, parse=0x55555597f860) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2445
#42 0x00007ffff7e5fb2a in gst_ivf_parse_handle_frame_data (skipsize=0x7ffff3faeccc, frame=0x7fffec002f70, ivf=0x55555597f860) at ../subprojects/gst-plugins-bad/gst/ivfparse/gstivfparse.c:374
#43 gst_ivf_parse_handle_frame (parse=<optimized out>, frame=0x7fffec002f70, skipsize=0x7ffff3faeccc) at ../subprojects/gst-plugins-bad/gst/ivfparse/gstivfparse.c:397
#44 0x00007ffff6915248 in gst_base_parse_handle_buffer (parse=parse@entry=0x55555597f860, buffer=buffer@entry=0x7fffec015000, skip=skip@entry=0x7ffff3faeccc, flushed=flushed@entry=0x7ffff3faecc8)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2253
#45 0x00007ffff6915aab in gst_base_parse_scan_frame (parse=parse@entry=0x55555597f860, klass=klass@entry=0x5555559cbd00) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3533
#46 0x00007ffff691908e in gst_base_parse_loop (pad=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3613
#47 0x00007ffff7f28577 in gst_task_func (task=0x5555559de710) at ../subprojects/gstreamer/gst/gsttask.c:384
#48 0x00007ffff7d9b6a4 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007ffff7d98a41 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff7b20b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#51 0x00007ffff7bb2a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81