Improve adaptation to reordered packets in delay manager.

This is done by adding a reorder optimizer that estimates the probability of receiving reordered packets.

The optimal delay is decided by balancing the cost of increasing the delay against the probability of missing a reordered packet, resulting in a loss. This balance is decided using the `ms_per_loss_percent` parameter.

The usage and parameters can be controlled via field trial.

Bug: webrtc:10178
Change-Id: Ic484df0412af35610e74b3a6070f2bac7a926a63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231541
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34954}
This commit is contained in:
Jakob Ivarsson
2021-09-08 16:35:50 +02:00
committed by WebRTC LUCI CQ
parent 1f38a38b6f
commit 58ed02eae3
10 changed files with 251 additions and 11 deletions

View File

@ -42,7 +42,7 @@ class Histogram {
virtual int NumBuckets() const;
// Returns the probability for each bucket in Q30.
std::vector<int> buckets() const { return buckets_; }
const std::vector<int>& buckets() const { return buckets_; }
// Accessors only intended for testing purposes.
int base_forget_factor_for_testing() const { return base_forget_factor_; }