网络受限探测器,统计最近500ms发送码率,如果小于设置码率的60%,则记录码率过小的开始时间(now),如果码率大于%70则清空开始时间。
主要是用于计算什么时间点码率开始过小了
<%60 开始设置受限标志,开始时间值
%60 -%70 保持不变
>%70 清除受限标志
1.设置预测码率,内部统计以这个码率为基准
void SetEstimatedBitrate(int bitrate_bps)
-
用于更新统计码率,比较
void OnBytesSent(size_t bytes_sent, int64_t now_ms){ //统计最近的发送码率 rate_.Update(bytes_sent, now_ms); rtc::Optional<uint32_t> rate = rate_.Rate(now_ms); int percentage = static_cast<int>(*rate) * 100 / estimated_bitrate_bps_; if (percentage < kAlrStartUsagePercent && !alr_started_time_ms_) { //当前发送码率过小了 <60%,设置受限标志 alr_started_time_ms_ = rtc::Optional<int64_t>(now_ms); } else if (percentage > kAlrEndUsagePercent && alr_started_time_ms_) { //解除受限 >%70 alr_started_time_ms_ = rtc::Optional<int64_t>(); } }
-
获取受限时间点
rtc::Optional<int64_t> GetApplicationLimitedRegionStartTime() const { return alr_started_time_ms_; }