 Chromium Code Reviews
 Chromium Code Reviews Issue 1227203003:
  Update audio code to use size_t more correctly, webrtc/common_audio/ portion.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc@master
    
  
    Issue 1227203003:
  Update audio code to use size_t more correctly, webrtc/common_audio/ portion.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc@master| Index: webrtc/common_audio/blocker.cc | 
| diff --git a/webrtc/common_audio/blocker.cc b/webrtc/common_audio/blocker.cc | 
| index 9569df4701d877510ecb0c2e2f857697b64fe5ce..d68e031e25bd33039c570187ce9d5cdb6411dd12 100644 | 
| --- a/webrtc/common_audio/blocker.cc | 
| +++ b/webrtc/common_audio/blocker.cc | 
| @@ -18,15 +18,15 @@ namespace { | 
| // Adds |a| and |b| frame by frame into |result| (basically matrix addition). | 
| void AddFrames(const float* const* a, | 
| - int a_start_index, | 
| + size_t a_start_index, | 
| const float* const* b, | 
| int b_start_index, | 
| - int num_frames, | 
| + size_t num_frames, | 
| int num_channels, | 
| float* const* result, | 
| - int result_start_index) { | 
| + size_t result_start_index) { | 
| for (int i = 0; i < num_channels; ++i) { | 
| - for (int j = 0; j < num_frames; ++j) { | 
| + for (size_t j = 0; j < num_frames; ++j) { | 
| result[i][j + result_start_index] = | 
| a[i][j + a_start_index] + b[i][j + b_start_index]; | 
| } | 
| @@ -35,11 +35,11 @@ void AddFrames(const float* const* a, | 
| // Copies |src| into |dst| channel by channel. | 
| void CopyFrames(const float* const* src, | 
| - int src_start_index, | 
| - int num_frames, | 
| + size_t src_start_index, | 
| + size_t num_frames, | 
| int num_channels, | 
| float* const* dst, | 
| - int dst_start_index) { | 
| + size_t dst_start_index) { | 
| for (int i = 0; i < num_channels; ++i) { | 
| memcpy(&dst[i][dst_start_index], | 
| &src[i][src_start_index], | 
| @@ -49,11 +49,11 @@ void CopyFrames(const float* const* src, | 
| // Moves |src| into |dst| channel by channel. | 
| void MoveFrames(const float* const* src, | 
| - int src_start_index, | 
| - int num_frames, | 
| + size_t src_start_index, | 
| + size_t num_frames, | 
| int num_channels, | 
| float* const* dst, | 
| - int dst_start_index) { | 
| + size_t dst_start_index) { | 
| for (int i = 0; i < num_channels; ++i) { | 
| memmove(&dst[i][dst_start_index], | 
| &src[i][src_start_index], | 
| @@ -62,8 +62,8 @@ void MoveFrames(const float* const* src, | 
| } | 
| void ZeroOut(float* const* buffer, | 
| - int starting_idx, | 
| - int num_frames, | 
| + size_t starting_idx, | 
| + size_t num_frames, | 
| int num_channels) { | 
| for (int i = 0; i < num_channels; ++i) { | 
| memset(&buffer[i][starting_idx], 0, | 
| @@ -74,18 +74,18 @@ void ZeroOut(float* const* buffer, | 
| // Pointwise multiplies each channel of |frames| with |window|. Results are | 
| // stored in |frames|. | 
| void ApplyWindow(const float* window, | 
| - int num_frames, | 
| + size_t num_frames, | 
| int num_channels, | 
| float* const* frames) { | 
| for (int i = 0; i < num_channels; ++i) { | 
| - for (int j = 0; j < num_frames; ++j) { | 
| + for (size_t j = 0; j < num_frames; ++j) { | 
| frames[i][j] = frames[i][j] * window[j]; | 
| } | 
| } | 
| } | 
| -int gcd(int a, int b) { | 
| - int tmp; | 
| +size_t gcd(size_t a, size_t b) { | 
| + size_t tmp; | 
| while (b) { | 
| tmp = a; | 
| a = b; | 
| @@ -98,12 +98,12 @@ int gcd(int a, int b) { | 
| namespace webrtc { | 
| -Blocker::Blocker(int chunk_size, | 
| - int block_size, | 
| +Blocker::Blocker(size_t chunk_size, | 
| + size_t block_size, | 
| int num_input_channels, | 
| int num_output_channels, | 
| const float* window, | 
| - int shift_amount, | 
| + size_t shift_amount, | 
| BlockerCallback* callback) | 
| : chunk_size_(chunk_size), | 
| block_size_(block_size), | 
| @@ -122,7 +122,7 @@ Blocker::Blocker(int chunk_size, | 
| CHECK(window); | 
| memcpy(window_.get(), window, block_size_ * sizeof(*window_.get())); | 
| - input_buffer_.MoveReadPosition(-initial_delay_); | 
| + input_buffer_.MoveReadPosition(-static_cast<int>(initial_delay_)); | 
| 
Peter Kasting
2015/07/23 00:26:47
A couple places we call MoveReadPosition() with a
 
Andrew MacDonald
2015/07/24 19:01:55
I think that makes a lot of sense. CL up here:
htt
 
Peter Kasting
2015/07/27 23:23:38
I will update once you land this.
 | 
| } | 
| // When block_size < chunk_size the input and output buffers look like this: | 
| @@ -165,7 +165,7 @@ Blocker::Blocker(int chunk_size, | 
| // | 
| // TODO(claguna): Look at using ring buffers to eliminate some copies. | 
| void Blocker::ProcessChunk(const float* const* input, | 
| - int chunk_size, | 
| + size_t chunk_size, | 
| int num_input_channels, | 
| int num_output_channels, | 
| float* const* output) { | 
| @@ -174,13 +174,14 @@ void Blocker::ProcessChunk(const float* const* input, | 
| CHECK_EQ(num_output_channels, num_output_channels_); | 
| input_buffer_.Write(input, num_input_channels, chunk_size_); | 
| - int first_frame_in_block = frame_offset_; | 
| + size_t first_frame_in_block = frame_offset_; | 
| // Loop through blocks. | 
| while (first_frame_in_block < chunk_size_) { | 
| input_buffer_.Read(input_block_.channels(), num_input_channels, | 
| block_size_); | 
| - input_buffer_.MoveReadPosition(-block_size_ + shift_amount_); | 
| + input_buffer_.MoveReadPosition( | 
| + -static_cast<int>(block_size_) + static_cast<int>(shift_amount_)); | 
| ApplyWindow(window_.get(), | 
| block_size_, |