yes it will probably (don't know the technicalities behind that) be a heck of a job to merge but at some point it must be done IMO.
here is Lennarts blog post explaining the situation and possibilities
http://0pointer.de/blog/projects/whe...-when-not.html
and while i cant say anything about the technical part of the whole thing i have arguments against his user cases.
Android live on mobile device which CPU and battery resource is scarce
To be competitive, the system need to be low-power, low latency, good sound quality (floating point sound mixing must be used but this is expensive)
To meet this target, "CPU-efficient" is necessary.
To be "CPU-efficient", SIMD instruction must be used
context switch should be avoided as much as possible => sound mixing in kernel mode
PA simply do not meet this requirement.
if Android go for resource-hungary application such as HD movie, 3D games in the future.
Google will need to send hundreds of best programmer to optimize PA (but i doubt if this will succeed)
Why don't they use right tool at the beginning? OSS4 or add floating point kernel sound mixing to ALSA. It save their time![]()
Last edited by unknown2; 01-17-2012 at 06:16 PM.
They apparently do use simd code, only it's through OIL http://www.freedesktop.org/wiki/Soft...udio/Notes/1.0
The problem is that they don't use it enough. That is on the list, however.
yup, but i think he need more test on
1. CPU load and power consumption when pulseaudio is serving "low-latency" client(s).
2. worst latency encountered and their distribution when serving "low-latency" client(s).
3. condition 2 + CPU under 100% loading.
Anyway, the cpu of his tested phone "galaxy nexus" is not slow. Does he need to test on some weak phone instead?
Last edited by unknown2; 01-17-2012 at 10:07 PM.
The latency is soley the provision of the kernel, and android only uses the soft realtime kernel, hence why you can get huge delays on occasion.
However, PA can make use of some RT features (some kinds of kernel thread preemption, but that is no worse than ios or windows), thus 3 shouldn't be to different from 2 (for the most part).
Regardless of the CPU load when used in low latency mode, at least it is more able to satisfy those needs than AF ever can, apparently.
I really want to hear from Google's engineers about this.
I already got pulseaudio fully working on WR703N so you can stream audio via wifi. It costs only $22 including delivery plus you can get it now. Way better than rasp_pi.
https://forum.openwrt.org/viewtopic.php?pid=150596
Alsa itself will introduce an extra buffer of its dmixer. This will also force to resample to 48K (due to AC97). If you want to improve latency you need to use raw device like hw. Latency can also be fine tuned by default-fragments and default-fragment-size-msec in /etc/pulse/daemon.conf. I have achieved excellent latency with pulseaudio streaming audio over wifi network, i.e. no video/audio out of sync when watching videos.