summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Threads.cpp
diff options
context:
space:
mode:
authorYamit Mehta <ymehta@codeaurora.org>2015-07-20 10:11:11 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:18 -0600
commit32986d09ad26539e2532e6394205b43a0486a990 (patch)
tree3af70577ae854d7826e0dadffad14dadc23fbdf0 /services/audioflinger/Threads.cpp
parent174976417b6a85fd81e4951cd746028358d2f60b (diff)
downloadframeworks_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.cpp8
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;