From 32986d09ad26539e2532e6394205b43a0486a990 Mon Sep 17 00:00:00 2001 From: Yamit Mehta Date: Mon, 20 Jul 2015 10:11:11 +0530 Subject: audioflinger: clear effect buffers for duplicating output -Clear effect buffers in threadloop_mix() in case audio effects enabled when output threads are not ready -Also clear mix buffers in threadLoop_sleepTime()when tracks are not ready CRs-Fixed: 765749 Change-Id: I475d42ac0cc68e4856002a9bd4c6c256a6fca70c --- services/audioflinger/Threads.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; -- cgit v1.1