| Index: webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc
|
| diff --git a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc
|
| index 7ff2cf40429230d152d92e46184eaf85cb2329f5..dd24ab69c9932473abf870c3466565c66ffffaa3 100644
|
| --- a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc
|
| +++ b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc
|
| @@ -18,6 +18,7 @@
|
|
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/logging.h"
|
| +#include "webrtc/base/safe_minmax.h"
|
| #include "webrtc/common_audio/include/audio_util.h"
|
| #include "webrtc/common_audio/window_generator.h"
|
|
|
| @@ -287,23 +288,23 @@ std::vector<std::vector<float>> IntelligibilityEnhancer::CreateErbBank(
|
| }
|
|
|
| for (size_t i = 1; i <= bank_size_; ++i) {
|
| - static const size_t kOne = 1; // Avoids repeated static_cast<>s below.
|
| - size_t lll =
|
| - static_cast<size_t>(round(center_freqs_[std::max(kOne, i - lf) - 1] *
|
| - num_freqs / (0.5f * sample_rate_hz_)));
|
| - size_t ll = static_cast<size_t>(round(center_freqs_[std::max(kOne, i) - 1] *
|
| - num_freqs / (0.5f * sample_rate_hz_)));
|
| - lll = std::min(num_freqs, std::max(lll, kOne)) - 1;
|
| - ll = std::min(num_freqs, std::max(ll, kOne)) - 1;
|
| + size_t lll = static_cast<size_t>(
|
| + round(center_freqs_[rtc::SafeMax<size_t>(1, i - lf) - 1] * num_freqs /
|
| + (0.5f * sample_rate_hz_)));
|
| + size_t ll = static_cast<size_t>(
|
| + round(center_freqs_[rtc::SafeMax<size_t>(1, i) - 1] * num_freqs /
|
| + (0.5f * sample_rate_hz_)));
|
| + lll = rtc::SafeClamp<size_t>(1, num_freqs, lll) - 1;
|
| + ll = rtc::SafeClamp<size_t>(1, num_freqs, ll) - 1;
|
|
|
| size_t rrr = static_cast<size_t>(
|
| - round(center_freqs_[std::min(bank_size_, i + rf) - 1] * num_freqs /
|
| - (0.5f * sample_rate_hz_)));
|
| + round(center_freqs_[rtc::SafeMin<size_t>(bank_size_, i + rf) - 1] *
|
| + num_freqs / (0.5f * sample_rate_hz_)));
|
| size_t rr = static_cast<size_t>(
|
| - round(center_freqs_[std::min(bank_size_, i + 1) - 1] * num_freqs /
|
| - (0.5f * sample_rate_hz_)));
|
| - rrr = std::min(num_freqs, std::max(rrr, kOne)) - 1;
|
| - rr = std::min(num_freqs, std::max(rr, kOne)) - 1;
|
| + round(center_freqs_[rtc::SafeMin<size_t>(bank_size_, i + 1) - 1] *
|
| + num_freqs / (0.5f * sample_rate_hz_)));
|
| + rrr = rtc::SafeClamp<size_t>(1, num_freqs, rrr) - 1;
|
| + rr = rtc::SafeClamp<size_t>(1, num_freqs, rr) - 1;
|
|
|
| float step = ll == lll ? 0.f : 1.f / (ll - lll);
|
| float element = 0.f;
|
|
|