<?xml version="1.0"?>
<ices>

	<background>0</background>  <!-- run in background? (unimplemented) -->
    <realtime>0</realtime>      <!-- disable realtime, enabled by default -->
    <user>ices</user>           <!-- user to change to when started as root -->
	<logpath>/tmp</logpath>     <!-- where log goes. -->
	<logsize>2048</logsize>     <!-- the size the log has to get to before cycling -->
	<logfile>ices.log</logfile>
	<loglevel>4</loglevel>      <!-- 1=error,2=warn,3=info,4=debug -->
    <consolelog>0</consolelog>  <!-- logfile is ignored if this is set to 1 -->
    <pidfile>/var/ices/ices.pid</pidfile> <!-- file to write process id to -->

	<stream>
        <!-- global settings for all streams - optional-->
        <name>Example stream name</name>
        <genre>Example genre</genre>
        <description>A short description of your stream</description>

		<!-- input module -->
        <!-- This example uses the 'oss' module. It takes input from the -->
        <!-- oss audio device (i.e. line-in), and processes it for live -->
        <!-- encoding. If metadatafilename is set then at start and on USR1 -->
        <!-- the file is read and the comments are added into the stream -->
		<input>
			<module>oss</module>
			<param name="rate">44100</param>        <!-- samplerate -->
			<param name="channels">2</param>        <!-- number of channels -->
			<param name="device">/dev/dsp</param>   <!-- audio device -->
			<param name="metadatafilename">metadata</param>
		</input>
        <!-- more input section can be stated here, and can be switched manually -->
        <!-- by USR2 or whenever the previous input finishes. The order is       -->
        <!-- dictated in here and loops aronnd to the first one listed -->

        <!-- A runner is a thread that applies the input data to each outgoing -->
        <!-- stream instance defined within it.  Multiple runners can be stated -->
        <!-- for use on multiple processors. -->
        <runner>
            <!-- stream instance,  used to associate a set of encoding settings -->
            <!-- with output.  At the moment 2 outputs can be used, shout and  -->
            <!-- savestream. Any number or combination of these outputs can be used -->
            <instance>
                <!-- per instance setting, overriding the global settings - optional-->
                <name>test transmission</name>
                <genre>various</genre>
                <description>low bandwidth stream</description>
                     
                <!-- You define hostname and port for the server here, along with -->
                <!-- the source password and mountpoint.  If you miss them out  -->
                <!-- then any processing will still occur but it won't be sent to -->
                <!-- icecast, useful for encode to file only -->
                <shout>
                    <hostname>localhost</hostname>
                    <port>8000</port>
                    <password>hackme</password>
                    <mount>/example1.ogg</mount>
                </shout>

                <!-- resample input to the stated samplerate  - optional
                     the input can change samplerate so this can be used to fix it
                     at a certain rate -->
                <resample>
                    <out-rate>22050</out-rate>
                </resample>

                <!-- stereo->mono downmixing, enabled by setting this to 1 - optional -->
                <downmix>1</downmix>

                <!-- Live encoding/reencoding: -->
                <encode>  
                    <quality>0</quality>
                    <!-- usual options for encoding, except from samplerate and chanels -->
                    <!-- they are set from input/resample/downmix setting -->
                </encode>
            </instance>

            <!-- more instances can be defined -->
            <instance>
                <!-- This instance just writes to file, no connection to icecast -->
                <encode>
                    <quality>0</quality>
                </encode>

                <!-- writing of files, all but the filename have the defaults-->
                <!-- listed -->
                <savestream>
                    <!-- filename expansion, look at strftime for details -->
                    <filename>/home/ices/saved-file/%X/stream-%M.ogg</filename>
                    <!-- file creation mask,  eg 0644 -->
                    <fmask>0600</fmask>
                    <!-- directory creation mask -->
                    <dmask>0700</dmask>
                    <!-- seconds to record, 0 disables, defaults to 1 hour -->
                    <duration>7200</duration>
                    <!-- switch file on stream change --> 
                    <on-metadata>1</on-metadata>
                    <!-- Normally on switchover from a duration timeout, the
                         timecode is reset, needed for some players, but disabling
                         this prevents modification -->
                    <reset-time>0</reset-time> 
                </savestream>
                
            </instance>

        </runner>

        <runner>
            ....
        </runner>

	</stream>
</ices>

