diff options
author | Eric Laurent <elaurent@google.com> | 2013-08-30 15:12:37 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-08-30 15:12:37 -0700 |
commit | 6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf (patch) | |
tree | 4075a75b4c805011df36d78b015edf6180d649df /services | |
parent | d656a4be3c3b6bc249b06599c2b02c2863d2c47f (diff) | |
download | frameworks_av-6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf.zip frameworks_av-6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf.tar.gz frameworks_av-6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf.tar.bz2 |
audioflinger: offloaded tracks flush/pause order
Make sure that a flush received after a pause is forwarded
to the HAL after the pause.
Change-Id: Ib3221f70c59f8b3dbbac20b23104f6b779b75be0
Diffstat (limited to 'services')
-rw-r--r-- | services/audioflinger/Threads.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index bc01ede..3921b68 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -3810,10 +3810,6 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr size_t count = mActiveTracks.size(); mixer_state mixerStatus = MIXER_IDLE; - if (mFlushPending) { - flushHw_l(); - mFlushPending = false; - } // find out which tracks need to be processed for (size_t i = 0; i < count; i++) { sp<Track> t = mActiveTracks[i].promote(); @@ -3938,6 +3934,12 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // compute volume for this track processVolume_l(track, last); } + + if (mFlushPending) { + flushHw_l(); + mFlushPending = false; + } + // remove all the tracks that need to be... removeTracks_l(*tracksToRemove); |