At 05:50 PM 12/8/2003 -0700, you wrote:
>It's even more broken than this.
>
>In both XMMS and Winamp, the mp3 plugin will grab EVERYTHING except urls
>that end in '.ogg'. You can easily grep and find this code in the
XMMS
>plugin if you're curious. So anything that doens't end in .ogg
won't
>even be looked at, itwill be shipped off to the mp3 plugin which will
>keep rebuffering trying to find valid data. But all this happens in
>such a way that the user can never know what is really going on.
not to condone what the winamp mp3 input plugin has done, but as far as I
know, the plugin actually only grabs .mp3 extentions and also urls without
extensions. So it's not entirely correct to say that the mp3 input plugin
grabs everything except .ogg. When winamp is told to play a file, it will
pass the URL to each of the input plugins (via a call to the
input-plugin-coded is_playable() function. If the input plugin returns 1
from this call, then that input plugin is invoked. Now I'm not sure in
which order the input plugins are called, but I thought the mp3 input was
invoked last as a sort of catch-all "if nothing else matches, lets try to
assume it's a mp3 stream/file...
although this is probably more than anyone wanted to know about the inner
workings of winamp.
Winamp 3 did fix this by looking at Content-types, but for some reason was
still horribly broken for vorbis streams. It is unknown what technique
Winamp 5 uses, but my guess is that it still uses the "extension
technique"
in order to support the existing 2.x input plugin architecture.
This is all educated conjecture however since I, nor anyone else outside
Nullsoft and a few contractors under NDAs, have seen the code for Winamp's
input plugins or plugin architecture... :)
oddsock
<p>--- >8 ----
List archives: http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to
'icecast-request@xiph.org'
containing only the word 'unsubscribe' in the body. No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.