diff options
author | Yamit Mehta <ymehta@codeaurora.org> | 2015-07-20 10:11:11 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:24:18 -0600 |
commit | 32986d09ad26539e2532e6394205b43a0486a990 (patch) | |
tree | 3af70577ae854d7826e0dadffad14dadc23fbdf0 /services/audioflinger/Threads.cpp | |
parent | 174976417b6a85fd81e4951cd746028358d2f60b (diff) | |
download | frameworks_av-32986d09ad26539e2532e6394205b43a0486a990.zip frameworks_av-32986d09ad26539e2532e6394205b43a0486a990.tar.gz frameworks_av-32986d09ad26539e2532e6394205b43a0486a990.tar.bz2 |
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
Diffstat (limited to 'services/audioflinger/Threads.cpp')
-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; |