当前位置: 首页 > news >正文

WebRTC系列-网络之带宽估计和码率估计(2)接收端带宽估计

文章目录

  • 1. 类的创建时机
  • 2. 带宽估计处理
    • 2.1 主要类调用及初始化
      • m80更新
    • 2.2 带宽估计核心处理
      • 2.2.1. 函数开始主要是获取当前系统时间以及转换包的发送时间
      • 2.2.2. 接收包大小管理RateStatistics
      • 2.2.3. 存储探针
      • 2.2.4. 计算包组到达时间间隔和大小增量(InterArrival)
      • 2.2.5. 评估拥塞值(卡尔曼滤波) OveruseEstimator
      • 2.2.6. 接着执行过载检测方法
      • 2.2.7. 检查是否更新
      • 2.2.8. 调用aimd平滑码率
  • 3. 网络方及综述
    • 3.1 通过REMB发送带宽评估值
    • 3.2 总结

上一篇 WebRTC系列-网络之带宽估计和码率估计(1)介绍了WebRTC中带宽估计整体类关系;
也介绍了接收端带宽估计的主要类及关系,这节就从ReceiveSideCongestionController类开始分析源码。

1. 类的创建时机

类ReceiveSideCongestionController提供了一个有参数构造函数,在其中断点后,其堆栈是:

其中CreateCall_w方法是在CreatePeerConnection时候切换到work线程调用;按照堆栈看下其主要类中的初始化;

  • 构造函数最重要的参数是packet_router
  • 其在Call类中来自transport_send->packet_router()
  • transport_send来自Call::Call(...)构造函数的第三个参数,
  • 这个构造方法是在Call::Create中调用,其实现
http://www.jsqmd.com/news/478603/

相关文章:

  • 如何在Linux终端使用sc-im?新手入门的完整指南
  • mmdetection目标检测API封装:Python SDK开发全攻略
  • 终极Geocoder安全指南:保护API密钥与高效管理服务配额的完整方法
  • wow-byte-array数组操作说明
  • ffmpeg将mp4转换为swf、视频格式、m3u8等
  • 从零开始学习DeepSeek-Prover-V1.5-SFT:面向数学爱好者的入门教程
  • 如何在 React 项目中快速集成 Google Map React:10分钟上手教程
  • 如何快速上手LedisDB:高性能NoSQL数据库的完整指南
  • 如何构建团队密码管理系统:gopass的设计哲学与架构深度解析
  • 随心所欲画草神器:3DMAX种草画笔GrassPainter
  • 电子商务专业毕业生职业发展路径与核心能力构建研究
  • 如何使用CoreRT:.NET Core终极AOT编译优化指南
  • 目前最全的计算机视觉公开数据集汇总 持续更新 400+数据集
  • WHAT - 浏览器缓存机制系列(二)强缓存、协商缓存和启发式缓存
  • CausalML高级技巧:特征选择与因果效应异质性分析
  • ROS以及工控机环境配置
  • Gorilla技术播客系列:与AI先驱探讨函数调用的未来
  • 去毛刺机设计(机械毕业设计)
  • 为什么我的电脑不能升级Windows 11?终极兼容性检测工具深度解析
  • OCRmyPDF内存优化:处理大型PDF文件的内存管理技巧
  • Leetcode_155. 最小栈
  • 软考中级--数据库系统工程师 备考建议和考试注意事项
  • 电脑CPU速度很快,为什么3dMax还会出现卡顿的情况?
  • 牛客_JZ31 栈的压入、弹出序列
  • Slurm高级特性详解:QoS、资源限制与作业优先级配置指南
  • Gorilla网络安全应用:威胁检测API集成与响应自动化完整指南
  • Leetcode_43. 字符串相乘
  • 【C++BFS】690. 员工的重要性
  • 【AutoSAR】只讲干货!使用EB Tresos配置Port
  • 终极指南:Upspin核心架构完全解析——三大服务如何构建全球命名系统