我正在通过GStreamer文档。我在OSX 10.8.5上运行,我可以使用gcc eg41.c -o eg41 -framework GStreamer -I/Library/Frameworks/GStreamer.framework/Versions/1.0/Headers
和类似的例子4.2。现在我想要完成SDK附带的教程。我复制了整个“tutorials”文件夹,可以使用gcc basic-tutorial-1.c -o basic1 -framework GStreamer -I/Library/Frameworks/GStreamer.framework/Versions/1.0/Headers
但是,当我尝试运行basic1文件时,收到以下错误消息:
(basic1:62265): GStreamer-CRITICAL **: GstStateChangeReturn gst_element_set_state(GstElement *, GstState): assertion 'GST_IS_ELEMENT (element)' failed
(basic1:62265): GStreamer-CRITICAL **: GstBus *gst_element_get_bus(GstElement *): assertion 'GST_IS_ELEMENT (element)' failed
(basic1:62265): GStreamer-CRITICAL **: GstMessage *gst_bus_timed_pop_filtered(GstBus *, GstClockTime, GstMessageType): assertion 'GST_IS_BUS (bus)' failed
(basic1:62265): GStreamer-CRITICAL **: void gst_object_unref(gpointer): assertion 'object != NULL' failed
(basic1:62265): GStreamer-CRITICAL **: GstStateChangeReturn gst_element_set_state(GstElement *, GstState): assertion 'GST_IS_ELEMENT (element)' failed
(basic1:62265): GStreamer-CRITICAL **: void gst_object_unref(gpointer): assertion 'object != NULL' failed
我在这里缺少什么?
非常感谢!
答案 0 :(得分:7)
(修改对实际答案显然有用的评论,因为这似乎是一个常见问题......)
GStreamer SDK(以及相关文档)仍然基于Gstreamer 0.10。在这种情况下,example code使用playbin2
:如果您想使用Gstreamer 1.0尝试相同的代码,则需要将其更改为playbin
- 否则看起来很好。
对于一般情况下0.10 vs 1.0之间的API差异,文档中有list of changes。