OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 |
11 #include "webrtc/modules/audio_processing/aecm/aecm_core.h" | 11 #include "webrtc/modules/audio_processing/aecm/aecm_core.h" |
12 | 12 |
13 #include "webrtc/base/checks.h" | |
14 #include "webrtc/modules/audio_processing/aecm/echo_control_mobile.h" | 13 #include "webrtc/modules/audio_processing/aecm/echo_control_mobile.h" |
15 #include "webrtc/modules/audio_processing/utility/delay_estimator_wrapper.h" | 14 #include "webrtc/modules/audio_processing/utility/delay_estimator_wrapper.h" |
| 15 #include "webrtc/rtc_base/checks.h" |
16 | 16 |
17 static const ALIGN8_BEG int16_t WebRtcAecm_kSqrtHanning[] ALIGN8_END = { | 17 static const ALIGN8_BEG int16_t WebRtcAecm_kSqrtHanning[] ALIGN8_END = { |
18 0, 399, 798, 1196, 1594, 1990, 2386, 2780, 3172, | 18 0, 399, 798, 1196, 1594, 1990, 2386, 2780, 3172, |
19 3562, 3951, 4337, 4720, 5101, 5478, 5853, 6224, | 19 3562, 3951, 4337, 4720, 5101, 5478, 5853, 6224, |
20 6591, 6954, 7313, 7668, 8019, 8364, 8705, 9040, | 20 6591, 6954, 7313, 7668, 8019, 8364, 8705, 9040, |
21 9370, 9695, 10013, 10326, 10633, 10933, 11227, 11514, | 21 9370, 9695, 10013, 10326, 10633, 10933, 11227, 11514, |
22 11795, 12068, 12335, 12594, 12845, 13089, 13325, 13553, | 22 11795, 12068, 12335, 12594, 12845, 13089, 13325, 13553, |
23 13773, 13985, 14189, 14384, 14571, 14749, 14918, 15079, | 23 13773, 13985, 14189, 14384, 14571, 14749, 14918, 15079, |
24 15231, 15373, 15506, 15631, 15746, 15851, 15947, 16034, | 24 15231, 15373, 15506, 15631, 15746, 15851, 15947, 16034, |
25 16111, 16179, 16237, 16286, 16325, 16354, 16373, 16384 | 25 16111, 16179, 16237, 16286, 16325, 16354, 16373, 16384 |
(...skipping 1529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1555 sgn = ((int)tt) >> 31; | 1555 sgn = ((int)tt) >> 31; |
1556 out[i].imag = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); | 1556 out[i].imag = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); |
1557 } | 1557 } |
1558 tt = out[PART_LEN].real + uReal[PART_LEN]; | 1558 tt = out[PART_LEN].real + uReal[PART_LEN]; |
1559 sgn = ((int)tt) >> 31; | 1559 sgn = ((int)tt) >> 31; |
1560 out[PART_LEN].real = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); | 1560 out[PART_LEN].real = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); |
1561 tt = out[PART_LEN].imag; | 1561 tt = out[PART_LEN].imag; |
1562 sgn = ((int)tt) >> 31; | 1562 sgn = ((int)tt) >> 31; |
1563 out[PART_LEN].imag = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); | 1563 out[PART_LEN].imag = sgn == (int16_t)(tt >> 15) ? (int16_t)tt : (16384 ^ sgn); |
1564 } | 1564 } |
OLD | NEW |