Hi Sam,
First off I think libmad is awesome, a great bit of code. I have just finished integrating libmad into Kaffe, the open source java VM. Now any java app can call codec functions which will use the lowlevel libmad C libraries to do the hard work and pass back raw PCM. This was done as part of the pocketlinux.com project so we now have lightning fast mp3 decoding on iPaq and other handhelds.
Excellent. Is this available online somewhere? I took a quick look at pocketlinux.com but didn't know where to find it.
I found the code so easy to use I was wondering why there aren't more players out there based on mad. Is there even an XMMS plugin? I will write one if there isn't. Seems like most of the players out there simply cut and paste code from mpg123 of simply fork it of as another process. I really like the idea of having a simple lib on the system for doing mp3 decoding and having all the players link against it.
I think somebody was going to write an XMMS plug-in but I don't know whether any progress was made. If anyone has, surely they will speak up. :-)
It would be nice to develop a versatile API and shared library suitable for multiple applications. The current library is OK although perhaps a bit plain. In particular I think it would be helpful to have more API layers, so another layer might handle all the buffering associated with reading from a stream, and another layer could scale the output to any of a variety of formats (8/16/24/32-bit PCM, floating point, etc.) and so on.
This list is a good place to talk about such things.
Cheers, -rob