Here is someone that all so played with this: http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/
Den fredagen den 21:e september 2012 kl. 11:44:11 UTC+2 skrev czheng: > > Hi guys, > As we know, android audio passthrough latency is not good, many devices > have 150ms-250ms total latency. > This is unacceptable on realtime applications. And I heard Fastmixer in JB > didn't get dramatically improvement on it. > So, I tried some ways on ICS to make audio flinger more stable and less > latency. > > 1. I changed the audioflinger mixer thread's scheduler class to SCHED_RR. > The old scheduler class is SCHED_OTHER. Although, audioflinger's mixer got > the lowset nice value and highest priority, the CFS scheduler can't promise > it getting enough resource at any critial time. In my opinion, the realtime > scheduler is helpful for a stable audio renderer. Howerver, I'm not sure is > this conflicted with the design idea of audioflinger or android arch, any > comments? > > 2. The total audio latency is decided by driver buffer size plus cblk > buffer size(IPC buffer for audiotrack and audioflinger). For alsa driver, > at least 4 periods were needed for DMA writing, > and 10 milliseconds period was accepted by most devices as I tested. Cblk > buffer size equals to (driver buffer size)*2, I think it is too large, and > changed it to the same value as driver buffer allocated(JB brought > Non-block mode, I'm not sure clbk buffer size could be ingored or not in JB > Non-block mode). > So the total latency would be (10 * 4 + 40) = 80 milliseconds. If your > system is reliable in 5 milliseconds level interpret, 40 milliseconds > latency reachs. For most devcies, 10 millisecods * 6 is recommended, and > total is 120 ms, big buffer is helpful in busy system case. > > 3. Setting different buffer size for different applications. HD movie > playback gets heavy cpu load and latency is neglectable, big buffer size is > welcomed. And in MIDI Player, small buffer size brings much better > experience.I heard some vendors already configed differnet buffer for > special usage. The side effect is restarting your audio device, since many > cases don't support buffer size tuning dynamically. > > Any way, these steps were not good enough, if you tried this before, > please reply this thread. Any comments or ideas will be welcomed. > > Thanks! > Charlie > > -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
