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 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 | 215 |
216 // Combine voiced and unvoiced contributions. | 216 // Combine voiced and unvoiced contributions. |
217 | 217 |
218 // Set a suitable cross-fading slope. | 218 // Set a suitable cross-fading slope. |
219 // For lag = | 219 // For lag = |
220 // <= 31 * fs_mult => go from 1 to 0 in about 8 ms; | 220 // <= 31 * fs_mult => go from 1 to 0 in about 8 ms; |
221 // (>= 31 .. <= 63) * fs_mult => go from 1 to 0 in about 16 ms; | 221 // (>= 31 .. <= 63) * fs_mult => go from 1 to 0 in about 16 ms; |
222 // >= 64 * fs_mult => go from 1 to 0 in about 32 ms. | 222 // >= 64 * fs_mult => go from 1 to 0 in about 32 ms. |
223 // temp_shift = getbits(max_lag_) - 5. | 223 // temp_shift = getbits(max_lag_) - 5. |
224 int temp_shift = | 224 int temp_shift = |
225 (31 - WebRtcSpl_NormW32(rtc::checked_cast<int32_t>(max_lag_))) - 5; | 225 (31 - WebRtcSpl_NormW32(rtc::dchecked_cast<int32_t>(max_lag_))) - 5; |
226 int16_t mix_factor_increment = 256 >> temp_shift; | 226 int16_t mix_factor_increment = 256 >> temp_shift; |
227 if (stop_muting_) { | 227 if (stop_muting_) { |
228 mix_factor_increment = 0; | 228 mix_factor_increment = 0; |
229 } | 229 } |
230 | 230 |
231 // Create combined signal by shifting in more and more of unvoiced part. | 231 // Create combined signal by shifting in more and more of unvoiced part. |
232 temp_shift = 8 - temp_shift; // = getbits(mix_factor_increment). | 232 temp_shift = 8 - temp_shift; // = getbits(mix_factor_increment). |
233 size_t temp_length = (parameters.current_voice_mix_factor - | 233 size_t temp_length = (parameters.current_voice_mix_factor - |
234 parameters.voice_mix_factor) >> temp_shift; | 234 parameters.voice_mix_factor) >> temp_shift; |
235 temp_length = std::min(temp_length, current_lag); | 235 temp_length = std::min(temp_length, current_lag); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 assert(output->Size() == current_lag); | 308 assert(output->Size() == current_lag); |
309 } | 309 } |
310 (*output)[channel_ix].OverwriteAt(temp_data, current_lag, 0); | 310 (*output)[channel_ix].OverwriteAt(temp_data, current_lag, 0); |
311 } | 311 } |
312 | 312 |
313 // Increase call number and cap it. | 313 // Increase call number and cap it. |
314 consecutive_expands_ = consecutive_expands_ >= kMaxConsecutiveExpands ? | 314 consecutive_expands_ = consecutive_expands_ >= kMaxConsecutiveExpands ? |
315 kMaxConsecutiveExpands : consecutive_expands_ + 1; | 315 kMaxConsecutiveExpands : consecutive_expands_ + 1; |
316 expand_duration_samples_ += output->Size(); | 316 expand_duration_samples_ += output->Size(); |
317 // Clamp the duration counter at 2 seconds. | 317 // Clamp the duration counter at 2 seconds. |
318 expand_duration_samples_ = | 318 expand_duration_samples_ = std::min(expand_duration_samples_, |
319 std::min(expand_duration_samples_, rtc::checked_cast<size_t>(fs_hz_ * 2)); | 319 rtc::dchecked_cast<size_t>(fs_hz_ * 2)); |
320 return 0; | 320 return 0; |
321 } | 321 } |
322 | 322 |
323 void Expand::SetParametersForNormalAfterExpand() { | 323 void Expand::SetParametersForNormalAfterExpand() { |
324 current_lag_index_ = 0; | 324 current_lag_index_ = 0; |
325 lag_index_direction_ = 0; | 325 lag_index_direction_ = 0; |
326 stop_muting_ = true; // Do not mute signal any more. | 326 stop_muting_ = true; // Do not mute signal any more. |
327 statistics_->LogDelayedPacketOutageEvent( | 327 statistics_->LogDelayedPacketOutageEvent( |
328 rtc::checked_cast<int>(expand_duration_samples_) / (fs_hz_ / 1000)); | 328 rtc::dchecked_cast<int>(expand_duration_samples_) / (fs_hz_ / 1000)); |
329 } | 329 } |
330 | 330 |
331 void Expand::SetParametersForMergeAfterExpand() { | 331 void Expand::SetParametersForMergeAfterExpand() { |
332 current_lag_index_ = -1; /* out of the 3 possible ones */ | 332 current_lag_index_ = -1; /* out of the 3 possible ones */ |
333 lag_index_direction_ = 1; /* make sure we get the "optimal" lag */ | 333 lag_index_direction_ = 1; /* make sure we get the "optimal" lag */ |
334 stop_muting_ = true; | 334 stop_muting_ = true; |
335 } | 335 } |
336 | 336 |
337 bool Expand::Muted() const { | 337 bool Expand::Muted() const { |
338 if (first_expand_ || stop_muting_) | 338 if (first_expand_ || stop_muting_) |
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 const size_t kMaxRandSamples = RandomVector::kRandomTableSize; | 969 const size_t kMaxRandSamples = RandomVector::kRandomTableSize; |
970 while (samples_generated < length) { | 970 while (samples_generated < length) { |
971 size_t rand_length = std::min(length - samples_generated, kMaxRandSamples); | 971 size_t rand_length = std::min(length - samples_generated, kMaxRandSamples); |
972 random_vector_->IncreaseSeedIncrement(seed_increment); | 972 random_vector_->IncreaseSeedIncrement(seed_increment); |
973 random_vector_->Generate(rand_length, &random_vector[samples_generated]); | 973 random_vector_->Generate(rand_length, &random_vector[samples_generated]); |
974 samples_generated += rand_length; | 974 samples_generated += rand_length; |
975 } | 975 } |
976 } | 976 } |
977 | 977 |
978 } // namespace webrtc | 978 } // namespace webrtc |
OLD | NEW |