Mplayer: geluid k*t (niet altijd)

Pagina: 1
Acties:

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 14:40
Heb hier een CD-ROM met daarop 2 TV Uitzendingen. Zijn gemaakt in DivX formaat, audio is uncompressed PCM.
Speel ik dus netjes af met mplayer:

mplayer ./<bestand> -ao arts -vo x11

wat er vervolgens gebeurt: ontiegelijk smerig geluid, slissen, etc. Video speelt veel te snel af :(

Pak ik daarentegen een DivX waarvan het geluid in MP3 is gemaakt of iets dergelijks, dan is het wel allemaal goed. Iemand een idee wat dit kan zijn? OSS als output gebruiken helpt niets, afspelen met -nosound verlost me ook van't probleem :)

gegevens:
Mplayer 0.90-Pre7
Debian Sarge
GCC-3.1.1 (2.95.4 hetzelfde probleem)
S3 Savage2000 (XV is buggy op 16bpp, op 24bpp doet ie het wel maar dan doet XFree86 een beetje k*t, vandaar X11 output)
XFree86 4.2.1
Kernel 2.4.19-xfs
Terratec XFire 1024, draait met snd-cs46xx van Alsa.

Verwijderd

_JGC_ schreef op 11 september 2002 @ 17:57:
mplayer ./<bestand> -ao arts -vo x11
wat er vervolgens gebeurt: ontiegelijk smerig geluid, slissen, etc. Video speelt veel te snel af :(
OSS als output gebruiken helpt niets
Terratec XFire 1024, draait met snd-cs46xx van Alsa.
Waarom OSS output als je ALSA hebt?

-a0 alsa, zou ik denken.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 14:40
Ook met Alsa is ie kut, volgens mij ligt het gewoon aan de decoder ofzo :(

Edit: met alsa is ie wel goed, want de Alsa API is weer eens lekker veranderd ofzo :D
Zegt ie dit:
code:
1
2
3
4
5
6
AO: [alsa9] 44100Hz 1ch Unsigned 8-bit
alsa-init: testing and bugreports are welcome.
alsa-init: requested format: 44100 Hz, 1 channels, Unsigned 8-bit
alsa-init: 1 soundcard found, using: hw:0,0
alsa-init: unable to set periodsize: Invalid argument
couldn't open/init audio device -> NOSOUND


ofwel: geen geluid -> probleem weg... maar ik wil wel geluid

Verwijderd

_JGC_ schreef op 11 september 2002 @ 18:40:
Ook met Alsa is ie kut, volgens mij ligt het gewoon aan de decoder ofzo :(
[...]
ofwel: geen geluid -> probleem weg... maar ik wil wel geluid
enneeh, al geprobeert ALSA's OSS-compatibility layer in te laden?
snd-pcm-oss, snd-mixer-oss enzo ?

speel es een ander filmpje met geluid, kijk of ie dan ook brak is?

Verwijderd

heb ook problemen met de nieuwe mplayer.
mplayer op mijn 8.0 box deed het altijd rete goed. maar nu op mijn nieuwe box zuigt het ontiegelijk.
tis traager en schokerig als de hell.
echt maf gewoon.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 14:40
Zal zo ff kijken of 0.60 het beter doet :)

Verwijderd

Duh, ALSA IS kut. :Y).

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 14:40
100% mee eens. OSS driver geladen, ineens een stuk beter :)
alleen als ik alles via artsdsp liet lopen met mplayer 0.60 liep het redelijk, maar dan was het niet vooruit te fikken :(

Verwijderd

:? ???
het klinkt in ieder geval beter imho. en aangezien het in kernel 2.5 zit en redelijk veel kaarten ondersteunt denk ik dat het de toekomst heeft.

dus waarom vind je het 'kut'?

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 14:40
Verwijderd schreef op 11 september 2002 @ 23:40:
[...]


:? ???
het klinkt in ieder geval beter imho. en aangezien het in kernel 2.5 zit en redelijk veel kaarten ondersteunt denk ik dat het de toekomst heeft.

dus waarom vind je het 'kut'?
Omdat de API nog niet echt stabiel is... net zoals ReiserFS verandert de API gewoon tig keren, en ze hebben nog steeds geen stable versie, alleen rc's. Mixersettings worden ook niet echt lekker opgenomen via die OSS emulation layer, is gewoon bout :(
Ik zou het persoonlijk alleen nog gebruiken als OSS je kaartje niet ondersteunt.

Verwijderd

Omdat de API nog niet echt stabiel is...
afaik zijn alle versies tot 0.90 toch backwards compatible geweest. alsa 0.90 (momenteel rc3), is erg goed, dit wordt toch waarschijnlijk de definitieve API.

maareh, hoe zit dat nou met OSS? er zijn geloof ik twee versies van, eentje GPL en eentje betaald (of met tijdslimiet?)

Verwijderd

OSS API is 'free', OSS drivers van opensound.com zijn commerciele implementatie daarvan. OSS drivers in de kernel van linux zijn een GPL implementatie daarvan.

En ALSA is gewoon enorm kut. de enige reden dat ik het ooit zal installeren is omdat het me niet meer lukt om OSS in mijn 2.6 kernel te patchen. ALSA zuigt aan alle kanten en verneukt alle beginselen van unix. Een userspace lib bouwen om de brakke kanten van het protocol te verbergen en dan iedereen verplichten dat te gebruiken door geen kernel API te publiceren. Walgelijk. :r.

Verwijderd

ALSA zuigt aan alle kanten en verneukt alle beginselen van unix.
waarom? door het feit dat het wat moeilijker is om direct de kernel API te gebruiken?
Een userspace lib bouwen
dat is dan toch makkelijker te gebruiken/te beheren en minder moeite om te programmeren? of heb ik het mis?
om de brakke kanten van het protocol te verbergen
ik denk niet dat het daarom is :)
geen kernel API te publiceren
wat wil je precies wat ze doen dan? is dit niet gewoon genoeg?

en heb je het trouwens nu over alsa 0.9? want volgens mij is die toch wel even wat beter als 0.4 en 0.5

Verwijderd

Verwijderd schreef op 12 september 2002 @ 19:26:
waarom? door het feit dat het wat moeilijker is om direct de kernel API te gebruiken?
de kernel API moet de basis van een systeem zijn. Als de kernel API al zo onbruikbaar is dat men er een userspace library voor moet maken (mijn mening hierover: zie onder), dan is er iets fundamenteel mis.

Unix, en linux in het bijzonder, betekent dat je niet gaat proberen om 100 layers over elkaar heen te leggen, tenzij de layer iets toevoegt. Een layer als in:

code:
1
int open_sound_device(int mode);


In plaats van

code:
1
int open(char *device, int mode);


heeft dus totaal geen toegevoegde waarde. ALSA doet niks meer of minder dan dit - er is dus een enorme overhead en een nutteloze library die niemand wil en die bovendien een dependency wordt. Vooral als je het hebt over de non-backwards-compatible releases van ALSA, dan is dit een enorme doodsteek. Immers, ik heb een dependency en ik moet dus elke applicatie hercompilen en de user moet die lirary op zijn systeem hebben staan. Dat is belachelijk.

Denk je in, als ik nu een ALSA-compatible applicatie wil schrijven, dan moet de gebruiker daarvan, of hij nu ALSA wil gebruiken of niet, die ALSA lib hebben, omdat dat een run-dependency is. Anders start de applicatie niet op. Dat is toch van den gekke? Terwijl dat met het file descriptor systeem zo mooi was afgedekt in kernelspace en userspace en geen dependencies.

[quote]dat is dan toch makkelijker te gebruiken/te beheren en minder moeite om te programmeren? of heb ik het mis?

Nee!

Zie boven, open_sound_device(int mode) in plaats van open(char *device, int mode) voegt niks toe, behalve overhead. Daarnaast heb je in libalsa nog een extra gevaar, en dat is de ingebouwde sound daemon en de mogelijkheid om on-the-fly in software sound naar andere frequencies over te zetten. Dus een driver die maar 1x kan worden geopend kan toch meerdere geluidjes afspelen.

Maar dat is de taak van de USERSPACE sound daemon, niet een halfbakken ding wat in libalsa
zit. Compleet belahcelijk dus, en wederom verneuken van de unix principes 'make it do one thing and make it do that well' of 'KISS'.

Dan de software resampling (andere frequentie). Nu krijg je dus dat mensen die een halfbakken kaart hebben die alleen in 48kHz kan recorden, en ze willen in 44.1kHz opnemen. Onder OSS kan dat niet. En dus record je in 48kHz en is alles goed. Onder ALSA kan dat, en dus krijg je een enorme toegevoegde CPU load vanwege de software resamping en bovendien een halfbakken functie in libalsa die er helemaal niet in hoort (dat zit in sox - KISS). En omdat het al die functionalieit levert, krijg je alleen maar slechte applicaties die gebruik maken van al die toeters en bellen en die dus een systeem opleveren die niet meer vooruit is te branden omdat overal emulatie wordt toegepast.

Moet je je voorstellen dat je een RGB16-only display hebt en een 48kHz-only soundcard en dat je een concert zit te kijken van 44.1kHz op je RGB24-desktopje KDE3. Ben jij even stoer! En constant 100% CPU load en je systeem is niet vooruit te branden.

Dat wil je dus voorkomen, en dus moet je uberhaupt niet aan kernel emulation modes beginnen.

libalsa is dus een bloated library die op de meeste punten niks toevoegt en die op de punten waar het wel wat toevoegt, alleen maar functionaliteit van andere applicaties overneemt en dus een extra layer toevoegt en dat ook nog eens halfbakken doet. Kortom: ALSA zuigt.
wat wil je precies wat ze doen dan? is dit niet gewoon genoeg?
Ik wil een complete API description zoals bij OSS, zonder de automatische verplichting om libalsa te gebruiken.

/me had veel liever een OSS2 gezien, een verbetering van OSS die ook nog eens deels backwards compatible was... ;(.

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Verwijderd schreef op 12 september 2002 @ 20:23:
[...]
[...]
heeft dus totaal geen toegevoegde waarde. ALSA doet niks meer of minder dan dit - er is dus een enorme overhead en een nutteloze library die niemand wil en die bovendien een dependency wordt. Vooral als je het hebt over de non-backwards-compatible releases van ALSA, dan is dit een enorme doodsteek. Immers, ik heb een dependency en ik moet dus elke applicatie hercompilen en de user moet die lirary op zijn systeem hebben staan. Dat is belachelijk.
ALSA is nog in het stadium van ontwikkelsoftware en zit zelf nog niet eens standaard in de kernel. Dus wel of niet backwards-compatible zijn is een non issue.
[....]
alsa is dus een bloated library die op de meeste punten niks toevoegt en die op de punten waar het wel wat toevoegt, alleen maar functionaliteit van andere applicaties overneemt en dus een extra layer toevoegt en dat ook nog eens halfbakken doet. Kortom: ALSA zuigt.
Als ALSA echt zo slecht is zoals je beweerd dan komt er vanzelf wel een ALSA2 waarin alles opnieuw wordt gedaan maar dan op de goede manier. Het is gebeurd met IPCHAINS (-> IPTABLES) en is op dit monent aan de gang voor Video4Linux.
/me had veel liever een OSS2 gezien, een verbetering van OSS die ook nog eens deels backwards compatible was... ;(.
* Buffy kijkt hoopvol uit naar de dag dat beelzebubu zijn eerste versie van OSS2 released :)

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


Verwijderd

Dawns_sister schreef op 12 september 2002 @ 21:12:
ALSA is nog in het stadium van ontwikkelsoftware en zit zelf nog niet eens standaard in de kernel. Dus wel of niet backwards-compatible zijn is een non issue.
Mwoh... Linus is vrij conservatief hoor, vergis je niet. Iets wat in zijn tree terechtkomt, development of stable, moet toch redelijk 'af' zijn...
Als ALSA echt zo slecht is zoals je beweerd dan komt er vanzelf wel een ALSA2 waarin alles opnieuw wordt gedaan maar dan op de goede manier. Het is gebeurd met IPCHAINS (-> IPTABLES) en is op dit monent aan de gang voor Video4Linux.
Qua v4l2 en ipchains heb je gelijk, maar hun voorgangers waren gewoon incompleet en misten enkele features. ALSA is gewoon fundamenteel verkeerd... Da's toch een redelijk groot verschil... ALSA met video4linux2 vergelijken vind ik een groffe belediging voor video4linux2.
/me kijkt hoopvol uit naar de dag dat beelzebubu zijn eerste versie van OSS2 released :)
kijk nou maar uit, straks doe ik het ook nog. :D.
Pagina: 1