summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioRecord.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-01-17 17:10:46 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-01-17 17:10:47 +0000
commit6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa (patch)
tree4d40dd6357b17be74765038f349e1f917d499baf /media/libmedia/AudioRecord.cpp
parent6a507298357c9ff869b97db57a890e58bd6bdec0 (diff)
parent5e1f79baa5c7355effbd2c9183787d6604487908 (diff)
downloadframeworks_av-6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa.zip
frameworks_av-6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa.tar.gz
frameworks_av-6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa.tar.bz2
Merge "AudioRecord: fix unwanted overrun when restarting"
Diffstat (limited to 'media/libmedia/AudioRecord.cpp')
-rw-r--r--media/libmedia/AudioRecord.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index da513c8..7183193 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -289,6 +289,9 @@ status_t AudioRecord::start(AudioSystem::sync_event_t event, int triggerSession)
// reset current position as seen by client to 0
mProxy->setEpoch(mProxy->getEpoch() - mProxy->getPosition());
+ // force refresh of remaining frames by processAudioBuffer() as last
+ // read before stop could be partial.
+ mRefreshRemaining = true;
mNewPosition = mProxy->getPosition() + mUpdatePeriod;
int32_t flags = android_atomic_acquire_load(&mCblk->mFlags);