首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gstreamer管道EOS问题

gstreamer管道EOS问题
EN

Stack Overflow用户
提问于 2018-09-07 23:36:30
回答 2查看 1K关注 0票数 1

我正在编写一个程序来模拟我从命令行运行的gsteramer管道。

我已经成功捕获了一些信号,例如:

代码语言:javascript
复制
g_signal_connect (data2.source, "pad-added", G_CALLBACK (pad_added_handler), &data2);
g_signal_connect (data2.source, "drained", G_CALLBACK (eos_cb), &data);

以添加填充并告知url读取器何时已到达流EOS的末尾。

我正在尝试创建一个陷阱来查找总线何时到达EOS但有问题。我见过从总线捕获错误的示例,如下所示:

代码语言:javascript
复制
g_signal_connect (G_OBJECT (bus), "message::error", (GCallback)error_cb, &data);

我在想像这样的东西应该行得通:

代码语言:javascript
复制
g_signal_connect (G_OBJECT (bus), "message::eos", (GCallback)eos_cb_bus, &data);

但是我不知道到底要找什么( 'message::eos‘部分)。

有人能帮我吗?非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2018-09-08 02:38:56

GStreamer hello world示例是一个很好的开始,可以了解应该如何处理此问题:

https://gstreamer.freedesktop.org/documentation/application-development/basics/helloworld.html

基本上,您设置了一个GstBus回调,并从中挑选出您感兴趣的消息。在您的情况下,它将是EOS。

票数 1
EN

Stack Overflow用户

发布于 2018-09-27 18:30:48

将您的代码与How to use a bus进行比较。从那里复制示例代码:

代码语言:javascript
复制
bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline);
gst_bus_add_signal_watch (bus);
g_signal_connect (bus, "message::error", G_CALLBACK (cb_message_error), NULL);
g_signal_connect (bus, "message::eos", G_CALLBACK (cb_message_eos), NULL);

因此,"message::eos“是正确的信号名称。可能您在代码中忘记了gst_bus_add_signal_watch()

另请比较Difference between gst_bus_add_watch() and g_signal_connect()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52225739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档