c - gstreamer 示例文档代码未运行

标签 c gstreamer glib lvalue

在成功执行几个教程后尝试编译并运行示例 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

最佳答案

您似乎正在尝试使用旧版本的 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

关于c - gstreamer 示例文档代码未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406152/

相关文章:

c - 向数组中插入一个值,并根据值c排列数组

c - 更好地理解链表

c++ - 如何将默认解码器设置为 playbin2?

opencv - Opencv videoCapture() 中的 Gstreamer 管道

c - 使用带有 c API 的 gstreamer 显示图像

c - 不按唯一键搜索哈希表

c - 在 Debian 上运行 C 程序的问题

c - 线程中的 GLib GMainContext?

c - 通过按下 GTK 按钮停止 CPU 密集型操作

c - 进程虚拟内存中的起始地址和结束地址