Final version of BBR, with tweaks made for WebRTC, major changes:
1) Entering PROBE_RTT when necessary.
2) Congestion window gain of 0.65 instead of constant 4 packets.
3) {1.1, 0.9} pair instead of {1.25, 0.75}
4) Recovery mode.
5) No reaction to losses due to Recovery mode's implementation.
6) Supports encoder.
7) A new test compiling most of the simulation tests.
8) Bucket for high gain phase, disabled by default.
9) Pacer specific to BBR.
BUG=webrtc:7713
Review-Url: https://codereview.webrtc.org/2999073002
Cr-Commit-Position: refs/heads/master@{#19418}
This commit is contained in:
@ -15,6 +15,8 @@
|
||||
#ifndef WEBRTC_MODULES_BITRATE_CONTROLLER_INCLUDE_BITRATE_CONTROLLER_H_
|
||||
#define WEBRTC_MODULES_BITRATE_CONTROLLER_INCLUDE_BITRATE_CONTROLLER_H_
|
||||
|
||||
#include <map>
|
||||
|
||||
#include "webrtc/modules/congestion_controller/delay_based_bwe.h"
|
||||
#include "webrtc/modules/include/module.h"
|
||||
#include "webrtc/modules/pacing/paced_sender.h"
|
||||
@ -36,12 +38,18 @@ class BitrateObserver {
|
||||
virtual void OnNetworkChanged(uint32_t bitrate_bps,
|
||||
uint8_t fraction_loss, // 0 - 255.
|
||||
int64_t rtt_ms) = 0;
|
||||
|
||||
// TODO(gnish): Merge these two into one function.
|
||||
virtual void OnNetworkChanged(uint32_t bitrate_for_encoder_bps,
|
||||
uint32_t bitrate_for_pacer_bps,
|
||||
bool in_probe_rtt,
|
||||
int64_t target_set_time,
|
||||
uint64_t congestion_window) {}
|
||||
virtual void OnBytesAcked(size_t bytes) {}
|
||||
virtual size_t pacer_queue_size_in_bytes() { return 0; }
|
||||
virtual ~BitrateObserver() {}
|
||||
};
|
||||
|
||||
class BitrateController : public Module,
|
||||
public RtcpBandwidthObserver {
|
||||
class BitrateController : public Module, public RtcpBandwidthObserver {
|
||||
// This class collects feedback from all streams sent to a peer (via
|
||||
// RTCPBandwidthObservers). It does one aggregated send side bandwidth
|
||||
// estimation and divide the available bitrate between all its registered
|
||||
|
||||
Reference in New Issue
Block a user