我正在尝试在 C 程序中使用 Gstreamer。
我使用 udpsrc
所以我必须大写 :
GstCaps *caps = gst_caps_new_empty_simple("application/x-rtp");
有了这个,我得到了一个段错误。
因此,我尝试使用 G_DEBUG="fatal_warnings"gdb --args ./test_gst
。这是输出:
Program received signal SIGSEGV, Segmentation fault.
0x76f010e4 in gst_mini_object_init (mini_object=0x28600, flags=0, type=0, copy_func=0x76ed6174 <_gst_caps_copy>, dispose_func=0x0, free_func=0x76ed5128 <_gst_caps_free>)
at gstminiobject.c:133
133 gstminiobject.c: No such file or directory.
(gdb) bt
#0 0x76f010e4 in gst_mini_object_init (mini_object=0x28600, flags=0, type=0, copy_func=0x76ed6174 <_gst_caps_copy>, dispose_func=0x0, free_func=0x76ed5128 <_gst_caps_free>)
at gstminiobject.c:133
#1 0x76ed57b4 in gst_caps_init (caps=0x28600) at gstcaps.c:209
#2 gst_caps_new_empty () at gstcaps.c:239
#3 0x76ed58f8 in gst_caps_new_empty_simple (media_type=0x110b4 "application/x-rtp") at gstcaps.c:282
#4 0x00010bbc in main ()
我不知道这是否有帮助,但我正在研究 Raspberry PI 3 (raspbian)。
我找到了一个类似的 bug report在 gst_mini_object_init()
中出现段错误。根据this comment你应该在使用 Gstreamer 之前调用 gst_init()
。
在使用 Gstreamer API 之前,您是否调用了 gst_init()
?
我是一名优秀的程序员,十分优秀!