diff options
| -rw-r--r-- | services/audioflinger/Threads.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index 0a7d4a2..926312e 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -5289,6 +5289,8 @@ void AudioFlinger::DuplicatingThread::threadLoop_mix()      } else {          if (mMixerBufferValid) {              memset(mMixerBuffer, 0, mMixerBufferSize); +        } else if (mEffectBufferValid) { +            memset(mEffectBuffer, 0, mEffectBufferSize);          } else {              memset(mSinkBuffer, 0, mSinkBufferSize);          } @@ -5310,7 +5312,11 @@ void AudioFlinger::DuplicatingThread::threadLoop_sleepTime()      } else if (mBytesWritten != 0) {          if (mMixerStatus == MIXER_TRACKS_ENABLED) {              writeFrames = mNormalFrameCount; -            memset(mSinkBuffer, 0, mSinkBufferSize); +            if (mMixerBufferValid) { +                memset(mMixerBuffer, 0, mMixerBufferSize); +            } else { +                memset(mSinkBuffer, 0, mSinkBufferSize); +            }          } else {              // flush remaining overflow buffers in output tracks              writeFrames = 0;  | 
