#8 shoutcast patch

Kernel Jake

I am submitting a patch against mpg321-0.2.10 that
addresses the following issues:

1. make http://some.server.name (no trailing slash) work

2. support shoutcast.pls files. For example,
$ mpg321 http://somafm.com/beatblender.pls
will now parse the returned playlist data and find the
next available URL in the channel list.

3. change HTTP User-Agent string to be "xmms/1.2.7" so
that shoutcast servers will return an mpeg stream
instead of refusing the connection.

4. support icecast meta-data in Remote mode. For example,
$ mpg321 -R -
L http://somafm.com/beatblender.pls
@I D Zihan Kamien - Wheres Johny Sabatino
@I Hefner - Everyday

5. included the fix for the "http streams skip bug"
(#750824). Checks the result of read() in mad.c's

I implemented item #2 so that I can specify a .pls URL
in a client program like irmp3 and not care whether the
actual shoutcast server IP address changes.

I implemented item #4 so that client programs like
irmp3 can have the Artist and Title updated via lcdproc
throughout the course of listening to a shoutcast stream.

This patch was tested on Redhat 8.0 and 9.0 Linux with
OSS drivers.


  • Kernel Jake

    Kernel Jake - 2003-11-28

    Logged In: YES

    I'm uploading an update to the patch (rev.2) that will
    timeout each attempt to contact the shoutcast server after
    10 seconds. That way, you won't sit there for each socket()
    call to timeout trying to find an available server in the

  • Kernel Jake

    Kernel Jake - 2004-01-03

    Logged In: YES

    New version 3 of patch attached. This patch prints out
    pseudo-ID3 information for shoutcast streams (in remote mode
    with "@I ID3:") instead of free-form text like the previous
    version did. This allows higher-level apps like irmp3 to
    decode the metadata more easily. I also changed the socket
    timeout for connecting to a shoutcast server to 4 seconds,
    which seemed more responsive than the previous 10 seconds.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks