At Tue, 18 May 2004 09:30:54 -0400, Manuel Jander wrote: > > Hi, > > On Tue, 2004-05-18 at 15:46 +0200, [EMAIL PROTECTED] wrote: > > On Thu, 13 May 2004, Adam Tla/lka wrote: > > > > > On Wed, May 12, 2004 at 05:40:55PM +0200, Clemens Ladisch wrote: > > > > > > ALSA is complicated and we have no good manual describing proper use > > > of its api. You can easily prove this: many programs have ALSA output > > > modules but they are working worse then when using OSS. > > > For example mplayer with OSS synchronizes video and sound much faster > > > in case of network streaming. XMMS is broken too. > > ?? mplayer isn't broken in any way with alsa. it supports alsa since the > > early days and also current versions very well. please don't talk > > bullshit. > > it probably does av-sync faster at some particular streams (what ever you > > mean with that) with oss, but i never ever saw some significant > > performance differences compared to oss. > > at least it supports real mmaped-io for up to 2 channels. > > > > Unfortunately i have to agree with Clemens. In my opinion the ALSA API > is giving the applications too much freedom in choosing parameters and > does not enforce any restrictions on hardware that can't support them.
basically, such a restriction is up to the driver. in the ideal world, hw_constraints should be able to handle these cases properly... > As the main author of the Aureal Vortex driver, its very stupid having > to handle arbitrary period sizes, introducing a lot of overhead and > complexity in the driver, while the hardware just is not designed to > handle period sizes that are not powers of two, due to page boundary > overlapping trouble. Obviously as a result, OSS works much better, since > it almost ever chooses the biggest buffer possible, resulting in a sane > period size. Period sizes of 314.15.14 bytes are just silly, plain > stupid. The user won't notice any difference if its 256 instead, but > since the app insist in such period sizes it just fails, and the user > gets no sound all. The behaviour of the user application in the end > depends too much on the hardware it is running on. first, the power of two is not a golden rule for every sound chip. for some chips, it's difficult to handle such period/buffer sizes. in theory, we can set the hw_constraint for the buffer/period sizes in power of two. yes, i tried it, but it failed. this is because ALSA handles the buffer/period sizes in two different units, frames and time in msec. IMO, it was a wrong decision to use different units for the single purpose. maybe we need a workaround not to mix up these units in the configurator. > AFAIK, the ICE1712 has exactly the same hardware restriction. I know > that the via driver does cope with this, but that particular hardware > has special hardware resources for such a thing, where other hardware > don't. ICE1712 has no problem regarding this. its problem is that the max. buffer size is 64k even though it always uses 32bit x 10 channels. > The cost of allowing any parameter value is not worth it in my opinion. > Its actually causing a lot of trouble. not all parameters are accepted. it depends on the driver implementation. please don't misunderstand: i don't mean that the current ALSA design is perfect. it's not at all, as you know :) however, the basic design of ALSA is that it leaves such a reststriction purely to the driver implementation. if your driver allows everyhing, it's the driver's responsibility to support everyhing. unfortunately, the power-of-two restriction doesn't work well because of the failure of configurator. it's an exceptional case. Takashi ------------------------------------------------------- This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel