Add NetEq config flag that enables RTX handling.
When enabled, the delay manager is updated with reordered packets. It also makes the peak detector ignore the reordered packets. Change-Id: I2bdc99764cc76b15e613ed3dc75f83aaf66eee4e Bug: webrtc:10178 Reviewed-on: https://webrtc-review.googlesource.com/c/116481 Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> Reviewed-by: Minyue Li <minyue@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26187}
This commit is contained in:
committed by
Commit Bot
parent
d8bd75079b
commit
39b934ba2e
@ -26,10 +26,12 @@ namespace webrtc {
|
||||
|
||||
DelayPeakDetector::~DelayPeakDetector() = default;
|
||||
|
||||
DelayPeakDetector::DelayPeakDetector(const TickTimer* tick_timer)
|
||||
DelayPeakDetector::DelayPeakDetector(const TickTimer* tick_timer,
|
||||
bool ignore_reordered_packets)
|
||||
: peak_found_(false),
|
||||
peak_detection_threshold_(0),
|
||||
tick_timer_(tick_timer),
|
||||
ignore_reordered_packets_(ignore_reordered_packets),
|
||||
frame_length_change_experiment_(
|
||||
field_trial::IsEnabled("WebRTC-Audio-NetEqFramelengthExperiment")) {
|
||||
RTC_DCHECK(!peak_period_stopwatch_);
|
||||
@ -79,7 +81,12 @@ uint64_t DelayPeakDetector::MaxPeakPeriod() const {
|
||||
return max_period_element->period_ms;
|
||||
}
|
||||
|
||||
bool DelayPeakDetector::Update(int inter_arrival_time, int target_level) {
|
||||
bool DelayPeakDetector::Update(int inter_arrival_time,
|
||||
bool reordered,
|
||||
int target_level) {
|
||||
if (ignore_reordered_packets_ && reordered) {
|
||||
return CheckPeakConditions();
|
||||
}
|
||||
if (inter_arrival_time > target_level + peak_detection_threshold_ ||
|
||||
inter_arrival_time > 2 * target_level) {
|
||||
// A delay peak is observed.
|
||||
|
||||
Reference in New Issue
Block a user