<!--
   EXAMPLE: MP3 stream using an external playlist program, WITH reencoding

   This example streams a playlist that may contain MP3, Ogg Vorbis and FLAC
   files. Ezstream will use external decoders to read the media files, and
   reencode them to MP3 using the lame MP3 encoder. The output stream settings
   are controlled via the paramters to lame.
 -->
<ezstream>
    <url>http://localhost:8000/stream</url>
    <sourcepassword>hackme</sourcepassword>
    <!--
       Since the reencoding feature is enabled below, <format /> sets the
       output format of the stream.
     -->
    <format>MP3</format>
    <filename>playlist.pl</filename>
    <!--
       Indicate that <filename> contains an executable program or script,
       which prints a single line with a filename to standard output:
     -->
    <playlist_program>1</playlist_program>
    <!--
      The following settings are used to describe your stream to the server.
      It's up to you to make sure that the bitrate/samplerate/channels
      information matches up with your lame encoder settings below.
     -->
    <svrinfoname>My Stream</svrinfoname>
    <svrinfourl>http://www.oddsock.org</svrinfourl>
    <svrinfogenre>RockNRoll</svrinfogenre>
    <svrinfodescription>This is a stream description</svrinfodescription>
    <svrinfobitrate>128</svrinfobitrate>
    <svrinfochannels>2</svrinfochannels>
    <svrinfosamplerate>44100</svrinfosamplerate>
    <!--
      Prohibit the server to advertise the stream on a public YP directory:
     -->
    <svrinfopublic>0</svrinfopublic>
    <reencode>
        <!-- Enable the reencoding feature: -->
        <enable>1</enable>
        <!--
           Each <encdec /> element specifies a pair of programs to be used for
           decoding and encoding, respectively, and which file extension and
           output stream format they apply to.

           All the configuration of the output stream is usually done by using
           the appropriate command line parameters of the encoders in the
           <encode /> elements.

           New <encdec /> sections can be added for new input/output formats.

           Distorted audio, or audio playing at the wrong speed/pitch may be
           caused by conflicting sample rates in the various <decode /> and
           <encode /> sections, byte order (endianness) issues and mono input
           files. See the documentation on the various de-/encoders for
           the options that need to be used to create a consistent stream of
           raw samples.
         -->
        <encdec>
            <!-- Support for FLAC decoding: -->
            <format>FLAC</format>
            <match>.flac</match>
            <decode>flac -s -d --force-raw-format --sign=signed --endian=little -o - "@T@"</decode>
            <!-- <encode>Not supported Yet</encode> -->
        </encdec>
        <encdec>
            <!--
               Support for MP3 decoding via madplay, and encoding via LAME:
             -->
            <format>MP3</format>
            <match>.mp3</match>
            <!-- Note: madplay uses host byte order for raw samples. -->
            <decode>madplay -b 16 -R 44100 -S -o raw:- "@T@"</decode>
            <encode>lame --preset cbr 128 -r -s 44.1 --bitwidth 16 - -</encode>
        </encdec>
        <encdec>
            <!--
               Support for Vorbis decoding via oggdec, and encoding via oggenc:
             -->
            <format>VORBIS</format>
            <match>.ogg</match>
            <decode>oggdec -R -b 16 -e 0 -s 1 -o - "@T@"</decode>
            <encode>oggenc -r -B 16 -C 2 -R 44100 --raw-endianness 0 -q 1.5 -t "@M@" -</encode>
        </encdec>
    </reencode>
</ezstream>
