gpt4 book ai didi

gstreamer - gstreamer 中 Action 信号与查询的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 17:45:28 27 4
gpt4 key购买 nike

关于 gstreamer 元素的一些信息,我必须发出一个查询,比如

gst_element_query_position(data.playbin,GST_FORMAT_TIME,&current)

(来自 basic tutorial 4)

而对于其他人,我必须发出 Action 信号,例如

g_signal_emit_by_name(data->playbin, "get-video-tags", i, &tags)

(来自 playback tutorial 1 )。

这是什么原因呢?两者不是都在做同样的事情,向元素询问一些信息并等待答案(阻塞/同步)吗?对我来说,查询似乎正是为此目的,如“Foundations”一章和下图所述。

但是 Action 信号如何适应这幅图呢?它们是事件(用于请求)和消息(用于响应)的组合还是只是查询?最重要的是:为什么在已经有查询的情况下它们还存在?

感谢您的时间和知识。


Gstreamer Communication

最佳答案

正如@vk_gst 在评论中提到的,查询是同步的,但信号(事件)不是。查询的目的是从管道获取一些信息,而事件的目的是告诉管道针对给定的条件/要求采取一些行动。示例:您可以查询流的比特率。但是你必须发送信号(事件)来播放搜索。

换句话说,query是请求一些信息,event是通知。如果一个元素发送一个查询,它期望除了成功/失败状态之外的一些输出。但是如果一个元素发送一个事件,它只期望成功/失败状态。如何处理该事件留给接收它的其他元素。

关于gstreamer - gstreamer 中 Action 信号与查询的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52264026/

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