Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(684)

Unified Diff: webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.cc

Issue 2808513003: Add SafeClamp(), which accepts args of different types (Closed)
Patch Set: rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..f5414aa87835f74e8e8e4d1b2472c23d201789a7 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>(lll, 1, num_freqs) - 1;
+ ll = rtc::SafeClamp<size_t>(ll, 1, num_freqs) - 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>(rrr, 1, num_freqs) - 1;
+ rr = rtc::SafeClamp<size_t>(rr, 1, num_freqs) - 1;
float step = ll == lll ? 0.f : 1.f / (ll - lll);
float element = 0.f;

Powered by Google App Engine
This is Rietveld 408576698