View Full Version : SDL su Linux: Audio e problemi annessi.
Salve a tutti...avrei un quesito da porvi.
Ho scritto un banalissimo player (mp3, Ogg) utilizzando le sopracitate librerie (piu' le SDL_Sound) per rendere il tutto piu' rapido ed indolore...
Il player funziona perfettamente ma se comincio a fare altro (tipo spostarmi da un desktop ad un altro o navigare) l'audio, ogni tanto, fa dei salti in avanti mostruosi.
Non e' un problema di utilizzo della CPU, visto che il programma non fa praticamente niente tranne chiamare la callback quando serve e nemmeno un problema di buffer underrun (l'audio va avanti e non ha il classico effetto di stuttering tipico del bu).
La cosa strana e' che lo stesso problema l'ho riscontrato anche con il programma d'esempio "playsound" della libreria SDL_sound.
Qualcuno ha qualche consiglio oppure devo buttarmi direttamente sulle ALSA? :)
Grazie a tutti
:D
ilsensine
17-03-2004, 13:42
Stai usando un kernel della serie 2.4 o 2.6? Driver oss o ALSA?
allora...il kernel e' un 2.4.22...driver ALSA (libalsa2-0.9.6-3)...qualche consiglio? :)
ilsensine
17-03-2004, 14:05
Ci sono varie cose che puoi provare. Immagino che altri player mp3 (tipo noatun) ti funizonino correttamente.
Se le sdl accedono direttamente a /dev/dsp, stanno usando l'emulazione oss alsa. Se hai installato le SDL compilando i sorgenti, accertati che i pacchetti devel di alsa e artsd erano installati al momento della compilazione, altrimenti stai usando oss tramite alsa.
Alcuni driver alsa hanno problemi di questo tipo nell'emulazione oss.
Altra cosa, "uccidi" artsd. Non credo che cambierà qualcosa, ma almeno escludi problemi legati ad artsd.
ti ringrazio, faro' i dovuti spippolamenti :)
ilsensine
17-03-2004, 14:22
Ricorda che se le sdl sono state compilate con il supporto per i vari driver (oss, alsa, arts) per scegliere il driver da usare _non_ devi inizializzare l'audio con SDL_Init(), ma chiamare direttamente SDL_AudioInit() passando il nome del driver che vuoi testare ("oss", "alsa", "artsc").
questa non la sapevo...perdonami ma SDL_AudioInit non la trovo nel DocProject delle SDL...dove l'hai trovata? (o magari sono io demente e cieco :) :) :))..vorrei evitare di spucliarmi tutto il sorgente delle SDL :)
ilsensine
17-03-2004, 15:06
"use the source, Luke..."
(almeno gli header delle librerie :D )
vedi che sono cieco...:) gli header sono stati la prima cosa che ho guardato e non l'ho vista...:)
Thanx master Ilsen-o-sine :D
ilsensine, in effetti hai ragione tu...di default era settato DSP come driver audio...quindi OSS e potenzialmente problematico...thanx una cifra ;) :)
ilsensine
17-03-2004, 17:22
Originariamente inviato da Elysium
ilsensine, in effetti hai ragione tu...di default era settato DSP come driver audio...quindi OSS e potenzialmente problematico...thanx una cifra ;) :)
oss emulato alsa normalmente funziona, altrimenti il driver è buggatello.
Quindi hai risolto forzando alsa?
porcaccia...forzando alsa sia impostando la variabile d'ambiende SDL_AUDIODRIVER che con l'uso di SDL_AudioInit l'inizializzazione fallisce miseramente perche' ritorna un Mutex nullo...temo di dover fare un po di pulizia...o come suggerisce un mio amico passare direttamente a Gentoo :) :)
...bene...ho appena provato a ricompilare il programma su un'altra macchina con la configurazione ottimale...il problema persiste...a questo punto mi chiedo se il baco non sia nelle SDL...magari qualche rogna con la gestione dei thread...bah...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.