OSDN Git Service

Fixed underrun in audioflinger mixer.
authorEric Laurent <elaurent@google.com>
Thu, 29 Jul 2010 13:50:24 +0000 (06:50 -0700)
committerEric Laurent <elaurent@google.com>
Thu, 29 Jul 2010 13:50:24 +0000 (06:50 -0700)
commita54d7d3d7dd691334189aab20d23c65710092869
treec210f11aa8f51610a039b1a2f6a2d59330710940
parent493941b8d8a12ee843d9823c0177f8005a7be54f
Fixed underrun in audioflinger mixer.

When all audio tracks have been disabled and the mixer is running idle before the output stream is placed in standby,
the mixer sometimes fails to write to the output stream on time to avoid underrun.

This is because the sleep period used to wait before the next write to output stream is too close to the actual buffer duration.
In fact this sleep time is not critical as if we write too early to the output stream, the kernel driver will wait for free buffers
from the audio DSP DMA and we will sleep anyways.

The fix consists in dividing the calculated wait period by 2 to increase the margin.

Change-Id: I5730887dc2ccce2a511bc858494a6f7da6b392a0
services/audioflinger/AudioFlinger.cpp