diff options
| -rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index ab49f93bf124..3e0304f226fb 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1832,7 +1832,9 @@ bool AudioFlinger::MixerThread::threadLoop() size_t mixBufferSize = mFrameCount * mFrameSize; // FIXME: Relaxed timing because of a certain device that can't meet latency // Should be reduced to 2x after the vendor fixes the driver issue - nsecs_t maxPeriod = seconds(mFrameCount) / mSampleRate * 3; + // increase threshold again due to low power audio mode. The way this warning threshold is + // calculated and its usefulness should be reconsidered anyway. + nsecs_t maxPeriod = seconds(mFrameCount) / mSampleRate * 15; nsecs_t lastWarning = 0; bool longStandbyExit = false; uint32_t activeSleepTime = activeSleepTimeUs(); @@ -1886,7 +1888,9 @@ bool AudioFlinger::MixerThread::threadLoop() mixBufferSize = mFrameCount * mFrameSize; // FIXME: Relaxed timing because of a certain device that can't meet latency // Should be reduced to 2x after the vendor fixes the driver issue - maxPeriod = seconds(mFrameCount) / mSampleRate * 3; + // increase threshold again due to low power audio mode. The way this warning + // threshold is calculated and its usefulness should be reconsidered anyway. + maxPeriod = seconds(mFrameCount) / mSampleRate * 15; activeSleepTime = activeSleepTimeUs(); idleSleepTime = idleSleepTimeUs(); } @@ -1983,7 +1987,7 @@ bool AudioFlinger::MixerThread::threadLoop() mInWrite = false; nsecs_t now = systemTime(); nsecs_t delta = now - mLastWriteTime; - if (delta > maxPeriod) { + if (!mStandby && delta > maxPeriod) { mNumDelayedWrites++; if ((now - lastWarning) > kWarningThrottle) { LOGW("write blocked for %llu msecs, %d delayed writes, thread %p", |