【c++】向webrtc学AheadOf、IsNewerTimestamp比较

  • webrtc源码分析-rtp序列号新旧比较
    大神文章分析的非常到位。
  • 大神分析:

AheadOrAt(a, b)是判断a是否比b新的核心,其原理是这样的:rfc1982规定了序列号递增间隔不能超过取值范围的1/2(这是自己理解的),那么要判断a是否比b新,只要判断b到a的递增是否在1/2即可,递增超过1/2,则一定是因为a比b老而导致了回环, b到a的递增就是b到a的前向间距,

AheadOf(a,b) :为true: 意味着是a的是新来的,b是老旧的。

  • AheadOf(a,b)的语义就是序列号a是否比序列号新,return中看到比较是否相等,然后就是执行AheadOrAt( )

例子:判断帧是否新

  • frame的时间戳比之前的last_assembled_frame_rtp_timestamp_ 新,就认为frame_is_newer 是true:
    bool frame_is_newer =
        AheadOf(frame

你可能感兴趣的:(WebRTC入门与实战,c++,webrtc,开发语言)