Gstreamer时钟

GStreamer时钟通过_get_time()返回单调递增的绝对时间,其精度和基线依赖于具体实现。时钟的选择由GstPipeline在PLAYING状态下进行,用于同步不同元素。当时钟提供者元素被添加或删除,会触发时钟重新选择。GStreamer支持周期和计数器时钟,提供阻塞和异步等待功能。GstClockID用于等待操作,可以在多个线程中阻塞等待,但异步回调只能在单个线程中触发。GstSystemClock作为系统时钟实现,允许异步回调在内部线程执行。
摘要由CSDN通过智能技术生成
时钟 翻译自part-clocks.txt

Clocks
-----------
    GstClock用_get_time()返回单调递增的时间,它的精度和base time取决于时钟实现,但总是以纳秒为单位。既然时钟的基线没有被定义,时钟返回的值本身毫无意义,只有两个时钟之间的差值才有意义。
    GstClock返回的时间值被称为absolute_time。

Clock Selection
~~~~~~~~~~~~~~~
    为了同步不同的元素,GstPipeline负责为所有的元素选择并指定一个全局的时钟。无论什么时候pipeline变成PLAYING状态时,该选择将会发生;无论什么时候,一个元素添加到或者删除从pipeline,该选择将会再下次变成PLAYING状态时发生。添加一个能够提供时钟的元素时将触发GST_MESSAGE_CLOCK_PROVIDE消息,该消息将导致时钟重新被选择。
    当一个时钟被选择,NEW_CLOCK消息被post到bus上,告知应用程序。
    当提供时钟的元素从pipeline上删除了,CLOCK_LOST消息被post到bus上。应用程序必须设置pipeline为PAUSED,然后再设置成PLAYING状态,目的是让pipeline重新选定时钟。

Clock features
~~~~~~~~~~~~~~
    gstreamer支持周期时钟和计数器时钟,首先用_clock_new_single_shot_id()和_clock_new_periodic_id()分别创建计数器时钟和周期时钟的实例(GstClockID)。
    为了执行一段阻塞时间的等待,调用gst_clock_id_wait();为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值