2020年1月10日星期五

webrtc 之 RemoteEstimatorProxy

RemoteEstimatorProxy

作用:保存窗口期的rtp包接收时间,组合成feedback rtcp反馈包,然后定时发送。
  1. void RemoteEstimatorProxy::IncomingPacket()  判断是否是有效的包 
  2. OnPacketArrival()  调用这个函数处理数据,保存数据用于Process构建Feedback。 
  3. RemoteEstimatorProxy::Process()  构建包 
  4. RemoteEstimatorProxy::OnBitrateChanged()   依靠发送码率计算rtcp发送的时间间隔,使用5%的流量发送rtcp包。

    /*** 如下图所示: 在接收到rtp数据包后先传递给DeliverRtp函数,如果是用于统计bwe信息的则传递给NotifyBweOfReceivedPacket函数,现在只有视频数据才可以进入这个函数。 ***/


对于带宽预估“total” 调用时间问题,按理来讲如下取值是在50-250ms区间,但是一直以来带宽预估计算周期是在30-50ms内的,这里估计是存在问题。-解决:由于网络波动导致接收时的时间间隔发生变化。但是整体来看平均周期是在给定范围之内的。