| Index: webrtc/modules/audio_processing/three_band_filter_bank.cc | 
| diff --git a/webrtc/modules/audio_processing/three_band_filter_bank.cc b/webrtc/modules/audio_processing/three_band_filter_bank.cc | 
| index efd7a7963402f49360e05ff066b906056a347570..e81e519ef37a7547c155ad7191c68b0623ce1864 100644 | 
| --- a/webrtc/modules/audio_processing/three_band_filter_bank.cc | 
| +++ b/webrtc/modules/audio_processing/three_band_filter_bank.cc | 
| @@ -42,8 +42,8 @@ | 
| namespace webrtc { | 
| namespace { | 
|  | 
| -const int kNumBands = 3; | 
| -const int kSparsity = 4; | 
| +const size_t kNumBands = 3; | 
| +const size_t kSparsity = 4; | 
|  | 
| // Factors to take into account when choosing |kNumCoeffs|: | 
| //   1. Higher |kNumCoeffs|, means faster transition, which ensures less | 
| @@ -53,7 +53,7 @@ const int kSparsity = 4; | 
| //      |kNumBands| * |kSparsity| * |kNumCoeffs| / 2, so it increases linearly | 
| //      with |kNumCoeffs|. | 
| //   3. The computation complexity also increases linearly with |kNumCoeffs|. | 
| -const int kNumCoeffs = 4; | 
| +const size_t kNumCoeffs = 4; | 
|  | 
| // The Matlab code to generate these |kLowpassCoeffs| is: | 
| // | 
| @@ -85,8 +85,11 @@ const float kLowpassCoeffs[kNumBands * kSparsity][kNumCoeffs] = | 
| // Downsamples |in| into |out|, taking one every |kNumbands| starting from | 
| // |offset|. |split_length| is the |out| length. |in| has to be at least | 
| // |kNumBands| * |split_length| long. | 
| -void Downsample(const float* in, int split_length, int offset, float* out) { | 
| -  for (int i = 0; i < split_length; ++i) { | 
| +void Downsample(const float* in, | 
| +                size_t split_length, | 
| +                size_t offset, | 
| +                float* out) { | 
| +  for (size_t i = 0; i < split_length; ++i) { | 
| out[i] = in[kNumBands * i + offset]; | 
| } | 
| } | 
| @@ -94,8 +97,8 @@ void Downsample(const float* in, int split_length, int offset, float* out) { | 
| // Upsamples |in| into |out|, scaling by |kNumBands| and accumulating it every | 
| // |kNumBands| starting from |offset|. |split_length| is the |in| length. |out| | 
| // has to be at least |kNumBands| * |split_length| long. | 
| -void Upsample(const float* in, int split_length, int offset, float* out) { | 
| -  for (int i = 0; i < split_length; ++i) { | 
| +void Upsample(const float* in, size_t split_length, size_t offset, float* out) { | 
| +  for (size_t i = 0; i < split_length; ++i) { | 
| out[kNumBands * i + offset] += kNumBands * in[i]; | 
| } | 
| } | 
| @@ -105,11 +108,11 @@ void Upsample(const float* in, int split_length, int offset, float* out) { | 
| // Because the low-pass filter prototype has half bandwidth it is possible to | 
| // use a DCT to shift it in both directions at the same time, to the center | 
| // frequencies [1 / 12, 3 / 12, 5 / 12]. | 
| -ThreeBandFilterBank::ThreeBandFilterBank(int length) | 
| +ThreeBandFilterBank::ThreeBandFilterBank(size_t length) | 
| : in_buffer_(rtc::CheckedDivExact(length, kNumBands)), | 
| out_buffer_(in_buffer_.size()) { | 
| -  for (int i = 0; i < kSparsity; ++i) { | 
| -    for (int j = 0; j < kNumBands; ++j) { | 
| +  for (size_t i = 0; i < kSparsity; ++i) { | 
| +    for (size_t j = 0; j < kNumBands; ++j) { | 
| analysis_filters_.push_back(new SparseFIRFilter( | 
| kLowpassCoeffs[i * kNumBands + j], kNumCoeffs, kSparsity, i)); | 
| synthesis_filters_.push_back(new SparseFIRFilter( | 
| @@ -119,7 +122,7 @@ ThreeBandFilterBank::ThreeBandFilterBank(int length) | 
| dct_modulation_.resize(kNumBands * kSparsity); | 
| for (size_t i = 0; i < dct_modulation_.size(); ++i) { | 
| dct_modulation_[i].resize(kNumBands); | 
| -    for (int j = 0; j < kNumBands; ++j) { | 
| +    for (size_t j = 0; j < kNumBands; ++j) { | 
| dct_modulation_[i][j] = | 
| 2.f * cos(2.f * M_PI * i * (2.f * j + 1.f) / dct_modulation_.size()); | 
| } | 
| @@ -133,17 +136,16 @@ ThreeBandFilterBank::ThreeBandFilterBank(int length) | 
| //      of |kSparsity|. | 
| //   3. Modulating with cosines and accumulating to get the desired band. | 
| void ThreeBandFilterBank::Analysis(const float* in, | 
| -                                   int length, | 
| +                                   size_t length, | 
| float* const* out) { | 
| -  CHECK_EQ(static_cast<int>(in_buffer_.size()), | 
| -           rtc::CheckedDivExact(length, kNumBands)); | 
| -  for (int i = 0; i < kNumBands; ++i) { | 
| +  CHECK_EQ(in_buffer_.size(), rtc::CheckedDivExact(length, kNumBands)); | 
| +  for (size_t i = 0; i < kNumBands; ++i) { | 
| memset(out[i], 0, in_buffer_.size() * sizeof(*out[i])); | 
| } | 
| -  for (int i = 0; i < kNumBands; ++i) { | 
| +  for (size_t i = 0; i < kNumBands; ++i) { | 
| Downsample(in, in_buffer_.size(), kNumBands - i - 1, &in_buffer_[0]); | 
| -    for (int j = 0; j < kSparsity; ++j) { | 
| -      const int offset = i + j * kNumBands; | 
| +    for (size_t j = 0; j < kSparsity; ++j) { | 
| +      const size_t offset = i + j * kNumBands; | 
| analysis_filters_[offset]->Filter(&in_buffer_[0], | 
| in_buffer_.size(), | 
| &out_buffer_[0]); | 
| @@ -159,13 +161,13 @@ void ThreeBandFilterBank::Analysis(const float* in, | 
| //      |kSparsity| signals with different delays. | 
| //   3. Parallel to serial upsampling by a factor of |kNumBands|. | 
| void ThreeBandFilterBank::Synthesis(const float* const* in, | 
| -                                    int split_length, | 
| +                                    size_t split_length, | 
| float* out) { | 
| -  CHECK_EQ(static_cast<int>(in_buffer_.size()), split_length); | 
| +  CHECK_EQ(in_buffer_.size(), split_length); | 
| memset(out, 0, kNumBands * in_buffer_.size() * sizeof(*out)); | 
| -  for (int i = 0; i < kNumBands; ++i) { | 
| -    for (int j = 0; j < kSparsity; ++j) { | 
| -      const int offset = i + j * kNumBands; | 
| +  for (size_t i = 0; i < kNumBands; ++i) { | 
| +    for (size_t j = 0; j < kSparsity; ++j) { | 
| +      const size_t offset = i + j * kNumBands; | 
| UpModulate(in, in_buffer_.size(), offset, &in_buffer_[0]); | 
| synthesis_filters_[offset]->Filter(&in_buffer_[0], | 
| in_buffer_.size(), | 
| @@ -181,11 +183,11 @@ void ThreeBandFilterBank::Synthesis(const float* const* in, | 
| // cosines used for modulation. |split_length| is the length of |in| and each | 
| // band of |out|. | 
| void ThreeBandFilterBank::DownModulate(const float* in, | 
| -                                       int split_length, | 
| -                                       int offset, | 
| +                                       size_t split_length, | 
| +                                       size_t offset, | 
| float* const* out) { | 
| -  for (int i = 0; i < kNumBands; ++i) { | 
| -    for (int j = 0; j < split_length; ++j) { | 
| +  for (size_t i = 0; i < kNumBands; ++i) { | 
| +    for (size_t j = 0; j < split_length; ++j) { | 
| out[i][j] += dct_modulation_[offset][i] * in[j]; | 
| } | 
| } | 
| @@ -196,12 +198,12 @@ void ThreeBandFilterBank::DownModulate(const float* in, | 
| // |offset| is the index in the period of the cosines used for modulation. | 
| // |split_length| is the length of each band of |in| and |out|. | 
| void ThreeBandFilterBank::UpModulate(const float* const* in, | 
| -                                     int split_length, | 
| -                                     int offset, | 
| +                                     size_t split_length, | 
| +                                     size_t offset, | 
| float* out) { | 
| memset(out, 0, split_length * sizeof(*out)); | 
| -  for (int i = 0; i < kNumBands; ++i) { | 
| -    for (int j = 0; j < split_length; ++j) { | 
| +  for (size_t i = 0; i < kNumBands; ++i) { | 
| +    for (size_t j = 0; j < split_length; ++j) { | 
| out[j] += dct_modulation_[offset][i] * in[i][j]; | 
| } | 
| } | 
|  |