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