Implement periodic bandwidth probing in application-limited region.
Now ProbeController can send periodic bandwidth probes when in application-limited region. This will allow to maintain correct bottleneck bandwidth estimate, even not all bandwidth is being used. The feature is not enabled by default, but can be enabled with a flag. Interval between probes is currently set to 5 seconds. BUG=webrtc:6332 Review-Url: https://codereview.webrtc.org/2504023002 Cr-Commit-Position: refs/heads/master@{#15279}
This commit is contained in:
@ -36,6 +36,9 @@ class ProbeController {
|
||||
|
||||
void SetEstimatedBitrate(int bitrate_bps);
|
||||
|
||||
void EnablePeriodicAlrProbing(bool enable);
|
||||
void Process();
|
||||
|
||||
private:
|
||||
enum class State {
|
||||
// Initial state where no probing has been triggered yet.
|
||||
@ -47,7 +50,8 @@ class ProbeController {
|
||||
};
|
||||
|
||||
void InitiateExponentialProbing() EXCLUSIVE_LOCKS_REQUIRED(critsect_);
|
||||
void InitiateProbing(std::initializer_list<int> bitrates_to_probe,
|
||||
void InitiateProbing(int64_t now_ms,
|
||||
std::initializer_list<int> bitrates_to_probe,
|
||||
int min_bitrate_to_probe_further_bps)
|
||||
EXCLUSIVE_LOCKS_REQUIRED(critsect_);
|
||||
|
||||
@ -62,6 +66,7 @@ class ProbeController {
|
||||
int start_bitrate_bps_ GUARDED_BY(critsect_);
|
||||
int max_bitrate_bps_ GUARDED_BY(critsect_);
|
||||
int64_t last_alr_probing_time_ GUARDED_BY(critsect_);
|
||||
bool enable_periodic_alr_probing_ GUARDED_BY(critsect_);
|
||||
|
||||
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(ProbeController);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user