From b9b74569df5610084943c7960fd50cc7dcc06185 Mon Sep 17 00:00:00 2001 From: Ivo Creusen Date: Mon, 26 Oct 2020 17:49:25 +0100 Subject: [PATCH] Reset NetEq simulation step time if a large gap is detected. Large gaps can cause issues in NetEq simulations, so the simulation is ended whenever we encounter one. However, the time span of the gap is still included in the simulation time, leading to incorrect results. Bug: webrtc:10337 Change-Id: I94a1a0b46259e3718b1b73522a3886a17bedbb7d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190287 Reviewed-by: Jakob Ivarsson Commit-Queue: Ivo Creusen Cr-Commit-Position: refs/heads/master@{#32514} --- modules/audio_coding/neteq/tools/neteq_test.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/audio_coding/neteq/tools/neteq_test.cc b/modules/audio_coding/neteq/tools/neteq_test.cc index 7e2093de0e..997b034df0 100644 --- a/modules/audio_coding/neteq/tools/neteq_test.cc +++ b/modules/audio_coding/neteq/tools/neteq_test.cc @@ -270,6 +270,11 @@ NetEqTest::SimulationStepResult NetEqTest::RunToNextGetAudio() { // End the simulation if the gap is too large. This indicates an issue // with the event log file. const bool simulation_step_too_large = result.simulation_step_ms > 1000; + if (simulation_step_too_large) { + // If we don't reset the step time, the large gap will be included in + // the simulation time, which can be a large distortion. + result.simulation_step_ms = 10; + } result.is_simulation_finished = simulation_step_too_large || no_more_packets_to_decode || input_->ended();