[icecast-dev] Work on ICECAST : IcecastAdmin, remodularisation, Doc (Docbook), speex ...

Arnaud Ebalard ebalard at enseirb.fr
Sat Jun 7 05:06:57 PDT 2003


3 months ago, we (a group of 8 students of the ENSEIRB engineering 
school (France))
started to work on icecast.

We decided to work on another CVS server. The aim _was not to fork a new 
of Icecast : the idea was to clean the code as fast as possible in order 
for new
developers to enter the  sources in an easier way.

We mainly worked on format, sources, and tried to clearly separate the 
differents activities.

For Format module, the main idea was to open Icecast to new Ogg formats 
: there's now
a direct recognition of the encapsulated format (vorbis, speex, ...) 
when the stream has Ogg
mime type.
We develop an Ogg speex module (but no speex streamer => no tests for 
Ogg) and the
development for fLaC or Theora or other ogg encapsulated format should 
be easy.

About MP3 (not a free format, as you know), the rewriting  of the  
plugin  was  quite awful
because this format wasn't designed to be streamed.
We tried to test it but we were unable to use an icecast2 compatible MP3 
streamer (liveice,
shoutcast, darkice, ...)

We also modified the buffer structure in order to make the icecast work 
more logical :
just inserting the client in the stream and then serving him in a non 
specific way (avoiding
the reconstruction of data for each client).

We did intensive tests on Ogg vorbis after this work : ogg vorbis 
icecast2 streams can be
played with mplayer, ogg123, xmms.

Another part of our work was the documentation :
- The parts we touched were commented using *Doxygen* (see /doc/Doxyfile 
in the cvs tree)
- We rewrote a user documentation in Docbook format based on Pierre 
Amadio' s work.
- We wrote a developer documentation, also in *DocBook *format.
All these documentations were made in english (french english ;-)) and 
are in the cvs tree.

The last part of our work was the *administration.* 3 people worked on 
it trying to leave
the basis of an administration system.
It is now separated from the main icecast process but the idea was to 
develop it and test
it this way to later incorporate it in a thread in icecast. This service 
should allow user
to modify the icecast config file depending on his permission. Then, 
when merging in
the main icecast process, the config file could be reread to take these 
changes into account.
This administration module (*IcecastAdmin*) is based on *OpenSSL* : the 
user can use
his favourite browser to make changes.
An IcecastAdmin doc is available in the main icecast doc we wrote.


*To see everything we did, checkout on savannah's cvs :
the project's name is "interopcast"

You can start on the savannah's homepage : http://savannah.nongnu.org
or on this page : 

Please, do a checkout on the cvs, watch our work
and let us know what you think about it !



<p>*ps : just to give our names and the tasks we did :
Administration work : Antoine Allombert, Mickaël Floc'hlay, Guillaume 
Remodularisation  work : Sébastien Henrio, Florian Pierron,  Denis 
Tessier,  Jérémy Vies  and me.
Doc : all of us.

<p><p><p><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-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