【WebRTC---源码篇】(二十四)GCC获取码率后的分配

本文深入探讨了WebRTC中GCC(Goog Congestion Control)的码率分配过程,从RtpTransportControllerSend的PostUpdates开始,详细讲解了如何通过GoogCcNetworkController获取码率,然后在RtpVideoSender中如何根据丢包率、帧率等因素调整FEC冗余度。接着,介绍了FecControllerDefault如何更新FEC费率,以及RtpSenderEgress如何更新RTP统计。最后,VideoSendStreamImpl根据这些信息计算并生效编码码率。总结了pacer的速率是探测码率的2.5倍,FEC和NACK的码率是动态调整的,不影响编码器的总体码率。
摘要由CSDN通过智能技术生成

RtpTransportControllerSend::PostUpdates

配置码率

// Contains updates of network controller comand state. Using optionals to
// indicate whether a member has been updated. The array of probe clusters
// should be used to send out probes if not empty.
// 包含网络控制器命令状态的更新。使用可选来
// 指示成员是否被更新。探针簇阵列
// 如果不是空的,应该用来发送探测。
struct NetworkControlUpdate {
  NetworkControlUpdate();
  NetworkControlUpdate(const NetworkControlUpdate&);
  ~NetworkControlUpdate();
  absl::optional<DataSize> congestion_window;//拥塞窗口
  absl::optional<PacerConfig> pacer_config;
  std::vector<ProbeClusterConfig> probe_cluster_configs;
  absl::optional<TargetTransferRate> target_rate;//目标码率
};
/*
* 用于在发送端的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄yi笑奈何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值