missing vaapipostproc causes gstreamer crash in glupload
Submitted by Vavooon
Link to original bug (#794080)
Description
In some cases gst-launch crashes when I'm trying to display video without X11 using kmssink or glimagesink.
Local video plays well (pipeline is
gst-launch-1.0 filesrc location=bbb_sunflower_1080p_30fps_normal.mp4 ! decodebin ! glupload ! glimagesink
) however, when I'm trying to play RTSP stream using
gst-launch-1.0 udpsrc port=9001 ! application/x-rtp, encoding-name=H264 ! rtph264depay ! h264parse ! vaapih264dec low-latency=true ! videoconvert ! glupload ! glimagesink
it fails with following message:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"(GstGLDisplayGBM)\ gldisplaygbm0";
Got context from element 'vaapidecode_h264-0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"(GstVaapiDisplayDRM)\ vaapidisplaydrm1";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Caught SIGSEGV
And here's the stack:
Thread 5 "gstglcontext" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffde651700 (LWP 2656)]
__memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:491
491 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory.
(gdb) bt full
#0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:491
No locals.
#1 0x00007fffe96f87cf in memcpy (__len=3686400, __src=<optimized out>, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34
No locals.
#2 gst_gl_buffer_upload_cpu_write (info=<optimized out>, size=3686400, mem=0x7fffd55a9470) at gstglbuffer.c:195
gl_map_flags = 2
gl = 0x555555c25950
data = <optimized out>
#3 _gl_buffer_map (mem=0x7fffd55a9470, info=<optimized out>, size=3686400) at gstglbuffer.c:212
gl = 0x555555c25950
#4 0x00007fffe96f7749 in _map_data_gl (context=<optimized out>, transfer=0x7fffde650b90) at gstglbasememory.c:277
alloc_class = 0x555555b43930
mem = 0x7fffd55a9470
info = 0x7fffde650c00
prev_map_flags = 0
prev_gl_map_count = 0
__func__ = "_map_data_gl"
__PRETTY_FUNCTION__ = "_map_data_gl"