This file describes how to install and use the Litestream MP3 Streaming
System.

1.  Build Litestream.

	The included Makefile may work with your version of make.  If it
	does not, you may have to edit it a little.  Works fine with
	GNU make 3.78.1.

1.a.  Solaris

	For Solaris you must uncomment then "-lnsl -lresolv" in the LDFLAGS
	line in the Makefile.  You must also add
	"typedef unsigned short u_int16_t;" to the beginning of any file
	where you see the error "unknown type u_int16_t" or something of
	that sort.  I will get around to automated configuration.

1.b.  Mac OS X

	For Mac OS X you must uncomment gnu_strtok_r.o from the lists of
	.o files in the Makefile.  Mac OS X does not supply its own strtok_r.
	gnu_strtok_r.c was lifted from GNU libc 2.1.2 and slightly modified.

2.  Start Litestream Server.

	./litestream <source port> <stream host> <stream port> <max listeners> <log ident> [<yp host> <yp port>]

	<source port> is the listening port.  That is where you will
	point your streaming source.

	<stream host> is the fully qualified hostname or IP address of
	the computer which is running Litestream Server.  The reason you
	must specify this parameter is because it is difficult or
	impossible to determine this automatically.

	<stream port> is the port on which Litestream Server will wait
	for stream listeners.

	<max listeners> is the maximum number of listeners this instance
	of Litestream Server can support.  Typically I would calculate
	this by dividing the throughput of my Internet connection by the
	bitrate of the stream.  For example, for a T1 broadcasting a
	160 Kbps stream:

		1500000/160000 = 9

	<log ident> is the syslog identifier which will be prepended to
	each log message generated by Litestream Server.  Litestream
	MP3 Streaming System logs all messages on LOCAL0.

	YP PARAMETERS:

	If you don't specify both the <yp host> and <yp port> there will
	be no YP reporting.  That means that whether or not your streaming
	source specifies the stream is public, no YP reporting will take
	place.

	<yp host> is the hostname or IP address of the YP server.

	<yp port> is the port on which the YP server is listening.

	Example:

	./litestream 8000 www.litestream.net 8888 10 stream yp.shoutcast.com 80

3. Connect a streaming source.

	Litestream Server will not register with the YP server until a
	streaming source is connected to Litestream Server.

	Litestream 1.0 beta 1 is compatible with Nullsoft Winamp and
	Litestream Streaming Source, and possibly others.

	If you want to use Litestream Streaming Source, which is a
	non-reencoding streaming source which simply loops over the
	files in your playlist, here's how to execute it:

	./source <ip or hostname> <port> <name> <genre> <url> <irc> <icq> <aim> <public? (0, 1)> <reported bitrate (16, 18, 56, 128, etc.)> <playlist.txt>

	<ip or hostname> is the hostname or IP address of the computer
	running Litestream Server.

	<port> is the port on which Litestream Server is waiting for a
	streaming source.

	<name> is the name of your stream.

	<genre> is the genre of your stream.

	<url> is the URL for your stream's web page.

	<irc> is the IRC channel for your stream.

	<icq> is your ICQ ID.

	<aim> is your AIM ID.

	<public> is either 0 or 1.  0 for private, 1 for public.

	<reported bitrate> is the stream bitrate which will be reported
	to the YP server.  This does not necessarily reflect the actual
	bitrate of your stream.

	<playlist.txt> is the name of the file containing your playlist.

	<log ident> is the syslog identifier which will be prepended to
	each log message generated by Litestream Streaming Source.
 	Litestream MP3 Streaming System logs all messages on LOCAL0.

	Example:

	Here are a few lines from my playlist file:

	/usr/litestream/mp3/paul_oakenfold/Fluro___Disk_1/We_re_Not_Alone.mp3
	/usr/litestream/mp3/paul_oakenfold/Fluro___Disk_1/Merry_Christmas_Mr._Lawrence.mp3
	/usr/litestream/mp3/paul_oakenfold/Fluro___Disk_1/Mystery_Land.mp3

	Here is how I run my Litestream Streaming Source:

	./source localhost 8000 'Ibiza Euphoria!' Techno http://www.litestream.net #gotgrub 0 N/A 1 160 /usr/litestream/bin/playlist.m3u source

	Take note that some shells will not like the '#' in the IRC channel
	name.  You will have to escape it with a backslash (\#) or use
	whatever method your shell requires to make the '#' a regular
	character.  (Normally '#' is used to begin a shell comment.)

4. Optionally start one or more Literestream Servers.

	./literestream <mirror tag> <source host> <source port> <stream host> <stream port> <max listeners> <log ident> [<yp host> <yp port>]

	<mirror tag> is the name by which the mirror will be known.
	This should be a short and geographically descriptive.  It
	will be displayed on the YP server.

	<source host> is the hostname of the computer running
	Litestream Server.

	<source port> is the port on which Litestream Server is
	waiting for listeners.

	<stream host> is the fully qualified hostname or IP address
	of the computer running Literestream Server.

	<stream port> is the port on which Literestream Server will
	wait for stream listeners.

	The remaining arguments correspond to their Litestream Server
	counterparts (above).

	Example:

	./literestream 'XCF, UC Berkeley CA USA' www.litestream.net 8888 scam.xcf.berkeley.edu 8888 600 restream yp.shoutcast.com 80

5.  Add /etc/hosts entries.

	For all the IP addresses and hostnames you used above, create
	an entry in the /etc/hosts file.  This will prevent catastrophe
	in the case of DNS failure.

	For example, I add the line:

205.188.245.119		yp.shoutcast.com

	Without that line, Litestream Server would sit there trying to
	figure out the hostname for yp.shoutcast.com instead of what doing
	it's supposed to do.
