Alex Loiko 7cfbf3a0ff Make energy calculation in AGC not overflow.
An energy value is calculated by summing squares of processed audio
samples. The expression 'out*out >> 6' could overflow. In this CL we
change it to 'out*(out>>6) + out*(out*(out%(1<<6))>>6)'.

The which is verified and proven to be equal, but doesn't
overflow. The change also passes our change-detection tests in
GainControlBitExactnessTest.*

We verified with Godbolt that the modulo and divisions are converted
into branch-free bitwise operations.

NOTRY=True # changing comment, tests just passed.

Bug: chromium:780638, chromium:780376
Change-Id: I415535193433a2fbc275c643fb4e4026ba3e0bdd
Reviewed-on: https://webrtc-review.googlesource.com/20867
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20589}
2017-11-07 15:37:55 +00:00
2017-10-31 21:08:43 +00:00
.gn
2017-09-25 15:34:41 +00:00
2017-09-15 04:25:06 +00:00
2017-09-15 04:25:06 +00:00
2017-10-31 17:46:42 +00:00
2017-09-15 04:25:06 +00:00
2017-09-15 04:25:06 +00:00

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.

More info

Description
The idea is to make CMake build for WebRTC m130 version - for audio processing module
Readme BSD-3-Clause 446 MiB
Languages
C++ 90.3%
Java 2.9%
C 2.2%
Objective-C++ 2%
Python 1.3%
Other 1%