ProbeController

网络带宽探测控制,用于控制发送码率来探测当前码率。

函数解读:

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,则初始化探测

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于rtp,PacedSender是非常重要的一个关节,因为rtp发送不知道数据发送是否成功,但是发送太多肯定容...
    MinorUncle阅读 965评论 0 0
  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 4,831评论 0 3
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,967评论 0 38
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • “结局不是这样的!” 已是夜深人静。作家从书桌前起身,踱到窗前。 那个生机活力的人,怎么会如此不堪入目。枯瘦如柴,...
    城2017阅读 193评论 0 0