时钟 翻译自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();为
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();为