<!--
   EXAMPLE: Ogg Vorbis playlist stream WITH reencoding and random playback

   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 Ogg Vorbis using the oggenc encoder. The output stream
   settings are controlled via the paramters to oggenc.
 -->
<ezstream>
    <url>http://localhost:8000/vorbis.ogg</url>
    <sourcepassword>hackme</sourcepassword>
    <!--
       Since the reencoding feature is enabled below, <format /> sets the
       output format of the stream.
     -->
    <format>VORBIS</format>
    <filename>playlist.m3u</filename>
    <!-- Enable playlist shuffling: -->
    <shuffle>1</shuffle>
    <!--
       The file in <filename> is a regular playlist and not a program.
       For demonstrational purposes, explicitly state this here:
     -->
    <playlist_program>0</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/quality/samplerate/channels
      information matches up with your oggenc encoder settings below.
     -->
    <svrinfoname>My Stream</svrinfoname>
    <svrinfourl>http://www.oddsock.org</svrinfourl>
    <svrinfogenre>RockNRoll</svrinfogenre>
    <svrinfodescription>This is a stream description</svrinfodescription>
    <svrinfobitrate>88</svrinfobitrate>
    <svrinfoquality>1.5</svrinfoquality>
    <svrinfochannels>2</svrinfochannels>
    <svrinfosamplerate>44100</svrinfosamplerate>
    <!-- Allow the server to advertise the stream on a public YP directory: -->
    <svrinfopublic>1</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>
