diff options
Diffstat (limited to 'services/audioflinger/Threads.cpp')
-rw-r--r-- | services/audioflinger/Threads.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index 594ed05..d9b4249 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -4443,7 +4443,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep track->mRetryCount = kMaxTrackRetriesDirect; mActiveTrack = t; mixerStatus = MIXER_TRACKS_READY; - if (usesHwAvSync() && mHwPaused) { + if (mHwPaused) { doHwResume = true; mHwPaused = false; } @@ -4495,7 +4495,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep android_atomic_or(CBLK_DISABLED, &cblk->mFlags); } else if (last) { mixerStatus = MIXER_TRACKS_ENABLED; - if (usesHwAvSync() && !mHwPaused && !mStandby) { + if (mHwSupportsPause && !mHwPaused && !mStandby) { doHwPause = true; mHwPaused = true; } @@ -4609,7 +4609,7 @@ bool AudioFlinger::DirectOutputThread::shouldStandby_l() mTracks[mTracks.size() - 1]->mState == TrackBase::IDLE; } - return !mStandby && !(trackPaused || (usesHwAvSync() && mHwPaused && !trackStopped)); + return !mStandby && !(trackPaused || (mHwPaused && !trackStopped)); } // getTrackName_l() must be called with ThreadBase::mLock held @@ -4715,10 +4715,10 @@ void AudioFlinger::DirectOutputThread::cacheParameters_l() // no delay on outputs with HW A/V sync if (usesHwAvSync()) { standbyDelay = 0; - } else if (audio_is_linear_pcm(mFormat)) { - standbyDelay = microseconds(activeSleepTime*2); - } else { + } else if ((mType == OFFLOAD) && !audio_is_linear_pcm(mFormat)) { standbyDelay = kOffloadStandbyDelayNs; + } else { + standbyDelay = microseconds(activeSleepTime*2); } } @@ -4898,7 +4898,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr if (track->isPausing()) { track->setPaused(); if (last) { - if (!mHwPaused) { + if (mHwSupportsPause && !mHwPaused) { doHwPause = true; mHwPaused = true; } |