首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g_signal_emit_by_name的用法

g_signal_emit_by_name的用法
EN

Stack Overflow用户
提问于 2013-04-04 20:49:38
回答 1查看 6.3K关注 0票数 0

我正在开发一个使用gstreamer播放H264转储的应用程序

管道是: appsrc - h264parse - ffdec_h264 - ffmpegcolorspace - deinterlace - autovideosink

数据流是::PULL Mode from appsrc {使用信号: need- data }

我想从应用程序中使用推送模式来验证相同的应用程序:在文档中提到:我们需要调用' PUSH -buffer‘信号并发送缓冲区

我的代码片段是:

代码语言:javascript
复制
gst_app_src_set_emit_signals(source, TRUE);
g_signal_connect (source, "push-buffer", G_CALLBACK (start_feed), source);

尽管已经创建了管道,但我没有收到任何对start_feed()的回调

有人能帮我吗? appsrc的'PUSH‘模式操作到底需要做些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 00:52:29

根据the documentation的说法

使appsrc发出"new-preroll“和"new-buffer”信号。默认情况下,该选项被禁用,因为当应用程序更喜欢在pull模式下操作时,信号发射是昂贵的且不需要。

因此,您可以尝试添加一个"new-buffer“信号。"push-buffer“是一个动作,所以附加一个信号处理程序不会做任何事情,因为它是你应该在有数据时调用的东西,而不是调用回调的东西。

根据您的start_feed所做的工作,您可能还在寻找“需要数据”信号(假设在管道需要更多数据时发出信号)。

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

https://stackoverflow.com/questions/15811699

复制
相关文章

相似问题

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