| 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 694 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  705     //   voice_mix_factor = (-5179 + 19931x - 16422x^2 + 5776x^3) / 4096; |  705     //   voice_mix_factor = (-5179 + 19931x - 16422x^2 + 5776x^3) / 4096; | 
|  706     // else |  706     // else | 
|  707     //   voice_mix_factor = 0; |  707     //   voice_mix_factor = 0; | 
|  708     if (corr_coefficient > 7875) { |  708     if (corr_coefficient > 7875) { | 
|  709       int16_t x1, x2, x3; |  709       int16_t x1, x2, x3; | 
|  710       // |corr_coefficient| is in Q14. |  710       // |corr_coefficient| is in Q14. | 
|  711       x1 = static_cast<int16_t>(corr_coefficient); |  711       x1 = static_cast<int16_t>(corr_coefficient); | 
|  712       x2 = (x1 * x1) >> 14;   // Shift 14 to keep result in Q14. |  712       x2 = (x1 * x1) >> 14;   // Shift 14 to keep result in Q14. | 
|  713       x3 = (x1 * x2) >> 14; |  713       x3 = (x1 * x2) >> 14; | 
|  714       static const int kCoefficients[4] = { -5179, 19931, -16422, 5776 }; |  714       static const int kCoefficients[4] = { -5179, 19931, -16422, 5776 }; | 
|  715       int32_t temp_sum = kCoefficients[0] << 14; |  715       int32_t temp_sum = kCoefficients[0] * 16384; | 
|  716       temp_sum += kCoefficients[1] * x1; |  716       temp_sum += kCoefficients[1] * x1; | 
|  717       temp_sum += kCoefficients[2] * x2; |  717       temp_sum += kCoefficients[2] * x2; | 
|  718       temp_sum += kCoefficients[3] * x3; |  718       temp_sum += kCoefficients[3] * x3; | 
|  719       parameters.voice_mix_factor = |  719       parameters.voice_mix_factor = | 
|  720           static_cast<int16_t>(std::min(temp_sum / 4096, 16384)); |  720           static_cast<int16_t>(std::min(temp_sum / 4096, 16384)); | 
|  721       parameters.voice_mix_factor = std::max(parameters.voice_mix_factor, |  721       parameters.voice_mix_factor = std::max(parameters.voice_mix_factor, | 
|  722                                              static_cast<int16_t>(0)); |  722                                              static_cast<int16_t>(0)); | 
|  723     } else { |  723     } else { | 
|  724       parameters.voice_mix_factor = 0; |  724       parameters.voice_mix_factor = 0; | 
|  725     } |  725     } | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|  744         parameters.mute_slope = (temp_ratio + 1) / 2; |  744         parameters.mute_slope = (temp_ratio + 1) / 2; | 
|  745       } else { |  745       } else { | 
|  746         // Divide by 8, with proper rounding. |  746         // Divide by 8, with proper rounding. | 
|  747         parameters.mute_slope = (temp_ratio + 4) / 8; |  747         parameters.mute_slope = (temp_ratio + 4) / 8; | 
|  748       } |  748       } | 
|  749       parameters.onset = true; |  749       parameters.onset = true; | 
|  750     } else { |  750     } else { | 
|  751       // Calculate (1 - slope) / distortion_lag. |  751       // Calculate (1 - slope) / distortion_lag. | 
|  752       // Shift |slope| by 7 to Q20 before the division. The result is in Q20. |  752       // Shift |slope| by 7 to Q20 before the division. The result is in Q20. | 
|  753       parameters.mute_slope = WebRtcSpl_DivW32W16( |  753       parameters.mute_slope = WebRtcSpl_DivW32W16( | 
|  754           (8192 - slope) << 7, static_cast<int16_t>(distortion_lag)); |  754           (8192 - slope) * 128, static_cast<int16_t>(distortion_lag)); | 
|  755       if (parameters.voice_mix_factor <= 13107) { |  755       if (parameters.voice_mix_factor <= 13107) { | 
|  756         // Make sure the mute factor decreases from 1.0 to 0.9 in no more than |  756         // Make sure the mute factor decreases from 1.0 to 0.9 in no more than | 
|  757         // 6.25 ms. |  757         // 6.25 ms. | 
|  758         // mute_slope >= 0.005 / fs_mult in Q20. |  758         // mute_slope >= 0.005 / fs_mult in Q20. | 
|  759         parameters.mute_slope = std::max(5243 / fs_mult, parameters.mute_slope); |  759         parameters.mute_slope = std::max(5243 / fs_mult, parameters.mute_slope); | 
|  760       } else if (slope > 8028) { |  760       } else if (slope > 8028) { | 
|  761         parameters.mute_slope = 0; |  761         parameters.mute_slope = 0; | 
|  762       } |  762       } | 
|  763       parameters.onset = false; |  763       parameters.onset = false; | 
|  764     } |  764     } | 
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  961   const size_t kMaxRandSamples = RandomVector::kRandomTableSize; |  961   const size_t kMaxRandSamples = RandomVector::kRandomTableSize; | 
|  962   while (samples_generated < length) { |  962   while (samples_generated < length) { | 
|  963     size_t rand_length = std::min(length - samples_generated, kMaxRandSamples); |  963     size_t rand_length = std::min(length - samples_generated, kMaxRandSamples); | 
|  964     random_vector_->IncreaseSeedIncrement(seed_increment); |  964     random_vector_->IncreaseSeedIncrement(seed_increment); | 
|  965     random_vector_->Generate(rand_length, &random_vector[samples_generated]); |  965     random_vector_->Generate(rand_length, &random_vector[samples_generated]); | 
|  966     samples_generated += rand_length; |  966     samples_generated += rand_length; | 
|  967   } |  967   } | 
|  968 } |  968 } | 
|  969  |  969  | 
|  970 }  // namespace webrtc |  970 }  // namespace webrtc | 
| OLD | NEW |