From: Eric Laurent Date: Fri, 30 Aug 2013 22:12:37 +0000 (-0700) Subject: audioflinger: offloaded tracks flush/pause order X-Git-Tag: android-x86-4.4-r1~163 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf;p=android-x86%2Fframeworks-av.git 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 --- diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index bc01edeeaa..3921b68d49 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 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);