diff options
author | Stefan Hacker <dd0t@users.sourceforge.net> | 2014-11-05 11:41:49 +0300 |
---|---|---|
committer | Stefan Hacker <dd0t@users.sourceforge.net> | 2014-11-10 01:15:22 +0300 |
commit | b78f34d0ad161a4a0562234d9b5893d6de97be03 (patch) | |
tree | 7f13d2c58e4728a09d619e6bdf414b4d2199de35 | |
parent | 996a3df41d23c016a38eb8be891a75faec672230 (diff) |
Calculate peak and max microphone level in the same loop.
Don't needlessly run through the frame twice.
-rw-r--r-- | src/mumble/AudioInput.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp index ea193563d..bac48fa41 100644 --- a/src/mumble/AudioInput.cpp +++ b/src/mumble/AudioInput.cpp @@ -718,13 +718,12 @@ void AudioInput::encodeAudioFrame() { return; sum=1.0f; - for (i=0;i<iFrameSize;i++) + max = 1; + for (i=0;i<iFrameSize;i++) { sum += static_cast<float>(psMic[i] * psMic[i]); + max = std::max(static_cast<short>(abs(psMic[i])), max); + } dPeakMic = qMax(20.0f*log10f(sqrtf(sum / static_cast<float>(iFrameSize)) / 32768.0f), -96.0f); - - max = 1; - for (i=0;i<iFrameSize;i++) - max = static_cast<short>(abs(psMic[i]) > max ? abs(psMic[i]) : max); dMaxMic = max; if (psSpeaker && (iEchoChannels > 0)) { |