我想在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 ()

我不知道这是否有帮助,但我正在研究一种覆盆子皮3(覆盆子)。

最佳答案

我在gst_mini_object_init()中发现了一个类似的bug report分割错误。根据this comment您应该在使用Gstreamer之前调用gst_init()
在使用Gstreamer API之前,您是否调用了gst_init()

10-08 07:35