Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: webrtc/common_audio/signal_processing/include/signal_processing_library.h

Issue 2571483002: Fix for integer overflow in NetEq. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 // - scaling : The number of right bit shifts to apply on each term 606 // - scaling : The number of right bit shifts to apply on each term
607 // during calculation to avoid overflow, i.e., the 607 // during calculation to avoid overflow, i.e., the
608 // output will be in Q(-|scaling|) 608 // output will be in Q(-|scaling|)
609 // 609 //
610 // Return value : The dot product in Q(-scaling) 610 // Return value : The dot product in Q(-scaling)
611 int32_t WebRtcSpl_DotProductWithScale(const int16_t* vector1, 611 int32_t WebRtcSpl_DotProductWithScale(const int16_t* vector1,
612 const int16_t* vector2, 612 const int16_t* vector2,
613 size_t length, 613 size_t length,
614 int scaling); 614 int scaling);
615 615
616 // Same as above, but the result is stored in a 64 bit integer.
617 int64_t WebRtcSpl_DotProductWithScale_64b(const int16_t* vector1,
618 const int16_t* vector2,
619 size_t length,
kwiberg-webrtc 2016/12/13 08:45:36 Please consider using ArrayView when creating new
620 int scaling);
621
616 // Filter operations. 622 // Filter operations.
617 size_t WebRtcSpl_FilterAR(const int16_t* ar_coef, 623 size_t WebRtcSpl_FilterAR(const int16_t* ar_coef,
618 size_t ar_coef_length, 624 size_t ar_coef_length,
619 const int16_t* in_vector, 625 const int16_t* in_vector,
620 size_t in_vector_length, 626 size_t in_vector_length,
621 int16_t* filter_state, 627 int16_t* filter_state,
622 size_t filter_state_length, 628 size_t filter_state_length,
623 int16_t* filter_state_low, 629 int16_t* filter_state_low,
624 size_t filter_state_low_length, 630 size_t filter_state_low_length,
625 int16_t* out_vector, 631 int16_t* out_vector,
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 // This function multiply a 16-bit word by a 16-bit word, and accumulate this 1639 // This function multiply a 16-bit word by a 16-bit word, and accumulate this
1634 // value to a 32-bit integer. 1640 // value to a 32-bit integer.
1635 // 1641 //
1636 // Input: 1642 // Input:
1637 // - a : The value of the first 16-bit word. 1643 // - a : The value of the first 16-bit word.
1638 // - b : The value of the second 16-bit word. 1644 // - b : The value of the second 16-bit word.
1639 // - c : The value of an 32-bit integer. 1645 // - c : The value of an 32-bit integer.
1640 // 1646 //
1641 // Return Value: The value of a * b + c. 1647 // Return Value: The value of a * b + c.
1642 // 1648 //
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698