PacedSender解读

        对于rtp,PacedSender是非常重要的一个关节,因为rtp发送不知道数据发送是否成功,但是发送太多肯定容易丢包,所以需要控制发送的速率,只能一波一波发送,PacedSender在一个线程中循环发送,默认5ms发送一波,但是在网速探测的时候是2s发送一波。

主要接口解读

virtual void CreateProbeCluster(int bitrate_bps):开始平稳控制发送速率(流媒体数据不够则增加填充数据)

virtual int64_t AverageQueueTimeMs():未发送队列里每个包平均缓存的时间

int64_t PacedSender::TimeUntilNextProcess():下次处理的时间,用于控制多长时间发送一波

void InsertPacket():添加一个待发送的包

virtual void SetEstimatedBitrate(uint32_t bitrate_bps):设置发送的码率

void SetSendBitrateLimits(int min_send_bitrate_bps,int max_padding_bitrate_bps):设置码率限制

virtual rtc::OptionalGetApplicationLimitedRegionStartTime() const;网速受到应用编码码率不足而低于目标码率的时间

你可能感兴趣的:(PacedSender解读)