summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioRecord.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-09-23 12:29:42 -0700
committerEric Laurent <elaurent@google.com>2013-09-23 12:32:34 -0700
commit9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da (patch)
treef81f585ba1aae36086bb9790b83de5673fdce14a /media/libmedia/AudioRecord.cpp
parent4b701cc041d635e5ec56e382043a4c5d01aedd80 (diff)
downloadframeworks_av-9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da.zip
frameworks_av-9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da.tar.gz
frameworks_av-9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da.tar.bz2
AudioTrack: fix music resume
Fix regression introduced by commit 5a6cd22 in AudioTrack resume: the callback thread was not signaled if paused internaly. Bug: 10895013. Change-Id: Ic356b115132d6fccbcee2d9bb855e92671dc20c5
Diffstat (limited to 'media/libmedia/AudioRecord.cpp')
-rw-r--r--media/libmedia/AudioRecord.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index fb731b9..c5a7777 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -979,12 +979,12 @@ bool AudioRecord::AudioRecordThread::threadLoop()
return true;
}
if (mPausedInt) {
- mPausedInt = false;
if (mPausedNs > 0) {
(void) mMyCond.waitRelative(mMyLock, mPausedNs);
} else {
mMyCond.wait(mMyLock);
}
+ mPausedInt = false;
return true;
}
}
@@ -1029,8 +1029,9 @@ void AudioRecord::AudioRecordThread::pause()
void AudioRecord::AudioRecordThread::resume()
{
AutoMutex _l(mMyLock);
- if (mPaused) {
+ if (mPaused || mPausedInt) {
mPaused = false;
+ mPausedInt = false;
mMyCond.signal();
}
}