Portál AbcLinuxu, 4. května 2024 22:28


Dotaz: Lagující ALSA

ZmaTkar avatar 28.7.2008 10:39 ZmaTkar | skóre: 18 | blog: ZmaTkar
Lagující ALSA
Přečteno: 641×
Odpovědět | Admin
Ahoj, mám takový menší problém s alsou a už nevím co s tím. Problém je zhruba takový:

S kernelem 2.6.22 vše jede v pohodě, ale jakákoli vyšší verze kernelu má velice rušivé lagy při přehrávání zvuku. Nejvíce se to projevuje např. při načítání www stránky s velkým množstvím obrázků.

Zvukovka M-Audio 5.1, ovladač snd_ice1724.

Vyzkoušel jsem všechna možná i nemožná nastavení pomocí asoundrc (hlavně velikost bufferu).

Aktuální asoundrc je:
# 6 channel dmix:
pcm.dmix6 {
    type dmix
       ipc_key 1024
       ipc_key_add_uid false
       ipc_perm 0660
       slave {
               pcm "hw:0,0"
               rate 96000
               channels 6
               period_time 0
               period_size 2048
               buffer_time 0
               buffer_size 32768
       }
    }
# upmixing:
pcm.ch51dup {
       type route
       slave.pcm dmix6
       slave.channels 6
       ttable.0.0 1
       ttable.1.1 1
       ttable.0.2 1
       ttable.1.3 1
       ttable.0.4 0.5
       ttable.1.4 0.5
       ttable.0.5 0.5
       ttable.1.5 0.5
  }
pcm.duplex {
    type asym
    playback.pcm "ch51dup" # upmix first
    capture.pcm "hw:0"
}
# change default device:
pcm.!default {
    type plug
    slave.pcm "duplex"
}

pcm.duplicate {
        type plug
        slave.pcm dmix6
        slave.channels 6
        route_policy duplicate
}

# for aoss
pcm.dsp "duplex"
pcm.dsp1 "duplex"

# from http://www.nabble.com/noise-only-t3718152.html
#defaults.pcm.dmix_max_periods -1
Punk's not dead ...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.7.2008 07:28 Dawgie
Rozbalit Rozbalit vše Re: Lagující ALSA
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mám stejnou kartu a používám tenhle asound.rc:
cm.dmixs51 {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
	#slave.pcm "duplicate"
    	#slave.channels 6
        rate 48000
        channels 6
        period_time 0
        period_size 1024
        buffer_time 0
        buffer_size 4096
}
 bindings {
        0 0
        1 1
        2 4
        3 5
        4 2
        5 3
    }    
 }
  
pcm.!default {
    type plug
    slave.pcm "dmixs51"
    slave.channels 6
    route_policy duplicate
}


pcm.ch51dup {
    type route
    slave.pcm surround51
    slave.channels 6
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 0.5
    ttable.1.4 0.5
    ttable.0.5 0.5
    ttable.1.5 0.5
    route_policy duplicate
}



Zvuk mi jede bez problémů, jen pokud by ti nějak haprovalo rozložení kanálů do jednotlivejch reproduktorů, tak si pohraj s tou sekcí bindings. Přednní bedny jsou 0 a 1, zadní 2 a 3, centrál a woofer jsou 4 a 5.

Snad jsem ti pomohl...
3.8.2008 14:27 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemá zvukovka sdílené přerušení s jiným zařízením? Jaká je verze alsy v 2.6.22 a v 2.6.23 (cat /proc/asound/version), byl tam upgrade?
ZmaTkar avatar 4.8.2008 10:22 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Kouknu na to hned jak budu doma, děkuji za ochotu pomoci.
Punk's not dead ...
ZmaTkar avatar 6.8.2008 08:46 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Zvukovka přerušení nesdílí. V kernelu 2.6.22 i 2.6.23 je stejná verze alsy a to 1.0.14. Otestoval jsem ještě kernel 2.6.25 (alsa 1.0.16rc2) přímo debianí a laguje. Původně jsem myslel, že jsou na vině ATI ovladače, ale ty v 2.6.25 nemám nainstalované (resp. není zavedený modul kernelu).
Punk's not dead ...
6.8.2008 11:00 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Hmm, bohužel nevím. Zkusil bych změnil rate dmixu, aby nemusel konvertovat třeba 48kHz audio, a vyzkoušet to. Pak bych ještě zvýšil buffer, co to dá. S prioritami přehrávacího procesu (i rt priority) jsi si asi již hrál.
6.8.2008 11:01 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Mám také ice1724 a nelaguje ani při současné kompilaci alsy a vedle toho jádra, mplayer čistě přehrává d-dur z netu, duron 1GHz, 512MB RAM, jádra od 22 do 25
ZmaTkar avatar 6.8.2008 17:21 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Teď jsem zkoušel ještě 2.6.26, kde je alsa 1.0.16 a zdá se že je to bez lagů.

Jinak mám Athlon 4850e/2,5GHz, 2GB RAM.

Kompilace mi to lagování nijak neovlivňuje, spíš bych subjektivně řekl, že když alespoň jedno jádro zatížím, tak se lagování zmenší. Lag se projeví především při překreslení obrazovky, tj při přepínání ploch, když chytnu okno za okraj a trochu pohnu, tak lagne, při dalším pohybu už ne ...

