diff options
author | Eric Laurent <elaurent@google.com> | 2013-09-23 12:29:42 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-09-23 12:32:34 -0700 |
commit | 9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da (patch) | |
tree | f81f585ba1aae36086bb9790b83de5673fdce14a /media/libmedia/AudioTrack.cpp | |
parent | 4b701cc041d635e5ec56e382043a4c5d01aedd80 (diff) | |
download | frameworks_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/AudioTrack.cpp')
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index fdcf911..754a4e3 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -1800,12 +1800,12 @@ bool AudioTrack::AudioTrackThread::threadLoop() return true; } if (mPausedInt) { - mPausedInt = false; if (mPausedNs > 0) { (void) mMyCond.waitRelative(mMyLock, mPausedNs); } else { mMyCond.wait(mMyLock); } + mPausedInt = false; return true; } } @@ -1850,8 +1850,9 @@ void AudioTrack::AudioTrackThread::pause() void AudioTrack::AudioTrackThread::resume() { AutoMutex _l(mMyLock); - if (mPaused) { + if (mPaused || mPausedInt) { mPaused = false; + mPausedInt = false; mMyCond.signal(); } } |