From: "Adam Tlałka" <atlka@pg.gda.pl>
To: Lee Revell <rlrevell@joe-job.com>
Cc: galibert@pobox.com, ak@suse.de, linux-kernel@vger.kernel.org,
alsa-devel@alsa-project.org, perex@suse.cz,
alan@lxorguk.ukuu.org.uk
Subject: Re: [Alsa-devel] OSS driver removal, 2nd round (v2)
Date: Tue, 11 Jul 2006 08:59:52 +0200 [thread overview]
Message-ID: <20060711085952.f1254229.atlka@pg.gda.pl> (raw)
In-Reply-To: <1152578344.21909.12.camel@mindpipe>
On Mon, 10 Jul 2006 20:39:03 -0400
Lee Revell <rlrevell@joe-job.com> wrote:
> On Tue, 2006-07-11 at 01:59 +0200, Olivier Galibert wrote:
> > ALSA lib has something like 7 different methods just to play a sound.
> > Their view of "low level" is quite interesting. Using it is pure
> > hell. Debugging what you've done is worse. And don't bother to hope
> > that your code will still work in six months.
> >
>
> A small FAQ:
>
> Q: But OSS is kewl and ALSA sucks!
> A: The decision for the OSS->ALSA move was four years ago.
> If ALSA sucks, please help to improve ALSA.
The problem is that ALSA is done a Windows way with too many not always working ways
of obtaining sound and lack of user docs. So there is still the general question:
Is it the proper way? How I can help improve ALSA if I just dislike its design?
I spent some time improving dmix and aoss in the past. I have a version of aoss
which uses callbacks and works properly with some not properly written OSS apps.
It's very interesting that with some apps aoss method gives better sound A/V synchronization then using native ALSA app support ;-).
But callbacks not always work and LD_PRELOAD method is generally not secure
and some kind of a hack. So I just don't think it could be improved with it's current design.
In my opinion it should work out of the box without need to rewrite old or proprietary apps
and messing with LD_PRELOAD. So /dev/dsp compatibility is a must. But with all input/output
mixing of course. Userspace thread method leads to many problems - swapping and rescheduling leads to bad acustic effects. Of course if an app can't supply data when it should we can't do anything but if scheduling or swapping causes problems the design seems to be bad.
There are many devices which need to be served at the some critical point in time
- sound cards, video and tv grabbers, some dedicated lab cards, i/o ports etc.
Generally on the really low level this is a kernel driver which sticks to the hardware and should ``know'' how critical is to serve hw requests just in time. If we have data in a buffer programing DMA transfer is a quite quick operation but must be done at the proper moment.
So maybe we should delay a bit other io for example and just do it. But it must be done in kernel because kernel should know these critical time parameters for all devices in the system and decide which to serve and when. Maybe this is not needed for all devices but for audio/video devices it's a must. Better kernel support for these kind of devices is absolutely needed.
ALSA in lib way has its limitations and drawbacks and adding more feaures this way
leads to more complications only IMHO.
Regards
--
Adam Tlałka mailto:atlka@pg.gda.pl ^v^ ^v^ ^v^
Computer Center, Gdańsk University of Technology, Poland
PGP public key: finger atlka@sunrise.pg.gda.pl
next prev parent reply other threads:[~2006-07-11 6:57 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-07 23:17 Adrian Bunk
2006-07-07 23:50 ` Andi Kleen
2006-07-08 0:00 ` Adrian Bunk
2006-07-08 1:30 ` Jeff Garzik
2006-07-09 15:18 ` [Alsa-devel] " Lee Revell
2006-07-09 16:08 ` Olivier Galibert
2006-07-10 11:28 ` Adam Tlałka
2006-07-10 13:18 ` James Courtier-Dutton
2006-07-10 13:57 ` Adrian Bunk
2006-07-10 22:48 ` Lee Revell
2006-07-10 23:38 ` Adam Tlałka
2006-07-10 23:51 ` Cloning sound output [was Re: [Alsa-devel] OSS driver removal, 2nd round (v2)] J.A. Magallón
2006-07-10 23:51 ` [Alsa-devel] OSS driver removal, 2nd round (v2) Lee Revell
2006-07-10 23:59 ` Olivier Galibert
2006-07-11 0:39 ` Lee Revell
2006-07-11 6:59 ` Adam Tlałka [this message]
2006-07-11 7:02 ` Andi Kleen
2006-07-11 7:58 ` Jaroslav Kysela
2006-07-11 9:08 ` Adam Tlałka
2006-07-11 9:52 ` Jaroslav Kysela
2006-07-11 11:18 ` Diego Calleja
2006-07-11 11:29 ` Adam Tlałka
2006-07-11 10:28 ` Adrian Bunk
2006-07-11 2:09 ` Valdis.Kletnieks
2006-07-11 6:15 ` Adam Tlałka
2006-07-11 14:30 ` Valdis.Kletnieks
2006-07-11 16:57 ` Lee Revell
2006-07-11 22:31 ` Adam Tlałka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060711085952.f1254229.atlka@pg.gda.pl \
--to=atlka@pg.gda.pl \
--cc=ak@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=alsa-devel@alsa-project.org \
--cc=galibert@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@suse.cz \
--cc=rlrevell@joe-job.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®