【问题标题】:gstreamer sample documentation code not runninggstreamer 示例文档代码未运行
【发布时间】:2013-08-23 15:06:43
【问题描述】:

在成功执行了几个教程后,尝试编译和运行示例 appsrc 代码。这是一个文档代码,应该可以运行,但是...

用于编译的命令

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 下面的回答,将其更改为 TIMESTAMP 并得到以下错误

(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

【问题讨论】:

    标签: c gstreamer glib lvalue


    【解决方案1】:

    您似乎正在尝试使用旧版本的 gstreamer:0.10 编译 gstreamer-1.0 示例。

    GST_BUFFER_PTSGST_BUFFER_DTS 是在 gstreamer-0.11 中引入的,并替换了 gstreamer-0.10 之前可用的 GST_BUFFER_TIMESTAMP

    要么使用更新的 gstreamer 版本,要么将 GST_BUFFER_PTS 更改为 GST_BUFFER_TIMESTAMP

    【讨论】:

    • 为什么说“警告没问题”?我宁愿推荐相反的方法:使用 -Wall 编译您的代码
    • 我说警告很好(就像我是程序员一样,不关心警告)类型。让我们专注于错误。 :)
    • 我猜这次appsrc = gst_element_factory_make ("appsrc", "source"); 的行失败了。确保您有 appsrc 插件(启动 gst-inspect-0.10 appsrc)。将环境变量 GST_DEBUG 设置为例如运行程序3 也可能会有所帮助。
    • 不用了,你对 0.10 和 1.0 的回答是正确的。
    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多