|
21-11-11 / 22:48 : Android : problème latence audio (cjed) | Android possède un problème de performance (latence audio très élevée, voir également ici) qui ne permet pas la réalisation d'applications de type sampler logiciel et effets). Une légère amélioration (mais pas suffisante) pourrait être obtenue en modifiant les réglages du kernel (différent pour chaque constructeur), mais Google n'a toujours rien proposé dans le SDK Android 4 :
The WHOLE audio architecture is a joke.
http://www.netmite.com/android/mydroid/development/pdk/docs/audio_sub_system.html
It's one of the worst over-engineered pieces of software i have ever seen in my life. I believe that most people who had the unpleasant experience to look at the sources will agree: the amount of layers and complexity added above the linux sound system is ridicolous. Whats the point? You don't gain any extra functionality. Security? Priority handling (Phone calls)??? If that is Googles concern then the solution is at best amateurish and doesn't really work (i have killed/locked the audio system several times - by accident - with my audio tests).
The "standard" way to do audio I/O would be to use interrupts which access ring buffers in a locking-free way - this idea is at least 20 years old.
What makes this even more worse is that Google:
- doesn't care/understand the problem
- doesn't respond to this issue
- ignores a huge market (games, music apps, ...)
- provides wrong solutions
- a configuration option (android.hardware.audio.low_latency) is not enough. I'm impressed about this great achievement - i bet the best Google engineers sat down for two years to invent it
- defining 45ms as low latency? are you serious? shows again lack of knowledge. 5-10ms would be low-latency.
- OpenSL ES !? Again, a new (very complex) layer above AudioTrack without solving fundamental issues - great :( you only get rid of the Java layer.
In addition the hardware buffers on some devices (afaik Qualcomm at least) are huge and are required to filled before any audio output can be started. This prevents low-latency audio on some devices. Finally the scheduling frequency (20 ms or so) of Android further limits the minimum size of any buffers.
IK Multimedia aurait trouvé un moyen de développer des applications audio pour Android, mais la solution ne sera pas disponible avant plusieurs mois (et ne sera toujours pas au niveau de Core Audio du fait des limites de l'OS de Google : nombre de couches, principes de base du traitement audio non maîtrisés, accès via JNI).
Les tests récents d'affichage (Google Nexus 2 fois plus lent que l'iPhone 4S) confirment également que Google ne maîtrise pas les couches basses, mais uniquement le javascript, alors qu'Apple a une longue expérience de l'assembleur et des noyaux systèmes. | | Commentaires | Poster un commentaire | |
|