summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2015-10-14 20:30:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-10-14 20:30:40 +0000
commit55d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7 (patch)
treef574ecd2b0097bba5da88c2515ce97ec14eaa2b5 /services
parente5326d965afc8941f85c866ae8dcdc8884c9709c (diff)
parent8c987fa71326eb0cc504959a5ebb440410d73180 (diff)
downloadframeworks_av-55d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7.zip
frameworks_av-55d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7.tar.gz
frameworks_av-55d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7.tar.bz2
Merge "DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread" into lmp-dev
Diffstat (limited to 'services')
-rw-r--r--services/audioflinger/FastCapture.cpp1
-rw-r--r--services/audioflinger/Threads.cpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/services/audioflinger/FastCapture.cpp b/services/audioflinger/FastCapture.cpp
index 0c9b976..9613e26 100644
--- a/services/audioflinger/FastCapture.cpp
+++ b/services/audioflinger/FastCapture.cpp
@@ -134,6 +134,7 @@ void FastCapture::onStateChange()
unsigned channelCount = Format_channelCount(format);
// FIXME frameSize
readBuffer = new short[frameCount * channelCount];
+ memset(readBuffer, 0, frameCount * channelCount * sizeof(readBuffer[0]));
periodNs = (frameCount * 1000000000LL) / sampleRate; // 1.00
underrunNs = (frameCount * 1750000000LL) / sampleRate; // 1.75
overrunNs = (frameCount * 500000000LL) / sampleRate; // 0.50
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index b429cc2..63feeaa 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -6136,7 +6136,9 @@ void AudioFlinger::RecordThread::readInputParameters_l()
// The current value is higher than necessary. However it should not add to latency.
// Over-allocate beyond mRsmpInFramesP2 to permit a HAL read past end of buffer
- mRsmpInBuffer = new int16_t[(mRsmpInFramesP2 + mFrameCount - 1) * mChannelCount];
+ size_t bufferSizeInShorts = (mRsmpInFramesP2 + mFrameCount - 1) * mChannelCount;
+ mRsmpInBuffer = new int16_t[bufferSizeInShorts];
+ memset(mRsmpInBuffer, 0, bufferSizeInShorts * sizeof(mRsmpInBuffer[0]));
// AudioRecord mSampleRate and mChannelCount are constant due to AudioRecord API constraints.
// But if thread's mSampleRate or mChannelCount changes, how will that affect active tracks?