diff --git a/modules/audio_coding/neteq/delay_manager.cc b/modules/audio_coding/neteq/delay_manager.cc index 19e0af2b34..3d6e5a315b 100644 --- a/modules/audio_coding/neteq/delay_manager.cc +++ b/modules/audio_coding/neteq/delay_manager.cc @@ -395,7 +395,7 @@ int DelayManager::CalculateTargetLevel(int iat_packets, bool reordered) { break; } case INTER_ARRIVAL_TIME: { - target_level = bucket_index; + target_level = std::max(bucket_index, 1); base_target_level_ = target_level; // Update detector for delay peaks. bool delay_peak_found = diff --git a/modules/audio_coding/neteq/histogram.cc b/modules/audio_coding/neteq/histogram.cc index 99ea9aa785..d0da16bdf2 100644 --- a/modules/audio_coding/neteq/histogram.cc +++ b/modules/audio_coding/neteq/histogram.cc @@ -116,14 +116,14 @@ int Histogram::Quantile(int probability) { int inverse_probability = (1 << 30) - probability; size_t index = 0; // Start from the beginning of |buckets_|. int sum = 1 << 30; // Assign to 1 in Q30. - sum -= buckets_[index]; // Ensure that target level is >= 1. + sum -= buckets_[index]; - do { + while ((sum > inverse_probability) && (index < buckets_.size() - 1)) { // Subtract the probabilities one by one until the sum is no longer greater // than |inverse_probability|. ++index; sum -= buckets_[index]; - } while ((sum > inverse_probability) && (index < buckets_.size() - 1)); + } return static_cast(index); }