网络带宽探测控制,用于控制发送码率来探测当前码率。
函数解读:
void ProbeController::SetBitrates(int64_t min_bitrate_bps,_t start_bitrate_bps, int64_t max_bitrate_bps):给定参数,设置新的max_bitrate_bps(允许的最大码率)和start_bitrate_bps。如果ProbeController从没有探测过,则start_bitrate_bps_开始探测,并且以3倍的关系逐步上升探测。如果正在探测中,则返回。如果已经完成过探测,则如果上一次estimated_bitrate_bps_(探测的码率)和old_max_bitrate_bps小于max_bitrate_bps_的话则重新从max_bitrate_bps_开始探测,并且只探测一次。
void ProbeController::SetEstimatedBitrate(int64_t bitrate_bps) ;如果正在探测,如果参数bitrate_bps大于下一次的探测码率,且还需要下一次探测时,则以2 * bitrate_bps开始探测。如果探测过一次探测bitrate_bps 小于。0.6倍的探测大小,且ALR受限(由于设置的限制导致发送码率低)则重新初始化探测
void ProbeController::EnablePeriodicAlrProbing(bool enable) :是否开启alr检测
void ProbeController::Process() :如果probing超时,则结束。如果状态不是kProbingComplete,或者开启了alr,则判断如果带宽受限,则重新初始化探测
void ProbeController::OnNetworkStateChanged(NetworkState network_state):切换网络状态,如果network_state_ == kNetworkUp && state_ == State::kInit,则初始化探测