Index: webrtc/modules/audio_processing/vad/vad_audio_proc.cc |
diff --git a/webrtc/modules/audio_processing/vad/vad_audio_proc.cc b/webrtc/modules/audio_processing/vad/vad_audio_proc.cc |
index e8f27f802de5468ca97e36e3e06ea82ef6d7cf44..8535d1ff5733ba29e0d68432e461c0a4c7754e82 100644 |
--- a/webrtc/modules/audio_processing/vad/vad_audio_proc.cc |
+++ b/webrtc/modules/audio_processing/vad/vad_audio_proc.cc |
@@ -76,7 +76,7 @@ void VadAudioProc::ResetBuffer() { |
} |
int VadAudioProc::ExtractFeatures(const int16_t* frame, |
- int length, |
+ size_t length, |
AudioFeatures* features) { |
features->num_frames = 0; |
if (length != kNumSubframeSamples) { |
@@ -100,7 +100,7 @@ int VadAudioProc::ExtractFeatures(const int16_t* frame, |
features->silence = false; |
Rms(features->rms, kMaxNumFrames); |
- for (int i = 0; i < kNum10msSubframes; ++i) { |
+ for (size_t i = 0; i < kNum10msSubframes; ++i) { |
if (features->rms[i] < kSilenceRms) { |
// PitchAnalysis can cause NaNs in the pitch gain if it's fed silence. |
// Bail out here instead. |
@@ -119,13 +119,13 @@ int VadAudioProc::ExtractFeatures(const int16_t* frame, |
// Computes |kLpcOrder + 1| correlation coefficients. |
void VadAudioProc::SubframeCorrelation(double* corr, |
- int length_corr, |
- int subframe_index) { |
+ size_t length_corr, |
+ size_t subframe_index) { |
assert(length_corr >= kLpcOrder + 1); |
double windowed_audio[kNumSubframeSamples + kNumPastSignalSamples]; |
- int buffer_index = subframe_index * kNumSubframeSamples; |
+ size_t buffer_index = subframe_index * kNumSubframeSamples; |
- for (int n = 0; n < kNumSubframeSamples + kNumPastSignalSamples; n++) |
+ for (size_t n = 0; n < kNumSubframeSamples + kNumPastSignalSamples; n++) |
windowed_audio[n] = audio_buffer_[buffer_index++] * kLpcAnalWin[n]; |
WebRtcIsac_AutoCorr(corr, windowed_audio, |
@@ -136,16 +136,16 @@ void VadAudioProc::SubframeCorrelation(double* corr, |
// The analysis window is 15 ms long and it is centered on the first half of |
// each 10ms sub-frame. This is equivalent to computing LPC coefficients for the |
// first half of each 10 ms subframe. |
-void VadAudioProc::GetLpcPolynomials(double* lpc, int length_lpc) { |
+void VadAudioProc::GetLpcPolynomials(double* lpc, size_t length_lpc) { |
assert(length_lpc >= kNum10msSubframes * (kLpcOrder + 1)); |
double corr[kLpcOrder + 1]; |
double reflec_coeff[kLpcOrder]; |
- for (int i = 0, offset_lpc = 0; i < kNum10msSubframes; |
+ for (size_t i = 0, offset_lpc = 0; i < kNum10msSubframes; |
i++, offset_lpc += kLpcOrder + 1) { |
SubframeCorrelation(corr, kLpcOrder + 1, i); |
corr[0] *= 1.0001; |
// This makes Lev-Durb a bit more stable. |
- for (int k = 0; k < kLpcOrder + 1; k++) { |
+ for (size_t k = 0; k < kLpcOrder + 1; k++) { |
corr[k] *= kCorrWeight[k]; |
} |
WebRtcIsac_LevDurb(&lpc[offset_lpc], reflec_coeff, corr, kLpcOrder); |
@@ -174,30 +174,31 @@ static float QuadraticInterpolation(float prev_val, |
// with the local minimum of A(z). It saves complexity, as we save one |
// inversion. Furthermore, we find the first local maximum of magnitude squared, |
// to save on one square root. |
-void VadAudioProc::FindFirstSpectralPeaks(double* f_peak, int length_f_peak) { |
+void VadAudioProc::FindFirstSpectralPeaks(double* f_peak, |
+ size_t length_f_peak) { |
assert(length_f_peak >= kNum10msSubframes); |
double lpc[kNum10msSubframes * (kLpcOrder + 1)]; |
// For all sub-frames. |
GetLpcPolynomials(lpc, kNum10msSubframes * (kLpcOrder + 1)); |
- const int kNumDftCoefficients = kDftSize / 2 + 1; |
+ const size_t kNumDftCoefficients = kDftSize / 2 + 1; |
float data[kDftSize]; |
- for (int i = 0; i < kNum10msSubframes; i++) { |
+ for (size_t i = 0; i < kNum10msSubframes; i++) { |
// Convert to float with zero pad. |
memset(data, 0, sizeof(data)); |
- for (int n = 0; n < kLpcOrder + 1; n++) { |
+ for (size_t n = 0; n < kLpcOrder + 1; n++) { |
data[n] = static_cast<float>(lpc[i * (kLpcOrder + 1) + n]); |
} |
// Transform to frequency domain. |
WebRtc_rdft(kDftSize, 1, data, ip_, w_fft_); |
- int index_peak = 0; |
+ size_t index_peak = 0; |
float prev_magn_sqr = data[0] * data[0]; |
float curr_magn_sqr = data[2] * data[2] + data[3] * data[3]; |
float next_magn_sqr; |
bool found_peak = false; |
- for (int n = 2; n < kNumDftCoefficients - 1; n++) { |
+ for (size_t n = 2; n < kNumDftCoefficients - 1; n++) { |
next_magn_sqr = |
data[2 * n] * data[2 * n] + data[2 * n + 1] * data[2 * n + 1]; |
if (curr_magn_sqr < prev_magn_sqr && curr_magn_sqr < next_magn_sqr) { |
@@ -228,7 +229,7 @@ void VadAudioProc::FindFirstSpectralPeaks(double* f_peak, int length_f_peak) { |
// Using iSAC functions to estimate pitch gains & lags. |
void VadAudioProc::PitchAnalysis(double* log_pitch_gains, |
double* pitch_lags_hz, |
- int length) { |
+ size_t length) { |
// TODO(turajs): This can be "imported" from iSAC & and the next two |
// constants. |
assert(length >= kNum10msSubframes); |
@@ -260,12 +261,12 @@ void VadAudioProc::PitchAnalysis(double* log_pitch_gains, |
&log_old_gain_, &old_lag_, log_pitch_gains, pitch_lags_hz); |
} |
-void VadAudioProc::Rms(double* rms, int length_rms) { |
+void VadAudioProc::Rms(double* rms, size_t length_rms) { |
assert(length_rms >= kNum10msSubframes); |
- int offset = kNumPastSignalSamples; |
- for (int i = 0; i < kNum10msSubframes; i++) { |
+ size_t offset = kNumPastSignalSamples; |
+ for (size_t i = 0; i < kNum10msSubframes; i++) { |
rms[i] = 0; |
- for (int n = 0; n < kNumSubframeSamples; n++, offset++) |
+ for (size_t n = 0; n < kNumSubframeSamples; n++, offset++) |
rms[i] += audio_buffer_[offset] * audio_buffer_[offset]; |
rms[i] = sqrt(rms[i] / kNumSubframeSamples); |
} |