Každopádně díky za pomoc a rady.
Punk's not dead ...
ZmaTkar avatar 6.8.2008 17:25 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
S rate dmixu nějak nemůžu hejbat, musím tam mít těch 96kHz, jinak mi všechno hraje 2x pomalejc :) nějak se mi nepodařilo zjistit jak rozběhat těch 48kHz.

S bufferem jsem si hrál, ale nějak to nemělo efekt, buď sem něco dělal blbě nebo nevím. Aby se mi načetla znova konfigurace z .asoundrc stačí jen ukončit a znovu spustit např. amarok nebo ne ?
Punk's not dead ...
7.8.2008 15:31 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Ovladač ice1724 nabízí ovládací prvky Multi Track Internal Clock a Multi Track Rate Locking. Pokud je Locking (zámek) zapnutý (nebo vypnutý, nemám teď kartu u sebe), pak aplikace nemůže přenastavit hodiny zvukovky a použije se aktuální hodnota karty zobrazovaná v slideru Clock - tedy může přehrávat zrychleně/zpomaleně. Když se zámek vypne, driver sám mění hodiny zvukovky dle parametrů aktuálně přehrávaného streamu.

Máš tedy zámek zamčený a Clock nastavené na 96kHz. Stačí zámek odemknout a karta bude hrát na takové frekvenci, jakou si zvolíš v dmixeru, protože pak bude mít stream do ovladače/zvukovky takovou frekvenci.

Konfigurace v .asoundrc se čte knihovnou alsa-lib bez démona, takže stačí restartovat přehrávací aplikaci.
ZmaTkar avatar 14.8.2008 15:13 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Jojo, todle pomohlo, teď mám playback na 48kHz. Ovšem na situaci se nic nemění, laguje to stále.

Faktem je, že když vypnu dmix (smažu .asoundrc), tak to jede bez lagů.

Dmix využívám na to, abych měl "rozbočený" signál pro sluchátka, zesík a TV + každý má své šoupátko na hlasitost.
Punk's not dead ...
14.8.2008 15:39 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Je na to potřeba dmix? Na to by měl stačit ten route, ne? Dmix slouží k vícenásobnému neexklusivního otevírání alsího zařízení a sjednocování parametrů streamů (formát, frekvence), aby se to mohlo sečíst a pustit do zvukovky.

Pokud dělá dmix bordel, chtělo by to nejnovější verzi alsa-lib (userspace, nejde o ovladače v kernelu). Pokud i pak stále, můžeme se poptat na mailinglistu alsa-devel.
ZmaTkar avatar 14.8.2008 23:09 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Teďka mi to taky napadlo ... :)

Ve svém konfiguráku jsem nahradil dmix6 za surround51
pcm.ch51dup {
       type route
#       slave.pcm dmix6
       slave.pcm surround51
       slave.channels 6
       ttable.0.0 1
       ttable.1.1 1
       ttable.0.2 1
       ttable.1.3 1
       ttable.0.4 0.5
       ttable.1.4 0.5
       ttable.0.5 0.5
       ttable.1.5 0.5
  }

Tím jsem nepoužil ten dmix (opravdu není potřeba, jen jsem to nevěděl) a už to jede jako fík.

Tímto děkuji všem za pomoc a považuji věc za vyřešenou.
Punk's not dead ...
15.8.2008 07:18 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Jsem rád, že je již zvuk OK. Nicméně by asi bylo dobré ten dmix vyřešit/nareportovat/opravit, pro ostatní. Dmix je velice užitečná věc.
ZmaTkar avatar 15.8.2008 08:12 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
To asi ano, ale ostatním co zde přispěli to funguje normálně ...

Všiml jsem si, že problém nastane když nainstaluji ovladače pro ATI (fglrx). Pak opravdu jakýkoli počáteční pohyb okna nebo přepnutí z plochy na plochu způsobí výpadek přehrávání.

Při použití RadeonHD to nedělá (nebo alespoň ne tolik).
Punk's not dead ...
15.8.2008 10:06 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Hmm, to opravdu vypadá na neslušné chování fglrx, něco jako příliš dlouhá obsluha přerušení nebo záplava interruptů při přesouvání okna. Dmix na osmi kanálech má docela režii, tam již může být zpoždění znát. Zkusil jsi změnit real time prioritu svého uživatele, třeba dle http://gentoo-wiki.com/HOWTO_Jack ?
15.8.2008 10:06 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Lagující ALSA
Hmm, to opravdu vypadá na neslušné chování fglrx, něco jako příliš dlouhá obsluha přerušení nebo záplava přerušení při přesouvání okna. Dmix na osmi kanálech má docela režii, tam již může být zpoždění znát. Zkusil jsi změnit real time prioritu svého uživatele, třeba dle http://gentoo-wiki.com/HOWTO_Jack ?
ZmaTkar avatar 16.9.2008 10:29 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Lagující ALSA
Takže jsem otestil ještě pár věcí, přešel jsem na pulseaudio. Zde zvuk laguje méně, ovšem jakoby sám od sebe, tj. nic nedělám a stejně to občas lagne. Problém nakonec není v alse ani v pulseaudiu, ale nejspíš v Amaroku, audacious totiž nelaguje. Ještě to pořádně otestuju.
Punk's not dead ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.