Yair K. wrote: > On Thursday 25 September 2008 01:02:31 SeaJey wrote: >> Source: http://0pointer.de/blog/projects/guide-to-sound-apis >> Quote: >> <skip> >> OSS >> The Open Sound System is a low-level PCM API supported by a variety of >> Unixes including Linux. It started out as the standard Linux audio system >> and >> is supported on current Linux kernels in the API version 3 as OSS3. OSS3 is >> considered obsolete and has been fully replaced by ALSA. A successor to OSS3 >> called OSS4 is available but plays virtually no role on Linux and is not >> supported in standard kernels or by any of the relevant distributions. The >> OSS >> API is very low-level, based around direct kernel interfacing using >> ioctl()s. >> It it is hence awkward to use and can practically not be virtualized for >> usage >> on non-kernel audio systems like sound servers (such as PulseAudio) or >> userspace sound drivers (such as Bluetooth or FireWire audio). OSS3's timing >> model cannot properly be mapped to software sound servers at all, and is >> also >> problematic on non-PCI hardware such as USB audio. Also, OSS does not do >> sample type conversion, remapping of resampling if necessary. This means >> that >> clients that properly want to support OSS need to include a complete set of >> converters/remappers/resamplers for the case when the hardware does not >> natively support the requested sampling parameters. With modern sound cards >> it >> is very common to support only S32LE samples at 48Khz and nothing else. If >> an >> OSS-client assumes it can always play back S16LE samples at 44.1Khz it will >> thus fail. OSS3 is portable to other Unix-like systems, various differences >> however apply. OSS also doesn't support surround sound and other >> functionality >> of modern sounds systems properly. OSS should be considered obsolete and not >> be used in new applications. ALSA and PulseAudio have limited >> LD_PRELOAD-based >> compatibility with OSS. >> >> Are the things so bad or this is kind of rant? > > It's pretty inaccurate FUD (From the URL address - it's Pulseaudio's author, > right? I'd have expected him to know better). He's basically judging OSS per > the old OSS/Free drivers, which is like 5 years ago, and even that he does > wrong. > First, *all* current implementations/emulations of OSSv3 do sample > conversion. It's not even a property defined by the API but by the underlying > drivers. > Second, even OSSv3 supported surround, USB cards, etc. > Third, arguing that "it cannot be virtualized" is disproven by the amount of > emulations and alternative implementations existing out there and working in > practice. (The main difficulty is mmap() API, which is very rarely used > anyway, and even that can be done with, say, oss2pulse). > Fourth, complaining about OSS API being awkward, is... well, awkward when you > compare it to ALSA API, if you could compare it, since most ALSA API isn't > documented. > It's kinda funny he advocates using ALSA API (not in the quoted part above, > but last time I read his blog he suggested it). Actual ALSA devs advocate > against it, but using a sound library with multiple backends[1]. > > [1] e.g. http://www.archivum.info/linux.kernel/2006-01/msg02687.html > > P.S. Most modern soundcards I've seen do "S16LE" and nothing else, > unfortunately. > _______________________________________________ > oss-devel mailing list > oss-devel@mailman.opensound.com > http://mailman.opensound.com/mailman/listinfo/oss-devel >
Hi, I've already sent Lennart a note.....here's his response. The biggest piece of BS: OSS also doesn't support surround sound and other functionality of modern sounds systems properly. ... regards Dev -------- Original Message -------- Subject: Re: [alsa-devel] Guide to Linux Sound APIs Date: Thu, 25 Sep 2008 02:35:21 +0200 From: Lennart Poettering <[EMAIL PROTECTED]> Organization: Red Hat, Inc. To: Dev Mazumdar <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> On Wed, 24.09.08 16:05, Dev Mazumdar ([EMAIL PROTECTED]) wrote: > How did you decide for all the Linux community that Open Sound System > should not be used for any new programs?. I did not "decide" anything. I just wrote up a guide that gives recommendations. I gave quite a few reasons why I think noone should write new Linux applications for the OSS API: <snip> ... OSS3 is considered obsolete and has been fully replaced by ALSA. A successor to OSS3 called OSS4 is available but plays virtually no role on Linux and is not supported in standard kernels or by any of the relevant distributions. The OSS API is very low-level, based around direct kernel interfacing using ioctl()s. It it is hence awkward to use and can practically not be virtualized for usage on non-kernel audio systems like sound servers (such as PulseAudio) or user-space sound drivers (such as Bluetooth or FireWire audio). OSS3's timing model cannot properly be mapped to software sound servers at all, and is also problematic on non-PCI hardware such as USB audio. Also, OSS does not do sample type conversion, remapping or resampling if necessary. This means that clients that properly want to support OSS need to include a complete set of converters/remappers/resamplers for the case when the hardware does not natively support the requested sampling parameters. With modern sound cards it is very common to support only S32LE samples at 48KHz and nothing else. If an OSS client assumes it can always play back S16LE samples at 44.1KHz it will thus fail. OSS3 is portable to other Unix-like systems, various differences however apply. OSS also doesn't support surround sound and other functionality of modern sounds systems properly. ... </snip> Sure, some of the issues pointed out here may have been fixed in OSS4. But OSS4 is irrelevant on Linux. Also we don't need two APIs that have the same purposes. That's why this guide recommends ALSA and not OSS. > We have been telling our customers quite the contrary to go with GStreamer > rather than use Pulse Audio. You seem to confuse things here. GStreamer and PulseAudio solve completely different problems and have almost nothing in common. It's like recommending to go with a window instead of a dog. ;-) > I think you may have completely underestimated the practicality and the > robustness of Open Sound. Hehe, that doesn't change the fact that OSS3 is obsolete and OSS4 plays no role on Linux and the API is generally questionnable. Lennart -- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net ICQ# 11060553 http://0pointer.net/lennart/ GnuPG 0x1A015CC4 -- ----------------------------------------------------------- 4Front Technologies 4035 Lafayette Place, Unit F, Culver City, CA 90232, USA. Tel: (310) 202 8530 URL: www.opensound.com Fax: (310) 202 0496 Email: [EMAIL PROTECTED] ----------------------------------------------------------- _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel