2013-08-23 145 views
0

试图在成功执行几个教程后编译并运行示例appsrc代码。这是一个文档的代码,应该让它运行,但...gstreamer示例文档代码未运行

用来编译

gcc appGuideAppSrc.c -o appGuide `pkg-config --cflags --libs gstreamer-0.10 gstreamer-app-0.10` 

的命令得到了以下错误后

appGuideAppSrc.c: In function ‘cb_need_data’: 
appGuideAppSrc.c:14:8: warning: assignment makes pointer from integer without a cast [enabled by default] 
appGuideAppSrc.c:18:25: error: lvalue required as left operand of assignment 

好吧,警告是不错,但行哪里抛出错误是哪个似乎是好的

GST_BUFFER_PTS (buffer) = timestamp; 

根据以下答案@Michal,将其更改为TIMESTMAP并得到以下错误

(appGuide:11043): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed 

(appGuide:11043): GStreamer-CRITICAL **: gst_bin_add_many: assertion `GST_IS_ELEMENT (element_1)' failed 

(appGuide:11043): GStreamer-CRITICAL **: gst_element_link_many: assertion `GST_IS_ELEMENT (element_1)' failed 

(appGuide:11043): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed 

(appGuide:11043): GLib-GObject-WARNING **: invalid (NULL) pointer instance 

(appGuide:11043): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed 

任何输入?

参考文献:
whole appsrc sample code

回答

1

看来,你试图编译使用旧版本的GStreamer的的GStreamer-1.0例如:0.10。

GST_BUFFER_PTSGST_BUFFER_DTS在gstreamer-0.11中引入并替代GST_BUFFER_TIMESTAMP直到gstreamer-0.10。

请使用较新的gstreamer版本或将GST_BUFFER_PTS更改为GST_BUFFER_TIMESTAMP

+0

编辑你的推荐的问题 – user2618142

+0

你为什么说“警告是好的”?我宁愿推荐相反的东西:编译你的代码-Wall –

+0

我说的警告是好的(就像我是一个程序员,不关心警告)类型。让我们专注于错误。 :) – user2618142