diff options
| author | Eric Laurent <elaurent@google.com> | 2015-05-27 17:58:00 +0000 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-27 17:58:00 +0000 | 
| commit | 3ab77c1e93f3da5da0d18ff998f1bd6db19534f3 (patch) | |
| tree | 62dd0ec770bc7e883083a5cb2f2c8ba5163c124f /services/audioflinger | |
| parent | 5eabb0191ab25a45ae19575a7a443ba12bd1800a (diff) | |
| parent | 5cff403679fc44c8293de81aed31c459c6129243 (diff) | |
| download | frameworks_av-3ab77c1e93f3da5da0d18ff998f1bd6db19534f3.zip frameworks_av-3ab77c1e93f3da5da0d18ff998f1bd6db19534f3.tar.gz frameworks_av-3ab77c1e93f3da5da0d18ff998f1bd6db19534f3.tar.bz2  | |
Merge "audio flinger: pause direct output when underrunning" into mnc-dev
Diffstat (limited to 'services/audioflinger')
| -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 9f08851..721f6af 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -4475,7 +4475,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;                  } @@ -4527,7 +4527,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;                      } @@ -4641,7 +4641,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 @@ -4747,10 +4747,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);      }  } @@ -4930,7 +4930,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr          if (track->isPausing()) {              track->setPaused();              if (last) { -                if (!mHwPaused) { +                if (mHwSupportsPause && !mHwPaused) {                      doHwPause = true;                      mHwPaused = true;                  }  | 
