Mixed MP3/Ogg Streaming
This is the problem, when a client, like XMMS, connects it negotiates the stream type. After this it just assumes all data after this point is of the same type. At no point can it switch content types. You can use something like a play list which lists multiple connections to simulate playing different formats in a row, the thing is this requires a reconnection to the server each time.
You can blame the two dominant protocols, SHOUT and ICY. One was created for the Shoutcast server and the other was created by the Icecast folks. Neither of them really considered the issue of carrying any other payload then MP3, or more to the point, changing content type in midstream.
At some point it would be great if Vorbis/Ogg became dominant because of the silly copyright restriction with MP3 that make the use of the lame encoder pretty questionable. It still has a way to go though since the code for bit peeling has yet to be finished and until that is completed, to down bitgrade an Ogg stream you have to decode it to some format like PCM and then reencode to Ogg (which is certainly not optimial for real time demands).
What we need is to create a new protocol that can handle different payloads. There are many problems with both methods in use today.
For instance, id3v2 has lyric tags that can be synchronized to the music. However, the reason you cannot have a player with the feature to sing-along to the bouncing ball is because the shoutcast, and icecast protocols don't support title streaming. They are also designed for one media type at a time... mp3 or ogg. Both were originally designed for just mp3 streaming.
The two methods both seem like hacks...
I'd like to see a new system that is based on xml for the meta data.. like the title-streaming. Maybe a multi channel system one being for the data stream, another for the Meta data.
Honestly the hard part isn't getting a new standard for streaming... its getting the people who make the decoders that have the issues. They would have to understand the protocals, and since these are the same people that came up with the two compeiting formats we have now... its pointless batle.
It isn't a lie if you belive it.
Ok, I think I can sum up what you wrote into the following. mod_mp3 assumes that a file is an MP3 unless you tell it that the file if ogg. If you tell it that its reading ogg, it assumes all files are ogg.
Solution is to add a directive saying "mixed is ok", setting the default op to "send playlist" and then add code to load.c to tell the difference between ogg and mp3.
Once the "this is this type of file is written" the rest is trivial.
You can't grep a dead tree.