Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 168 // in expanded_signal. Keep the first 210 * kMaxSampleRate / 8000 samples, | 168 // in expanded_signal. Keep the first 210 * kMaxSampleRate / 8000 samples, |
| 169 // but shift them towards the end of the buffer. This is ok, since all of | 169 // but shift them towards the end of the buffer. This is ok, since all of |
| 170 // the buffer will be expand data anyway, so as long as the beginning is | 170 // the buffer will be expand data anyway, so as long as the beginning is |
| 171 // left untouched, we're fine. | 171 // left untouched, we're fine. |
| 172 int16_t length_diff = *old_length - 210 * kMaxSampleRate / 8000; | 172 int16_t length_diff = *old_length - 210 * kMaxSampleRate / 8000; |
| 173 sync_buffer_->InsertZerosAtIndex(length_diff, sync_buffer_->next_index()); | 173 sync_buffer_->InsertZerosAtIndex(length_diff, sync_buffer_->next_index()); |
| 174 *old_length = 210 * kMaxSampleRate / 8000; | 174 *old_length = 210 * kMaxSampleRate / 8000; |
| 175 // This is the truncated length. | 175 // This is the truncated length. |
| 176 } | 176 } |
| 177 // This assert should always be true thanks to the if statement above. | 177 // This assert should always be true thanks to the if statement above. |
| 178 assert(210 * kMaxSampleRate / 8000 - *old_length >= 0); | 178 assert(210 * kMaxSampleRate / 8000 >= *old_length); |
| 179 | 179 |
| 180 AudioMultiVector expanded_temp(num_channels_); | 180 AudioMultiVector expanded_temp(num_channels_); |
| 181 expand_->Process(&expanded_temp); | 181 expand_->Process(&expanded_temp); |
| 182 *expand_period = static_cast<int>(expanded_temp.Size()); // Samples per | 182 *expand_period = static_cast<int>(expanded_temp.Size()); // Samples per |
| 183 // channel. | 183 // channel. |
| 184 | 184 |
| 185 expanded_.Clear(); | 185 expanded_.Clear(); |
| 186 // Copy what is left since earlier into the expanded vector. | 186 // Copy what is left since earlier into the expanded vector. |
| 187 expanded_.PushBackFromIndex(*sync_buffer_, sync_buffer_->next_index()); | 187 expanded_.PushBackFromIndex(*sync_buffer_, sync_buffer_->next_index()); |
| 188 assert(expanded_.Size() == static_cast<size_t>(*old_length)); | 188 assert(expanded_.Size() == static_cast<size_t>(*old_length)); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 335 correlation, norm_shift); | 335 correlation, norm_shift); |
| 336 | 336 |
| 337 // Calculate allowed starting point for peak finding. | 337 // Calculate allowed starting point for peak finding. |
| 338 // The peak location bestIndex must fulfill two criteria: | 338 // The peak location bestIndex must fulfill two criteria: |
| 339 // (1) w16_bestIndex + input_length < | 339 // (1) w16_bestIndex + input_length < |
| 340 // timestamps_per_call_ + expand_->overlap_length(); | 340 // timestamps_per_call_ + expand_->overlap_length(); |
| 341 // (2) w16_bestIndex + input_length < start_position. | 341 // (2) w16_bestIndex + input_length < start_position. |
| 342 int start_index = timestamps_per_call_ + | 342 int start_index = timestamps_per_call_ + |
| 343 static_cast<int>(expand_->overlap_length()); | 343 static_cast<int>(expand_->overlap_length()); |
| 344 start_index = std::max(start_position, start_index); | 344 start_index = std::max(start_position, start_index); |
| 345 start_index = std::max(start_index - input_length, 0); | 345 start_index = (input_length > start_index) ? 0 : (start_index - input_length); |
|
kwiberg-webrtc
2015/06/10 07:49:10
Not for now, perhaps, but it strikes me that you c
Peter Kasting
2015/06/11 04:14:53
Yeah. There isn't one available right now but it'
| |
| 346 // Downscale starting index to 4kHz domain. (fs_mult_ * 2 = fs_hz_ / 4000.) | 346 // Downscale starting index to 4kHz domain. (fs_mult_ * 2 = fs_hz_ / 4000.) |
| 347 int start_index_downsamp = start_index / (fs_mult_ * 2); | 347 int start_index_downsamp = start_index / (fs_mult_ * 2); |
| 348 | 348 |
| 349 // Calculate a modified |stop_position_downsamp| to account for the increased | 349 // Calculate a modified |stop_position_downsamp| to account for the increased |
| 350 // start index |start_index_downsamp| and the effective array length. | 350 // start index |start_index_downsamp| and the effective array length. |
| 351 int modified_stop_pos = | 351 int modified_stop_pos = |
| 352 std::min(stop_position_downsamp, | 352 std::min(stop_position_downsamp, |
| 353 kMaxCorrelationLength + pad_length - start_index_downsamp); | 353 kMaxCorrelationLength + pad_length - start_index_downsamp); |
| 354 int best_correlation_index; | 354 int best_correlation_index; |
| 355 int16_t best_correlation; | 355 int16_t best_correlation; |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 372 } | 372 } |
| 373 return best_correlation_index; | 373 return best_correlation_index; |
| 374 } | 374 } |
| 375 | 375 |
| 376 int Merge::RequiredFutureSamples() { | 376 int Merge::RequiredFutureSamples() { |
| 377 return static_cast<int>(fs_hz_ / 100 * num_channels_); // 10 ms. | 377 return static_cast<int>(fs_hz_ / 100 * num_channels_); // 10 ms. |
| 378 } | 378 } |
| 379 | 379 |
| 380 | 380 |
| 381 } // namespace webrtc | 381 } // namespace webrtc |
| OLD | NEW |