Chromium Code Reviews

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

Issue 1227213002: Update audio code to use size_t more correctly, webrtc/modules/audio_processing/ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
diff --git a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
index 8125707f120981c40817152a80bcbea43f2e3006..5f56bef7b6faefa29abab779a5c2183dc08f7845 100644
--- a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
+++ b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
@@ -42,12 +42,12 @@ class IntelligibilityEnhancer {
// TODO(bercic): the |cv_*|, |*_rate| and |gain_limit| parameters should
// probably go away once fine tuning is done. They override the internal
// constants in the class (kGainChangeLimit, kAnalyzeRate, kVarianceRate).
- IntelligibilityEnhancer(int erb_resolution,
+ IntelligibilityEnhancer(size_t erb_resolution,
int sample_rate_hz,
int channels,
int cv_type,
float cv_alpha,
- int cv_win,
+ size_t cv_win,
int analysis_rate,
int variance_rate,
float gain_limit);
@@ -72,11 +72,11 @@ class IntelligibilityEnhancer {
// All in frequency domain, receives input |in_block|, applies
// intelligibility enhancement, and writes result to |out_block|.
- virtual void ProcessAudioBlock(const std::complex<float>* const* in_block,
- int in_channels,
- int frames,
- int out_channels,
- std::complex<float>* const* out_block);
+ void ProcessAudioBlock(const std::complex<float>* const* in_block,
+ int in_channels,
+ size_t frames,
+ int out_channels,
+ std::complex<float>* const* out_block) override;
private:
IntelligibilityEnhancer* parent_;
@@ -102,23 +102,22 @@ class IntelligibilityEnhancer {
std::complex<float>* out_block);
// Returns number of ERB filters.
- static int GetBankSize(int sample_rate, int erb_resolution);
+ static size_t GetBankSize(int sample_rate, size_t erb_resolution);
// Initializes ERB filterbank.
void CreateErbBank();
// Analytically solves quadratic for optimal gains given |lambda|.
// Negative gains are set to 0. Stores the results in |sols|.
- void SolveForGainsGivenLambda(float lambda, int start_freq, float* sols);
+ void SolveForGainsGivenLambda(float lambda, size_t start_freq, float* sols);
// Computes variance across ERB filters from freq variance |var|.
// Stores in |result|.
void FilterVariance(const float* var, float* result);
// Returns dot product of vectors specified by size |length| arrays |a|,|b|.
- static float DotProduct(const float* a, const float* b, int length);
+ static float DotProduct(const float* a, const float* b, size_t length);
- static const int kErbResolution;
static const int kWindowSizeMs;
static const int kChunkSizeMs;
static const int kAnalyzeRate; // Default for |analysis_rate_|.
@@ -128,15 +127,15 @@ class IntelligibilityEnhancer {
static const float kKbdAlpha;
static const float kGainChangeLimit;
- const int freqs_; // Num frequencies in frequency domain.
- const int window_size_; // Window size in samples; also the block size.
- const int chunk_length_; // Chunk size in samples.
- const int bank_size_; // Num ERB filters.
+ const size_t freqs_; // Num frequencies in frequency domain.
+ const size_t window_size_; // Window size in samples; also the block size.
+ const size_t chunk_length_; // Chunk size in samples.
+ const size_t bank_size_; // Num ERB filters.
const int sample_rate_hz_;
const int erb_resolution_;
- const int channels_; // Num channels.
- const int analysis_rate_; // Num blocks before gains recalculated.
- const int variance_rate_; // Num recalculations before history is cleared.
+ const int channels_; // Num channels.
+ const int analysis_rate_; // Num blocks before gains recalculated.
+ const int variance_rate_; // Num recalculations before history is cleared.
intelligibility::VarianceArray clear_variance_;
intelligibility::VarianceArray noise_variance_;
@@ -144,7 +143,7 @@ class IntelligibilityEnhancer {
rtc::scoped_ptr<float[]> filtered_noise_var_;
float** filter_bank_; // TODO(ekmeyerson): Switch to using ChannelBuffer.
rtc::scoped_ptr<float[]> center_freqs_;
- int start_freq_;
+ size_t start_freq_;
rtc::scoped_ptr<float[]> rho_; // Production and interpretation SNR.
// for each ERB band.
rtc::scoped_ptr<float[]> gains_eq_; // Pre-filter modified gains.

Powered by Google App Engine