Gstreamer/Core: Gstreamer 同步机制

1. 引言

    我们知道多媒体的同步主要是为了能让多个流中具有相同时间戳(timestamp)的媒体资源在同一时刻被播放出来,比如播放电影时需要使得视频、音频同步的被播放出来,而不至于出现画面相对于声音超前或者落后的情况出现。
    在Gstreamer中有一套同步机制,其所涉及到的内容包括buffer、segment、stream 以及 clock 。。。

2. Clock

    GstClock 的时间精度为纳秒级,其时钟源的选择可以为系统时间、音频设备等。
    GStPipline 会选择一个时钟源并分发到其他各个elements,GstClock 的值不必要从零开始。

3. Running time

    Running time 是根据时钟计算出来的,也就是pipline出在PLAYING状态下的时间总和:
        - 当pipline在NULL/READY转台下时,GstClock并没有被定义;
        - 在PAUSED状态下,running time暂停计数;
        - 在flushing seek操作之后,running time为0.

     C.running_time = absolute_time - base_time

4. stream time

    Stream time 可理解为在stream中的位置,其值介于零和媒体文件总长度之间。
    stream time可以用于:
        - 响应POSTION query;
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值