Linux (Android) ja prioriteetit

Yleiset ongelmat, ohjelmien kääntäminen, kernel, lirc jne.

Linux (Android) ja prioriteetit

ViestiKirjoittaja kurg » 12.11.2013 14:49

Tein mpg123-ohjelmaan tinyalsa-outputin, jota iso osa nykyisistä Android-laitteista käyttävät äänen ulostamiseen. Näin voin valita ulkoisen USB-äänikortin käyttöön ja ohittaa kaikki Android- ja Java-hiekkalaatikkohömpötykset (teoriassa tinyalsan volumet täysillä pitäis tulla bitperfectiä ulos). Tinyplay:llä soivat wav-tiedostot ja putkittamalla flac-dekooderi ja tinyplay soivat myös flac-tiedostot.

Ongelma:
Ääni särisee heti, jos laite tekee jotakin muuta. Arvaukseni on, että varsinaiselle Androidille on annettu mahdollisimman suuret prioriteetit, jolloin ääni pätkii. Olen kokeillut mm. seuraavia:
nice --20 mpg123 -a 1 koe.wav
ionice -c 1 mpg123 -a 1 koe.wav
Ei ollut apua...
"ps -p" käsky näyttää mm. PRIO ja RTPRI kenttissä 0:aa. Mahtaisiko ne liittyä asiaan?
Pitääkö prioriteettien nostamiseksi tehdä muutoksia itse koodiin?
Laitteen muu toiminta saa hidastua/muuttua tökkiväksi kuuntelun aikana.
kurg
Vanhempi asiantuntija
 
Viestit: 175
Liittynyt: 13.04.2006 17:17

Re: Linux (Android) ja prioriteetit

ViestiKirjoittaja kurg » 13.11.2013 22:48

Tällaisella rimpsulla sain aikaan eloa kaikkiin PRIO, NICE ja RTPRI -kenttiin

komentojonolla:
mpg123 -a 1,0 -C -v koe.mp3 & busybox renice -20 $!; renice -r 99 $!; ionice $! rt 0; fg

scriptillä:
#!/bin/sh
busybox renice -20 $$
renice -r 99 $$
ionice $$ rt 0
mpg123 -C -v $1

Lisäksi hokasin, että mpg123 sisältää pari hyvää vipua ja buffer-ominaisuuden (tosin silloin täytyy src/xfermem.c -tiedoston alkuun lisätä "#define HAVE_MMAP", että suostuu kääntymään).
mpg123 -a 1,0 -b 1024 -C -v --realtime --aggressive koe.mp3

Nyt soipi pykälää varmemmin, mutta edelleen särisee enemmän tai vähemmän näytön syttymisen ja unitilaan menon aikana ja sitten jos tekee laitteella jotain (muuta kuin ssh:n kautta shellissä).
kurg
Vanhempi asiantuntija
 
Viestit: 175
Liittynyt: 13.04.2006 17:17


Paluu Linux

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailijaa

cron