Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hacker <dd0t@users.sourceforge.net>2014-11-05 11:41:49 +0300
committerStefan Hacker <dd0t@users.sourceforge.net>2014-11-10 01:15:22 +0300
commitb78f34d0ad161a4a0562234d9b5893d6de97be03 (patch)
tree7f13d2c58e4728a09d619e6bdf414b4d2199de35
parent996a3df41d23c016a38eb8be891a75faec672230 (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.cpp9
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)) {