Fix NetEq minimum and maximum delay always reset on acm creation.

Bug: webrtc:10305
Change-Id: Iecc55c3b4bb8416e2fd0cf26532b43dcd70a7cca
Reviewed-on: https://webrtc-review.googlesource.com/c/122280
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Cr-Commit-Position: refs/heads/master@{#26771}
This commit is contained in:
Ruslan Burakov
2019-02-20 13:41:59 +01:00
committed by Commit Bot
parent 8073db6d89
commit b35baccd6f
4 changed files with 7 additions and 6 deletions

View File

@ -652,9 +652,6 @@ int AudioCodingModuleImpl::InitializeReceiverSafe() {
// start-up.
if (receiver_initialized_)
receiver_.RemoveAllCodecs();
receiver_.ResetInitialDelay();
receiver_.SetMinimumDelay(0);
receiver_.SetMaximumDelay(0);
receiver_.FlushBuffers();
receiver_initialized_ = true;

View File

@ -85,7 +85,7 @@ DelayManager::DelayManager(size_t max_packets_in_buffer,
last_seq_no_(0),
last_timestamp_(0),
minimum_delay_ms_(base_minimum_delay_ms_),
maximum_delay_ms_(target_level_),
maximum_delay_ms_(0),
iat_cumulative_sum_(0),
max_iat_cumulative_sum_(0),
peak_detector_(*peak_detector),
@ -96,7 +96,6 @@ DelayManager::DelayManager(size_t max_packets_in_buffer,
enable_rtx_handling_(enable_rtx_handling) {
assert(peak_detector); // Should never be NULL.
RTC_DCHECK_GE(base_minimum_delay_ms_, 0);
RTC_DCHECK_LE(minimum_delay_ms_, maximum_delay_ms_);
Reset();
}

View File

@ -314,12 +314,17 @@ TEST_F(DelayManagerTest, BaseMinimumDelayGreaterThanBufferSize) {
SetPacketAudioLength(kFrameSizeMs);
constexpr int kBaseMinimumDelayMs = kMaxBufferSizeMs + 1;
constexpr int kMinimumDelayMs = 12;
constexpr int kMaximumDelayMs = 20;
constexpr int kMaxBufferSizeMsQ75 = 3 * kMaxBufferSizeMs / 4;
EXPECT_TRUE(dm_->SetMaximumDelay(kMaximumDelayMs));
// Base minimum delay is greater than minimum delay, that is why we clamp
// it to current the highest possible value which is maximum delay.
RTC_DCHECK_GT(kBaseMinimumDelayMs, kMinimumDelayMs);
RTC_DCHECK_GT(kBaseMinimumDelayMs, kMaxBufferSizeMs);
RTC_DCHECK_GT(kBaseMinimumDelayMs, kMaximumDelayMs);
RTC_DCHECK_LT(kMaximumDelayMs, kMaxBufferSizeMsQ75);
EXPECT_TRUE(dm_->SetMinimumDelay(kMinimumDelayMs));
EXPECT_TRUE(dm_->SetBaseMinimumDelay(kBaseMinimumDelayMs));

View File

@ -115,7 +115,7 @@ class NetEq {
int sample_rate_hz = 16000; // Initial value. Will change with input data.
bool enable_post_decode_vad = false;
size_t max_packets_in_buffer = 50;
int max_delay_ms = 2000;
int max_delay_ms = 0;
int min_delay_ms = 0;
bool enable_fast_accelerate = false;
bool enable_muted_state = false;