diff options
author | Glenn Kasten <gkasten@google.com> | 2012-08-07 10:38:59 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-08-08 14:28:42 -0700 |
commit | 0d27c65ddb5c968baa6db0c26e80f5c451bc52bc (patch) | |
tree | 62cdadd7e272d5f5f5f187767984ecb0c12b5080 | |
parent | e983aa4ff4d80af7702888e230b9aaa93a7b7e57 (diff) | |
download | frameworks_av-0d27c65ddb5c968baa6db0c26e80f5c451bc52bc.zip frameworks_av-0d27c65ddb5c968baa6db0c26e80f5c451bc52bc.tar.gz frameworks_av-0d27c65ddb5c968baa6db0c26e80f5c451bc52bc.tar.bz2 |
Tune the overrun correction
The new overrun correction is: if the previous write() cycle time is <
50% of expected, then sleep enough extra to make the total cycle time =
95% of expected. This should help compensate for HAL implementations
that have uneven cycle times due to sample rate conversion.
Bug: 6881638
Change-Id: I5ab58afdfceee7ac523177f021fbf62d743d571a
-rw-r--r-- | services/audioflinger/FastMixer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/audioflinger/FastMixer.cpp b/services/audioflinger/FastMixer.cpp index b89bf81..fbcc11a 100644 --- a/services/audioflinger/FastMixer.cpp +++ b/services/audioflinger/FastMixer.cpp @@ -222,8 +222,8 @@ bool FastMixer::threadLoop() mixBuffer = new short[frameCount * 2]; periodNs = (frameCount * 1000000000LL) / sampleRate; // 1.00 underrunNs = (frameCount * 1750000000LL) / sampleRate; // 1.75 - overrunNs = (frameCount * 250000000LL) / sampleRate; // 0.25 - forceNs = (frameCount * 750000000LL) / sampleRate; // 0.75 + overrunNs = (frameCount * 500000000LL) / sampleRate; // 0.50 + forceNs = (frameCount * 950000000LL) / sampleRate; // 0.95 warmupNs = (frameCount * 500000000LL) / sampleRate; // 0.50 } else { periodNs = 0; |