[patch] little-endian dmasound silently fails

Takashi Oe toe at unlserve.unl.edu
Sat Feb 5 16:56:13 EST 2000


On Fri, 4 Feb 2000, Brad Midgley wrote:

> > How does it write "little-endian data"?  Does the program take care of CPU
> > being big-endian in some way?  If not, I'd think it's the program's fault.
>
> the api provides for a way for clients to set the driver to accept
> little-endian data. worse than simply not implementing it, dmasound also
> makes it *appear* that it implements it.

Maybe because it does support it?  Well, seriously, I've just checked the
driver is okay wrt *S16_LE/BE at least on AWACS rev. 2.

First, I wrote an app to play a sound file correctly when AFMT_S16_BE is
specified.  Then, I modified the app so that it will byte swap the 16-bit
data but still with AFMT_S16_BE.  As expected, it made some annoying
noise when it was asked to play the same sound file.  Now, I modified the
code again to let it specify AFMT_S16_LE instead.  Well, it played the
sound file correctly just as hoped.

I know a lot of people are not happy about our sound driver, but I
don't think this is dmasound's fault.  Luckily for us, many "broken"
OSS-compatible apps tend to work just fine if we simply modify them to ask
for AFMT_S16_NE not *_LE, though performance critical apps should be fixed
with more effort.


Takashi Oe


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list