| 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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 for (size_t i = 0; i < length; i++) { | 265 for (size_t i = 0; i < length; i++) { |
| 266 output[i] = | 266 output[i] = |
| 267 (factor * input1[i] + complement_factor * input2[i] + 8192) >> 14; | 267 (factor * input1[i] + complement_factor * input2[i] + 8192) >> 14; |
| 268 factor -= factor_decrement; | 268 factor -= factor_decrement; |
| 269 complement_factor += factor_decrement; | 269 complement_factor += factor_decrement; |
| 270 } | 270 } |
| 271 *mix_factor = factor; | 271 *mix_factor = factor; |
| 272 } | 272 } |
| 273 | 273 |
| 274 void DspHelper::UnmuteSignal(const int16_t* input, size_t length, | 274 void DspHelper::UnmuteSignal(const int16_t* input, size_t length, |
| 275 int16_t* factor, int increment, | 275 int16_t* factor, int16_t increment, |
| 276 int16_t* output) { | 276 int16_t* output) { |
| 277 uint16_t factor_16b = *factor; | 277 uint16_t factor_16b = *factor; |
| 278 int32_t factor_32b = (static_cast<int32_t>(factor_16b) << 6) + 32; | 278 int32_t factor_32b = (static_cast<int32_t>(factor_16b) << 6) + 32; |
| 279 for (size_t i = 0; i < length; i++) { | 279 for (size_t i = 0; i < length; i++) { |
| 280 output[i] = (factor_16b * input[i] + 8192) >> 14; | 280 output[i] = (factor_16b * input[i] + 8192) >> 14; |
| 281 factor_32b = std::max(factor_32b + increment, 0); | 281 factor_32b = std::max(factor_32b + increment, 0); |
| 282 factor_16b = std::min(16384, factor_32b >> 6); | 282 factor_16b = std::min(16384, factor_32b >> 6); |
| 283 } | 283 } |
| 284 *factor = factor_16b; | 284 *factor = factor_16b; |
| 285 } | 285 } |
| 286 | 286 |
| 287 void DspHelper::MuteSignal(int16_t* signal, int mute_slope, size_t length) { | 287 void DspHelper::MuteSignal(int16_t* signal, int16_t mute_slope, size_t length) { |
| 288 int32_t factor = (16384 << 6) + 32; | 288 int32_t factor = (16384 << 6) + 32; |
| 289 for (size_t i = 0; i < length; i++) { | 289 for (size_t i = 0; i < length; i++) { |
| 290 signal[i] = ((factor >> 6) * signal[i] + 8192) >> 14; | 290 signal[i] = ((factor >> 6) * signal[i] + 8192) >> 14; |
| 291 factor -= mute_slope; | 291 factor -= mute_slope; |
| 292 } | 292 } |
| 293 } | 293 } |
| 294 | 294 |
| 295 int DspHelper::DownsampleTo4kHz(const int16_t* input, size_t input_length, | 295 int DspHelper::DownsampleTo4kHz(const int16_t* input, size_t input_length, |
| 296 int output_length, int input_rate_hz, | 296 int output_length, int input_rate_hz, |
| 297 bool compensate_delay, int16_t* output) { | 297 bool compensate_delay, int16_t* output) { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 } | 344 } |
| 345 | 345 |
| 346 // Returns -1 if input signal is too short; 0 otherwise. | 346 // Returns -1 if input signal is too short; 0 otherwise. |
| 347 return WebRtcSpl_DownsampleFast( | 347 return WebRtcSpl_DownsampleFast( |
| 348 &input[filter_length - 1], static_cast<int>(input_length) - | 348 &input[filter_length - 1], static_cast<int>(input_length) - |
| 349 (filter_length - 1), output, output_length, filter_coefficients, | 349 (filter_length - 1), output, output_length, filter_coefficients, |
| 350 filter_length, factor, filter_delay); | 350 filter_length, factor, filter_delay); |
| 351 } | 351 } |
| 352 | 352 |
| 353 } // namespace webrtc | 353 } // namespace webrtc |
| OLD | NEW |