[icecast-dev] MP3 support in ices2

Brendan Cully brendan at xiph.org
Sun Jul 13 18:49:20 PDT 2003

On Monday, 14 July 2003 at 11:14, Michael Smith wrote:
> > Now that I think that's done, I personally like the idea of providing
> > MP3 support for ices 2. I have some ideas about how to do it fairly
> > cleanly, though I haven't read the ices2 code in any detail.
> >
> > But, whether this happens depends not just on the code getting
> > written, but on whether other Xiph developers are willing to lend any
> > more aid and shelter to the proprietary MP3 format and its litigious
> > owners. My personal perspective may tend more toward the practical and
> > the short term than theirs, but I can certainly understand if they
> > don't want to include MP3 support in any new code. If I didn't have
> > other people depending on an ices with MP3 support, I might feel the
> > same way myself.
> Our attitude towards mp3 support in the 'icecast suite' has generally been 
> "we're not that interested in doing the work ourselves, but have no 
> objections to integrating work done by others". 
> So basically, as long as it's entirely optional (i.e. you could compile ices2 
> without any mp3 (encoding or decoding) support), I'd have absolutely no 
> problems with having mp3 support in there - but it's not work I'm interested 
> in doing myself.

So here's my idea about how to support MP3 fairly simply in ices:

1. tag the input module with an audio type (or "auto" to guess). This
   lets us read MP3 sources as well as Ogg or PCM, without necessarily
   having to parse it at all.
2. tag the output module with an audio type (Vorbis or MP3). ices
   would just use this to set the right parameters in libshout.
3. Add an additional optional parameter to the reencode section,
   "command". If this were set, it would be a shell command that read
   the input on stdin and wrote the appropriate encoded output on

The nice thing about this setup is there's no LAME code at all, and
you don't need to decide at compile time whether you want MP3 encoding

There are two things missing that I can think of:
1. MP3 metadata.
2. timing (ices2 isn't using the libshout timing methods).

I will need to do a little more research there, though I suspect if
libshout were extended a bit it might solve both of those
problems. For instance, if libshout had a nonblocking API like Karl's
work in progress, I bet ices2 could use libshout's own timing

--- >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-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Icecast-dev mailing list