From e47245bd8c210c78af05ebc2aa25df97a7fb4781 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Fri, 15 Jan 2021 13:19:58 -0500 Subject: [PATCH] Fix use of uninitialized data for meter when emulating volume --- src/AudioIO.cpp | 13 ++++++------- src/AudioIO.h | 4 +--- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index 8c3783942..93dfd7d38 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -3786,7 +3786,6 @@ void AudioIoCallback::CheckSoundActivatedRecordingLevel( void AudioIoCallback::AddToOutputChannel( unsigned int chan, float * outputMeterFloats, float * outputFloats, - float * tempFloats, float * tempBuf, bool drop, unsigned long len, @@ -3804,7 +3803,7 @@ void AudioIoCallback::AddToOutputChannel( unsigned int chan, if (outputMeterFloats != outputFloats) for ( unsigned i = 0; i < len; ++i) outputMeterFloats[numPlaybackChannels*i+chan] += - gain*tempFloats[i]; + gain*tempBuf[i]; if (mEmulateMixerOutputVol) gain *= mMixerOutputVol; @@ -3836,8 +3835,7 @@ void ClampBuffer(float * pBuffer, unsigned long len){ // bool AudioIoCallback::FillOutputBuffers( void *outputBuffer, - unsigned long framesPerBuffer, - float * tempFloats, float *outputMeterFloats + unsigned long framesPerBuffer, float *outputMeterFloats ) { const auto numPlaybackTracks = mPlaybackTracks.size(); @@ -3999,11 +3997,13 @@ bool AudioIoCallback::FillOutputBuffers( if (vt->GetChannelIgnoringPan() == Track::LeftChannel || vt->GetChannelIgnoringPan() == Track::MonoChannel ) - AddToOutputChannel( 0, outputMeterFloats, outputFloats, tempFloats, tempBufs[c], drop, len, vt); + AddToOutputChannel( 0, outputMeterFloats, outputFloats, + tempBufs[c], drop, len, vt); if (vt->GetChannelIgnoringPan() == Track::RightChannel || vt->GetChannelIgnoringPan() == Track::MonoChannel ) - AddToOutputChannel( 1, outputMeterFloats, outputFloats, tempFloats, tempBufs[c], drop, len, vt); + AddToOutputChannel( 1, outputMeterFloats, outputFloats, + tempBufs[c], drop, len, vt); } chanCnt = 0; @@ -4472,7 +4472,6 @@ int AudioIoCallback::AudioCallback(const void *inputBuffer, void *outputBuffer, if( FillOutputBuffers( outputBuffer, framesPerBuffer, - tempFloats, outputMeterFloats)) return mCallbackReturn; diff --git a/src/AudioIO.h b/src/AudioIO.h index e100b7241..b2aed6931 100644 --- a/src/AudioIO.h +++ b/src/AudioIO.h @@ -315,7 +315,6 @@ public: void AddToOutputChannel( unsigned int chan, float * outputMeterFloats, float * outputFloats, - float * tempFloats, float * tempBuf, bool drop, unsigned long len, @@ -323,8 +322,7 @@ public: ); bool FillOutputBuffers( void *outputBuffer, - unsigned long framesPerBuffer, - float * tempFloats, float *outputMeterFloats + unsigned long framesPerBuffer, float *outputMeterFloats ); void FillInputBuffers( const void *inputBuffer,