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