mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-15 14:50:39 +01:00
![]() 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} |
||
---|---|---|
.. | ||
analog_agc.c | ||
analog_agc.h | ||
digital_agc.c | ||
digital_agc.h | ||
gain_control.h |