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