gpt4 book ai didi

c - gst_bus_add_watch() 和 g_signal_connect() 之间的区别

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:29 28 4
gpt4 key购买 nike

我正在阅读 GStreamer 应用程序开发人员手册,它在消息处理/事件处理的上下文中讨论了管道总线,他们讨论了 2 个函数:gst_bus_add_watch() 和 g_signal_connect()。看来这两个功能是可以互换的。应用手册说:

Note that if you’re using the default GLib mainloop integration, you can, instead of attaching a watch, connect to the “message” signal on the bus.

第 27 页。这两个函数有什么区别,它们在什么情况下有用?谁使用我们在这些函数中注册的回调?元素本身是否调用回调?

最佳答案

如果您正在使用 gst_bus_add_watch(),那么您将提供一个回调,当消息可用时将调用该回调。

如果您调用 gst_bus_add_signal_watch() 那么它会注册一个默认回调,该回调会将 GSource 注册到主循环。这使得可以使用信号。

它在功能方面是等效的,但是如果您是编写一个基于 glib/gtk 的应用程序,在任何地方使用信号可能会使您的代码更加一致。

关于c - gst_bus_add_watch() 和 g_signal_connect() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com