| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2011 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 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 | 517 |
| 518 gain32 += delta; | 518 gain32 += delta; |
| 519 } | 519 } |
| 520 // iterate over subframes | 520 // iterate over subframes |
| 521 for (k = 1; k < 10; k++) { | 521 for (k = 1; k < 10; k++) { |
| 522 delta = (gains[k + 1] - gains[k]) * (1 << (4 - L2)); | 522 delta = (gains[k + 1] - gains[k]) * (1 << (4 - L2)); |
| 523 gain32 = gains[k] * (1 << 4); | 523 gain32 = gains[k] * (1 << 4); |
| 524 // iterate over samples | 524 // iterate over samples |
| 525 for (n = 0; n < L; n++) { | 525 for (n = 0; n < L; n++) { |
| 526 for (i = 0; i < num_bands; ++i) { | 526 for (i = 0; i < num_bands; ++i) { |
| 527 tmp32 = out[i][k * L + n] * (gain32 >> 4); | 527 int64_t tmp64 = ((int64_t)(out[i][k * L + n])) * (gain32 >> 4); |
| 528 out[i][k * L + n] = (int16_t)(tmp32 >> 16); | 528 tmp64 = tmp64 >> 16; |
| 529 if (tmp64 > 32767) { |
| 530 out[i][k * L + n] = 32767; |
| 531 } |
| 532 else if (tmp64 < -32768) { |
| 533 out[i][k * L + n] = -32768; |
| 534 } |
| 535 else { |
| 536 out[i][k * L + n] = (int16_t)(tmp64); |
| 537 } |
| 529 } | 538 } |
| 530 gain32 += delta; | 539 gain32 += delta; |
| 531 } | 540 } |
| 532 } | 541 } |
| 533 | 542 |
| 534 return 0; | 543 return 0; |
| 535 } | 544 } |
| 536 | 545 |
| 537 void WebRtcAgc_InitVad(AgcVad* state) { | 546 void WebRtcAgc_InitVad(AgcVad* state) { |
| 538 int16_t k; | 547 int16_t k; |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 // limit | 688 // limit |
| 680 if (state->logRatio > 2048) { | 689 if (state->logRatio > 2048) { |
| 681 state->logRatio = 2048; | 690 state->logRatio = 2048; |
| 682 } | 691 } |
| 683 if (state->logRatio < -2048) { | 692 if (state->logRatio < -2048) { |
| 684 state->logRatio = -2048; | 693 state->logRatio = -2048; |
| 685 } | 694 } |
| 686 | 695 |
| 687 return state->logRatio; // Q10 | 696 return state->logRatio; // Q10 |
| 688 } | 697 } |
| OLD | NEW |