[MPlayer-users] error compiling: libao2: missing AFMT_U* defines

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Tue Dec 28 23:18:49 CET 2004

> I'm unable to compile MPlayer-1.0pre6 and the most recent CVS version 
> unter SuSE 9.1 with vanilla 2.6.10 kernel and commercial OSS 3.99.1i 
> drivers.

In current CVS this problem only exists with OSS output.
Normally missing formats are defined in afmt.h, but we assumed that
everyone specifying the signed variant would also specify the unsigned.

> The OSS developers think it is a mplayer bug. 
> I've appended their reply below.


> PPS: Here's the response of the OSS developers regarding the bug.
>      Hope that helps too!
> Hi,
> This is definitely a bug in mplayer.

And there are people that tell me only MPlayer developers are so
arrogant as to make such statements... Well...

> The only unsigned format being used by any hardware is AFMT_U8. The 16 and
> 24 bit formats supported by the sound cards are always signed ones. So
> trying to use formats like AFMT_U32_LE doesn't make any sense.
> I don't know where the authors of mplayer have found formats like
> AFMT_U32_LE but they don't exist in OSS and they will not be added to it
> in the future.

Where we found it? Well it can be easily found in files or as the result
of decompression. Also the fact that no soundcard _now_ supports these
formats says nothing about the future...
The only thing that might be considered a bug in our code is that anyone
who defines AFMT_S<something> will also define AFMT_U<something>.
And I think it is a bug in the commercial OSS headers not only because it
works with anything else but also that it is nonsense to call a format
explicitly "signed" if there is no and never will be a "unsigned" variant
(the linux kernel defines AFMT_U16_LE btw).
Not to mention that adding a few defines just for consistency's sake is
not much of a problem.
Ah, isn't it a nice state of things when everyone can confidently claim
it's the other one's fault? ;-)
Anyway, after latest changes to CVS the problem is confined to ao_oss.c
and should be easily fixable with a few #ifdefs. Feel free to provide a
patch or wait until somebody else does.

Reimar Döffinger

More information about the MPlayer-users mailing list