vaapi: Crash in gst_vaapidecode_class_init() when no decoders/encoders available
Totem from Flatpak crashes on startup (more or less). The gst_caps_from_string (string=0x0)
looks fishy.
#0 0x00007fbb3f142e51 in g_logv () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007fbb3f143123 in g_log () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007fbb3e1e8165 in gst_caps_from_string (string=0x0) at ../subprojects/gstreamer/gst/gstcaps.c:2518
#3 gst_caps_from_string (string=<optimized out>) at ../subprojects/gstreamer/gst/gstcaps.c:2514
#4 0x00007fbb141926c4 in gst_vaapidecode_class_init (klass=<optimized out>) at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapidecode.c:1551
#5 0x00007fbb3f25726d in g_type_class_ref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007fbb3f23db58 in g_object_new_with_properties () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007fbb3f23e5b1 in g_object_new () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007fbb141a8afd in gst_vaapi_decode_bin_init (vaapidecbin=0x562e06d54890) at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapidecodebin.c:409
#9 0x00007fbb3f259239 in g_type_create_instance () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fbb3f23c48c in g_object_new_internal () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007fbb3f23da1d in g_object_new_with_properties () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007fbb3e1fe27a in gst_element_factory_create_with_properties (factory=0x562e065130f0, n=n@entry=0, names=names@entry=0x0, values=0x0) at ../subprojects/gstreamer/gst/gstelementfactory.c:494
#13 0x00007fbb3e1feab9 in gst_element_factory_create (factory=factory@entry=0x562e065130f0, name=name@entry=0x0) at ../subprojects/gstreamer/gst/gstelementfactory.c:654
#14 0x00007fbb38fff01d in connect_pad (dbin=dbin@entry=0x562e068002b0, src=<optimized out>,
src@entry=0x562e068bbd00, dpad=dpad@entry=0x562e068014d0, pad=<optimized out>, caps=<optimized out>, factories=<optimized out>, chain=<optimized out>, deadend_details=<optimized out>)
at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2296
#15 0x00007fbb38ffdb07 in analyze_new_pad (dbin=dbin@entry=0x562e068002b0, src=src@entry=0x562e068bbd00, pad=pad@entry=0x7fbaa8065ad0, caps=caps@entry=0x562e07042320, chain=<optimized out>,
chain@entry=0x7fbaa807a990, new_chain=new_chain@entry=0x7fbac27fa340) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:1837
#16 0x00007fbb38ffe6be in pad_added_cb (element=0x562e068bbd00, pad=0x7fbaa8065ad0, chain=0x7fbaa807a990) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2977
#17 0x00007fbb38ffe9b5 in caps_notify_cb (pad=0x7fbaa8065ad0, unused=<optimized out>, chain=0x7fbaa807a990) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:3167
#18 0x00007fbb3f236569 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007fbb3f249fbf in signal_emit_unlocked_R () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007fbb3f250e2f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007fbb3f250f83 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007fbb3f23b3dc in g_object_dispatch_properties_changed () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007fbb3e1cc9f9 in gst_object_dispatch_properties_changed (object=0x7fbaa8065ad0, n_pspecs=1, pspecs=0x7fbac27fa890) at ../subprojects/gstreamer/gst/gstobject.c:455
#24 0x00007fbb3f23d763 in g_object_notify_by_pspec () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007fbb3e218fc7 in store_sticky_event (pad=pad@entry=0x7fbaa8065ad0, event=event@entry=0x562e06cb06c0) at ../subprojects/gstreamer/gst/gstpad.c:5364
#26 0x00007fbb3e224937 in gst_pad_push_event (pad=pad@entry=0x7fbaa8065ad0, event=0x562e06cb06c0) at ../subprojects/gstreamer/gst/gstpad.c:5663
#27 0x00007fbb3d43be88 in gst_pad_set_caps (caps=0x562e07042320, pad=0x7fbaa8065ad0) at ../subprojects/gstreamer/gst/gstcompat.h:59
#28 gst_base_transform_setcaps (trans=trans@entry=0x562e068bbd00, pad=<optimized out>, incaps=0x562e07042320) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1345
#29 0x00007fbb3d43d63b in gst_base_transform_sink_eventfunc (trans=trans@entry=0x562e068bbd00, event=0x562e06cb0490) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1949
#30 0x00007fbb38c9c017 in gst_capsfilter_sink_event (trans=0x562e068bbd00, event=0x562e06cb0490) at ../subprojects/gstreamer/plugins/elements/gstcapsfilter.c:527
#31 0x00007fbb3e21a5fb in gst_pad_send_event_unchecked (pad=pad@entry=0x7fbaa8065880, event=event@entry=0x562e06cb0490, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5900
#32 0x00007fbb3e21acce in gst_pad_push_event_unchecked (pad=pad@entry=0x7fbaa8065630, event=0x562e06cb0490, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5544
#33 0x00007fbb3e21b21b in push_sticky (pad=pad@entry=0x7fbaa8065630, ev=ev@entry=0x7fbac27fad00, user_data=user_data@entry=0x7fbac27fad70) at ../subprojects/gstreamer/gst/gstpad.c:4047
#34 0x00007fbb3e2188ea in events_foreach (pad=pad@entry=0x7fbaa8065630, func=func@entry=0x7fbb3e21b1c0 <push_sticky>, user_data=user_data@entry=0x7fbac27fad70) at ../subprojects/gstreamer/gst/gstpad.c:608
#35 0x00007fbb3e22463e in check_sticky (event=0x562e06cb0490, pad=0x7fbaa8065630) at ../subprojects/gstreamer/gst/gstpad.c:4106
#36 gst_pad_push_event (pad=pad@entry=0x7fbaa8065630, event=0x562e06cb0490) at ../subprojects/gstreamer/gst/gstpad.c:5675
#37 0x00007fbb142d7bb0 in gst_pad_set_caps (caps=0x562e07042320, pad=0x7fbaa8065630) at ../subprojects/gstreamer/gst/gstcompat.h:59
#38 gst_h264_parse_update_src_caps (h264parse=<optimized out>, caps=<optimized out>) at ../subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c:2390
#39 0x00007fbb142db5d0 in gst_h264_parse_set_caps (parse=0x7fbaa8103d40, caps=<optimized out>) at ../subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c:3529
#40 0x00007fbb3d4196b8 in gst_base_parse_sink_event_default (parse=0x7fbaa8103d40, event=0x562e06968f30) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:1241
#41 0x00007fbb3e21a5fb in gst_pad_send_event_unchecked (pad=pad@entry=0x7fbaa80653e0, event=event@entry=0x562e06968f30, type=<optimized out>) at ../subprojects/gstreamer/gst/gstpad.c:5900
#42 0x00007fbb3e224ccb in gst_pad_send_event (pad=0x7fbaa80653e0, event=0x562e06968f30) at ../subprojects/gstreamer/gst/gstpad.c:6070
#43 0x00007fbb38ff4334 in send_sticky_event (pad=<optimized out>, event=<optimized out>, user_data=0x7fbac27fb430) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2007
#44 0x00007fbb3e2190c7 in foreach_dispatch_function (user_data=0x7fbac27fb340, ev=0x7fbac27fb2e0, pad=0x7fbaa8065190) at ../subprojects/gstreamer/gst/gstpad.c:6169
#45 foreach_dispatch_function (pad=pad@entry=0x7fbaa8065190, ev=ev@entry=0x7fbac27fb2e0, user_data=user_data@entry=0x7fbac27fb340) at ../subprojects/gstreamer/gst/gstpad.c:6161
#46 0x00007fbb3e2188ea in events_foreach (pad=pad@entry=0x7fbaa8065190, func=func@entry=0x7fbb3e219080 <foreach_dispatch_function>, user_data=user_data@entry=0x7fbac27fb340) at ../subprojects/gstreamer/gst/gstpad.c:608
#47 0x00007fbb3e225901 in gst_pad_sticky_events_foreach (pad=0x7fbaa8065190, foreach_func=<optimized out>, user_data=0x7fbac27fb430) at ../subprojects/gstreamer/gst/gstpad.c:6200
#48 0x00007fbb390000a5 in send_sticky_events (dbin=0x562e068002b0, pad=0x7fbaa8065190) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2022
#49 connect_pad (dbin=dbin@entry=0x562e068002b0, src=<optimized out>,
src@entry=0x562e068baf30, dpad=dpad@entry=0x562e068014d0, pad=<optimized out>, caps=<optimized out>, factories=<optimized out>, chain=<optimized out>, deadend_details=<optimized out>)
at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2544
#50 0x00007fbb38ffdb07 in analyze_new_pad (dbin=dbin@entry=0x562e068002b0, src=src@entry=0x562e068baf30, pad=pad@entry=0x7fbaa8064cf0, caps=caps@entry=0x7fbab00c5630, chain=<optimized out>,
chain@entry=0x562e07005a60, new_chain=new_chain@entry=0x7fbac27fb570) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:1837
#51 0x00007fbb38ffe6be in pad_added_cb (element=0x562e068baf30, pad=0x7fbaa8064cf0, chain=0x562e07005a60) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:2977
#52 0x00007fbb3f239e66 in g_cclosure_marshal_VOID__OBJECTv () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#53 0x00007fbb3f236798 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#54 0x00007fbb3f250d6b in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#55 0x00007fbb3f250f83 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#56 0x00007fbb3e1f9058 in gst_element_add_pad (element=element@entry=0x562e068baf30, pad=0x7fbaa8064cf0) at ../subprojects/gstreamer/gst/gstelement.c:802
#57 0x00007fbb145e5edc in gst_qtdemux_add_stream (qtdemux=qtdemux@entry=0x562e068baf30, stream=0x7fbaa8004d80, list=0x7fbab00c55e0) at ../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:8971
#58 0x00007fbb145e8465 in qtdemux_expose_streams (qtdemux=qtdemux@entry=0x562e068baf30) at ../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:13456
#59 0x00007fbb146051d2 in gst_qtdemux_loop_state_header (qtdemux=0x562e068baf30) at ../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:4661
#60 gst_qtdemux_loop (pad=0x562e068c50a0) at ../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:6657
#61 0x00007fbb3e2552bc in gst_task_func (task=0x562e06c0eef0) at ../subprojects/gstreamer/gst/gsttask.c:384
#62 0x00007fbb3f167ce5 in g_thread_pool_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#63 0x00007fbb3f167319 in g_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007fbb3d9ad3ba in start_thread () at /usr/lib/x86_64-linux-gnu/libpthread.so.0
#65 0x00007fbb3e3db7a3 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6
Using GStreamer 1.20.3 (commit ccf22e31)
Downstream report: https://gitlab.gnome.org/GNOME/totem/-/issues/530