From 0d27c65ddb5c968baa6db0c26e80f5c451bc52bc Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Tue, 7 Aug 2012 10:38:59 -0700 Subject: 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 --- services/audioflinger/FastMixer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'services/audioflinger/FastMixer.cpp') 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; -- cgit v1.1