\input texinfo   @c -*- mode: texinfo; coding: us-ascii; -*-
@c This file is part of GMediaServer.
@c
@c Copyright (C) 2005, 2006  Oskar Liljeblad
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of either:
@c
@c a) the GNU General Public License as published by the Free Software
@c    Foundation; either version 3 of the License, or (at your option)
@c    any later version, or
@c
@c b) the GNU Free Documentation License, version 1.2 or any later
@c    version published by the Free Software Foundation; with no
@c    Invariant Sections, no Front-Cover Texts, and no Back-Cover
@c    Texts.
@c
@c A copy of the GNU General Public License is included in the
@c section entitled "GNU General Public License"; a copy of the
@c GNU Free Documentation License is included in the section
@c entitled "GNU Free Documentation License".
@c

@setfilename gmediaserver.info
@include version.texi
@settitle GMediaServer
@finalout
@paragraphindent 2

@c Unify some of the indices.
@syncodeindex tp fn
@syncodeindex pg fn

@set HOMEPAGE http://www.gnu.org/software/gmediaserver/
@set DOWNLOAD http://download.savannah.gnu.org/releases/gmediaserver/

@copying
This manual was last updated @value{UPDATED} for version
@value{VERSION} of GMediaServer.

Copyright @copyright{} 2005, 2006 Oskar Liljeblad

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of either:

a) the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option)
any later version, or

b) the GNU Free Documentation License, version 1.2 or any later
version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.

A copy of the GNU General Public License is included in the
section entitled "GNU General Public License"; a copy of the
GNU Free Documentation License is included in the section
entitled "GNU Free Documentation License".
@end quotation
@end copying

@titlepage
@title GMediaServer
@subtitle UPnP(tm) media server for the GNU system
@subtitle for version @value{VERSION}, @value{UPDATED}
@author Oskar Liljeblad
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@ifnottex
@node Top
@top GMediaServer

@insertcopying
@end ifnottex

@menu
* Introduction::		What is GMediaServer
* Copyright and License::	The legal details
* Preparations::		Obtaining and building GMediaServer
* Usage::			How to use GMediaServer
* Supported Devices::		Compability with hardware and software devices
* Known Bugs::			Known bugs and limitations
* Support and Feedback::	How to report problems and get in touch
* References and Links::	Useful documentation and links

Appendices
* Licenses::			Licenses mentioned in this manual.
@end menu

@node Introduction
@chapter Introduction

GMediaServer is a UPnP compatible media server for the GNU system.
It is part of the GNU project.

GMediaServer serves audio and video files to certain network connected
media players. Most hardware media players only play music and/or
video---they don't provide the media themselves. Those media files
have to come from a device on the network. GMediaServer is a server for
such UPnP compatible media players - hardware based as well as software
based. See @ref{Supported Devices} for a more complete list.

The technical details:

As the name indicates, GMediaServer implements a @i{MediaServer} device
as specified in the corresponding UPnP standard (see @ref{References and Links}).
The media players issue browse and search requests to GMediaServer through this
protocol. The actual audio and video data (e.g. MP3 and OGG files) is however
transferred using a different protocol. Currently that is HTTP---GMediaServer
uses the built in HTTP server of libupnp for this purpose.

GMediaServer is written in C by Oskar Liljeblad. It should compile and run
on any modern POSIX compatible system such as GNU/Linux. GMediaServer is a
console based application which is usually run in the background. It is free
software, licensed under the terms of the @uref{http://www.gnu.org/copyleft/gpl.html,GNU General Public License}.

@c =======================================================================

@node Copyright and License

@chapter Copyright and License

GMediaServer is copyright @copyright{} 2005, 2006 Oskar Liljeblad.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License (@ref{GNU General Public License}) as published by
the @uref{http://www.fsf.org/,Free Software Foundation}; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

See each file of the source code package for license and copyright
information.

Permission is granted to copy, distribute and/or modify GMediaServer
documentation under the terms of either:

a) the GNU General Public License (@ref{GNU General Public License}) as published by the Free Software
Foundation; either version 3 of the License, or (at your option)
any later version, or

b) the GNU Free Documentation License (@ref{GNU Free Documentation License}), version 1.2 or any later
version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.

The compiled GMediaServer executable normally links with libupnp
which is licensed under the terms of a modified BSD license -
the original BSD license without the advertising clause. This
license is compatible with the GNU GPL. GMediaServer also normally
links with libmagic which is licensed under the terms of a modified
BSD license without the advertising clause which to the best of my
understanding is compatible with the GNU GPL. GMediaServer optionally
links with id3lib, which is licensed under the terms of the GNU
General Public License. GMediaServer optionally links with TagLib,
which is licensed under the terms of the GNU Lesser General Public
License version 2.1.

The source code package of this project may contain files from other
projects, and files generated by other projects, including:

@itemize @bullet
@item
@uref{http://www.gnu.org/software/autoconf/,GNU Autoconf}
@item
@uref{http://sources.redhat.com/automake/,GNU Automake}
@item
@uref{http://www.gnu.org/software/gettext/,GNU gettext}
@item
@uref{http://www.gnu.org/software/gnulib/,Gnulib}
@item
@uref{http://www.gnu.org/software/flex/,Flex}
@item
@uref{http://www.gnu.org/software/bison/,GNU Bison}
@item
@uref{http://www.gnu.org/software/texinfo/,Texinfo}
@item
@uref{http://e2fsprogs.sourceforge.net/,E2fsprogs}
@end itemize

Such files are licensed under the terms of the GNU General Public
License or a license compatible with this license (as listed on
@uref{http://www.gnu.org/licenses/license-list.html}).

The Swedish translations in the @file{po} directory may contain
translations from other projects, including:

@itemize @bullet
@item
@uref{http://www.gnu.org/software/libc/libc.html,GNU C Library}
@item
@uref{http://www.gnu.org/software/coreutils/,GNU Core Utilities}
@end itemize

@c =======================================================================

@node Preparations

@chapter Preparations
This chapter describes how to obtain, build and install GMediaServer.
Perhaps you have already built and installed GMediaServer, if so you
can skip this chapter.

@menu
* Obtaining GMediaServer::	How and where to get GMediaServer
* Requirements::		Required (and optional) software
* Building and Installation::	GMediaServer uses autoconf and automake
@end menu

@c =======================================================================

@node Obtaining GMediaServer

@section Obtaining GMediaServer

The latest version of GMediaServer is @value{VERSION}, which was released on @value{UPDATED}.
The source code can be found on @uref{@value{DOWNLOAD}gmediaserver-@value{VERSION}.tar.gz}.

GMediaServer has been packaged by Jochen Friedrich for Debian and is currently available in
testing (@i{Etch}). The package is called @t{gmediaserver}.

This file, as well as older versions, are available in the @uref{@value{DOWNLOAD},GMediaServer file area}.

A FreeBSD "port" is also available of GMediaServer. You can find the necessary files to
build a package on @uref{http://www.uvm.edu/~jflemer/omnifi/gmediaserver-port.tar.gz}.

The source code of GMediaServer is available in CVS on Savannah.
See @uref{http://savannah.gnu.org/cvs/?group=gmediaserver} for instructions on
how to browse and retrieve the code.

@c =======================================================================

@node Requirements

@section Requirements

GMediaServer is written to work on modern POSIX compatible systems, mainly
the GNU system. It has been tested on GNU/Linux and FreeBSD.

The following programs are required to build GMediaServer:

@itemize @bullet
@item
GNU C Compiler (gcc), 2.95 or later.

GMediaServer uses some features specific to gcc 2.95,
such as macros with variable number of arguments.
The GNU C Compiler is part of the GNU Compiler Collection
which can be downloaded from @uref{http://gcc.gnu.org/}.
In Debian and many other distributions the package is called @t{gcc}.

@end itemize

The following libraries are required to build and run GMediaServer:

@itemize @bullet
@item
Linux SDK for UPnP Devices (libupnp), 1.2.1 or later, or

Portable SDK for UPnP Devices (libupnp 1.6.0), 1.6.0 or later

The libupnp library is used for communication using the UPnP protocol. libupnp can
be downloaded from @uref{http://upnp.sourceforge.net/}. libupnp 1.6.0 and later can
be downloaded from @uref{http://pupnp.sourceforge.net/}.

Debian packages for libupnp are available in stable since the @i{Sarge}
release. The runtime package is called @t{libupnp0} (or @t{libupnp2}),
and the package required when building is @t{libupnp-dev}.

@item
libmagic from file ("The Fine Free File Command"), 4.02 or later

The libmagic library is used to identify the contents of files.

Debian packages for libmagic are available in stable since the @i{Sarge}
release. The runtime package is called @t{libmagic1}, and the package
required when building @t{libmagic-dev}. In other distributions libmagic
may be included in the @t{file} package.

@end itemize

The following libraries are optional:

@itemize @bullet
@item
ID3v1/ID3v2 Tagging Library (id3lib), 3.8 or later

This library allows GMediaServer to retrieve ID3 information from MP3
files. id3lib can be downloaded from @uref{http://id3lib.sourceforge.net/}.

The Debian package for id3lib is currently available in stable (@i{Sarge})
and is called @t{libid3-3.8.3}. In testing and unstable, the packages is
@t{libid3-3.8.3c2a}. @t{libid3-3.8.3-dev} will be used when building GMediaServer.

@item
TagLib Audio Meta-Data Library (taglib), 1.4 or later, C bindings

This library is similar to id3lib in that it retrieves information from
audio files. TagLib can be downloaded from @uref{http://developer.kde.org/~wheeler/taglib.html}.
Note that the C binding are used.

The Debian package for TagLib is available in stable (Sarge) and is
called @t{libtagc0}. @t{libtagc0-dev} will be used when building GMediaServer.

@item
libuuid from Ext2 Filesystem Utilities (E2fsprogs), 1.36 or later

E2fsprogs includes libuuid, which GMediaServer uses to generate universally unique
ids (UUIDs). A UUID is generated every time GMediaServer is started and will be used
by other devices to refer to the media server. libuuid is not required - if not
detected by the configure script, it will be built from code included in the
GMediaServer source code package (subdirectory @file{uuid}). E2fsprogs can be
downloaded from @uref{http://e2fsprogs.sourceforge.net/}. 

The Debian package for libuuid is available in stable (Sarge) and is called @t{libuuid1}.
@t{uuid-dev} will be used when building GMediaServer.

@end itemize

A number of programs are required to build GMediaServer using
code from CVS only. Please see the @file{DEPENDENCIES} file from Gnulib
for a complete list of dependencies.

@node Building and Installation

@section Building and Installation

Compile GMediaServer by running @command{configure} and then @command{make}. This should
produce an executable @command{gmediaserver} in the @file{src} subdirectory, which can be
used right away. No extra files need to be installed.

If you want to install GMediaServer on your system, run @command{make install}.
This will copy the executable into the appropriate directory
(@file{/usr/local/bin} by default).

For more information regarding @command{configure} and @command{make}, see the
@uref{http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_node/autoconf_139.html,INSTALL} document.

If you got the source code from CVS, you will need to run
@command{gnulib-tool --import} followed by @command{autoreconf} before
the above commands.

@c =======================================================================

@node Usage

@chapter Invoking GMediaServer

GMediaServer is run from the command line. It supports the usual @option{--help}
option which displays usage and option information. GMediaServer expects
one or more directory arguments, specifying where audio files are stored. You should
probably also use the @option{-i} (@option{--interface}) option to specify which interface
GMediaServer should listen on. The first times you run GMediaServer it
would also be a good idea to increase the verbosity. Example:

@example
./gmediaserver -ieth1 -v4 /audio
@end example

Check out the @option{--profile} option, which allows settings for
certain devices to be automaticly enabled.

@menu
* Command line options::	Options which GMediaServer accepts
* Profiles::			Valid values for @option{--profile}
* File types::			Valid values for @option{--file-types}
* Signals::			Signals which GMediaServer reacts on
* Character sets::		Notes on character sets and encodings
@end menu

@c =======================================================================

@node Command line options

@section Command line options

GMediaServer follow the usual GNU command line syntax, with long
options starting with two dashes (@option{--}).

@table @code
@item --friendly-name=NAME
Set the name which other media players sees us as.

@item --disable-tags
Do not scan files for tags.

@item --fs-charset=CHARSET
Specify character set used in file names. If the environment variable
@env{G_BROKEN_FILENAMES}
@footnote{See @uref{http://developer.gnome.org/doc/API/2.0/glib/glib-running.html}.}
is set, this is if possible identified automaticly from the current
locale (usually the environment variable @env{LC_CTYPE} affects
this). Otherwise UTF-8 is assumed. Use this option to specify character
set manually.

Run @command{iconv --list} for a list of accepted character encoding
names.

@item --device-charset=CHARSET
Specify character set used in the data passed to the control point
(the player device). If this option is not specified, it is assumed
that the player device uses UTF-8.

@item --log-charset=CHARSET
Specify character set used in messages printed to standard out and
to the log file (if applicable). If this option is not specified,
it is if possible identified automaticly from the current locale.

@item -v, --verbose[=LEVEL]
Set verbosity level, that is, how much information is displayed
on standard out. Valid values are 0 (minimum output) to 4 (maximum output).

@item --pid-file=FILE
Write pid to FILE when GMediaServer is up and running.

@item -i, --interface=NAME
Make GMediaServer listen on a specific interface. NAME can be either an
IP address (IPv4) or the name of a network device.

@item -p, --port=PORT
Make GMediaServer listen on a specific port number.

@item -o, --output=LOGFILE
Write output to specified file rather than standard out.

@item -b, --background
Go to background (detach).

@item --no-timestamp
Do not prepend timestamp to log entries.
See @t{strftime}(3) for description of the timestamp format.

@item --timestamp[=FORMAT]
Prepend timestamp with optional time format to output.

@item --profile=NAME
Specify which profile to use.
Profiles control what settings are enabled for a certain control point
(the player device). See below for a list of valid values
for @option{--profile}. The default is @dfn{generic}.

@item --expire-time=SECONDS
Set UPnP advertisement expire time. This may be necessary for some devices.
The default is 100 seconds.

@item --file-types=TYPE
Specify which types of files are accepted by the control point.
The argument is a comma separated list of accepted types. File
types are identified by contents and not file name (i.e. the extension).
See \fBFILE TYPES\fP below for a list of valid types for @option{--file-types}.
The default is @samp{mp3,wma}.

@item --help
Display this help and exit.

@item --version
Output version information and exit.

@end table

@c ======================================================================================

@node Character sets

@section Character sets and encodings in tags

This section attempts to describe some intricacies regarding character
sets and encodings in tags.

Text in ID3v2 tags can be encoded in a variety of ways.
ID3v2.3 and earlier standards support only text encoded in ISO 8859-1 and UCS-2.
ID3v2.4 added support for UTF-8 and UTF-16BE@footnote{The difference between UTF-16,
UTF-16BE and UTF-16LE is that strings encoded with UTF-16 must start with a byte
order mark, a so called BOM. For UTF-16 the BOM is either 0xFF 0xFE (denoting
little endian) or 0xFE 0xFF (denoting big endian).}, and replaced UCS-2 with UTF-16.

If you are using id3lib, only ISO 8859-1 and UCS-2/UTF-16 encodings of ID3v2.4 tags
are supported. The current C API of id3lib must be extended in order to
support UTF-8 and UTF-16BE for ID3v2.4. (Especially, a function
ID3Field_GetEncoding is missing.)

TagLib seems to support all encodings used in ID3v2.4 tags.

Unfortunately, many applications still put UTF-8 encoded text in ID3v2.3 and earlier
tags. This is incorrect according to the standard@footnote{@uref{http://www.id3.org/id3v2.3.0.html,ID3v2.3.0 Informal standard}.} -
single-byte text should be encoded in ISO 8859-1 and nothing else. TagLib handles
all single-byte text in ID3v1 and ID3v2.3 tags as ISO 8859-1, while id3lib gives
you the option to treat the data as you like. At the moment, GMediaServer assumes
single-byte text is encoded in ISO 8859-1 when using id3lib.

@c ======================================================================================

@node Profiles
@section Profiles
The following values are valid for @option{--profile}:

@table @code
@item mp101
Netgear MP101. Implies @option{--file-types=mp3,wma,m3u,pls}.

@item dms1
Omnify DMS1. Implies @option{--expire-time=600} and @option{--file-types=mp3,wma,m3u,pls}.

@item ps3
PlayStation 3. Implies @option{--file-types=mp3,wma,wav,m4a,mpg,mp4,pls,m3u,bmp,gif,jpg,png,tiff}.

@item generic
All other devices. Implies no custom settings.
@end table

@c ======================================================================================

@node File types
@section File types
The following types can be specified for @option{--file-types}:

@table @code
@item mp3
The regular MP3 files, or to be more specific
@samp{MPEG ADTS, layer III, v1}. At the moment this does
also include MP3 files beginning with an ID3 tag.

@item wma
@samp{Windows Media Audio} data encapsulated in Microsoft ASF files.

@item wav
Wave sound data encapsulated in RIFF files.

@item m4a
@samp{iTunes AAC-LC} data encapsulated in an ISO Media MPEG v4 system file.

@item ogg
@samp{Vorbis} audio encapsulated in an Ogg file.

@item pls
A playlist format used by Winamp and other programs.

@item m3u
Simple and extended M3U playlists used by Winamp and other programs.
Extended M3U playlists start with @samp{#EXTM3U}.

@item unknown
Unidentified files (all other). Normally these files are not served,
but when unknown is included in the file types list they will be.
@end table

@c ======================================================================================

@node Signals
@section Signals
The main GMediaServer process reacts on the following signals:

@table @code
@item USR1
Update list of shared media files---rescan the directories that were
specified on the command line.

@item TERM
@itemx INT
Terminate GMediaServer gracefully.
@end table

@c ======================================================================================

@node Supported Devices

@chapter Hardware Players
The following hardware media players have been tested and are confirmed to work
with GMediaServer:

@itemize @bullet
@item
NETGEAR Wireless Digital Music Player (MP101)

Profile: @t{mp101}

URL: @uref{http://www.netgear.com/products/details/MP101.php}

Notes: You probably need to upgrade the firmware to 1.3.7 or later to use GMediaServer with the MP101.

@item
Sony PlayStation 3.

Profile: @t{ps3}

@item
Linksys Wireless-B Music System (WMLS11B)

Profile: @t{generic}

URL: @uref{http://www.linksys.com/products/product.asp?grid=33&amp;scid=38&amp;prid=631}

@item
Linksys Wireless-B Media Link for Music (WML11B)

Profile: @t{generic}

URL: @uref{http://www.linksys.com/products/product.asp?grid=33&amp;prid=632}

Notes: It may be necessary to manually select a new song to play when the current song
has finished playing. This problem has not been solved yet.

@item
Philips Streamium SL300i

Profile: @t{generic}

URL: @uref{http://www.streamium.com/products/sl300i/}

Notes: Confirmed to work with GMediaServer with firmware 1.5.2.

@item
Philips Streamium RC9800i

Profile: @t{generic}

URL: @uref{http://www.homecontrol.philips.com/}

@item
Philips Streamium SLA5520

Profile: @t{generic}

URL: @uref{http://www.consumer.philips.com/consumer/catalog/catalog.jsp?fhquery=fh_secondid%3Dsla5520_05_gb_consumer%26fh_location%3D%2F%2Fconsumer%2Fen_GB%2Fcategories%3Ccatalog_gb_consumer%2Fcategories%3Chome_audio_video_gr_gb_consumer%2Fcategories%3Cwireless_av_networking_ca_gb_consumer%26&productId=SLA5520_05_GB_CONSUMER&activeCategory=WIRELESS_AV_NETWORKING_CA_GB_CONSUMER&fredhopperpage=detail.jsp&concept=SB30000002&language=en&country=GB&catalogType=CONSUMER}

@item
Philips Streamium SLA5550

Profile: @t{generic}

@item
Omnifi DMS1

Profile: @t{dms1}

URL: @uref{http://omnifimedia.com/products/omnifi_details.jsp?productId=12542}

Notes: May require @option{--expire-time=1801} (or greater than 1801).

@item
SMC EZ Stream 11Mbps Wireless Audio Adaptor (SMCWAA-B)

Profile: @t{generic}

URL: @uref{http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=11&scid=&pid=1333}

Notes: This devices is similar to the Philips SLA5500 and the Terratec NOXON audio.

@item
D-Link DSM-520 Wireless HD Media Player

Profile: @t{generic}

URL: @uref{http://www.dlink.com/products/?pid=438}

@item
Roku SoundBridge Network Music Player M1000

Profile: @t{generic}

URL: @uref{http://www.rokulabs.com/products/soundbridge/index.php}

@item
Terratec NOXON audio

Profile: @t{generic}

URL: @uref{http://entertainen.terratec.net/modules.php?op=modload&name=News&file=article&sid=228}

Notes: This device may display garbled character in song details if
the song has ID3v2 tags with unicode/UTF-16 characters. This appears
not to be GMediaServer's fault - the device seems to read the tags
itself.

@item
Terratec NOXON 2 audio

Profile: @t{generic}

URL: @uref{http://entertainen.terratec.net/modules.php?op=modload&name=News&file=article&sid=241}

@item
Pinnacle ShowCenter 200

Profile: @t{generic}

URL: @uref{http://www.pinnaclesys.com/PublicSite/uk/Products/Consumer+Products/Digital+Media+Adapters/Digital+Media+Player/ShowCenter+200.htm}
@end itemize

The following devices may work, but have not been tested:

@itemize @bullet
@item
Philips Streamium 400i

URL: @uref{http://www.streamium.com/}

@item
SMC EZ Stream Universal Wireless Multimedia Receiver (SMCWMR-AG)

@item
SMC EZ Stream 802.11g Wireless Audio Adapter (SMCWAA-G)

@item
D-Link DSM-320

@item
Buffalo LinkTheater

@item
Sony STR-LV700R

@item
Sony GoVideo 2730

@item
LinkSys WMLS11B

@item
Sony RoomLink

@item Logik IR100

@item Denon AVR-4306

@item Nokia 770 Internet Tablet
@end itemize

@chapter Software Players
The following software UPnP media player work with GMediaServer:

@itemize @bullet
@item
@uref{http://djmount.sourceforge.net/,djmount}
@end itemize

The following UPnP media server clients may work with GMediaServer, but have not been tested:

@itemize @bullet
@item
@uref{http://www.cidero.com/,Cidero Media Controller}
@end itemize

@node Support and Feedback

@chapter Home Page
The home page of GMediaServer is located on @uref{@value{HOMEPAGE}}.
GMediaServer is hosted on @uref{http://savannah.gnu.org/,Savannah}; the
project web site is located on @uref{http://savannah.gnu.org/projects/gmediaserver/}.

@chapter Mailing List
The mailing list @i{gmediaserver-devel} is open for discussion on GMediaServer, ranging from
questions on how to use the program to development inquiries. Archive and subscription information
can be found on the list information page on @uref{http://lists.gnu.org/mailman/listinfo/gmediaserver-devel}.

Please try to subscribe before you post to this list. Non-subscriber postings need to be
approved by the moderator.

@chapter Author
The author of GMediaServer and this document, Oskar Liljeblad, can be
contacted by e-mail on @email{oskar@@osk.mine.nu}.

Please send bug reports, suggestions, ideas or comments in general to me
(or the mailing list).

If you would like to get involved with this project, please don't hesitate
to write! All contributions are welcomed.

@node Known Bugs

@chapter Known bugs and limitations

There may be some compilation warnings due to bugs in GNU flex and libupnp.
They can safely be ignored.

Unfortunately the NETGEAR MP101 is quite buggy, even with the latest
firmware (1.3.7 as of writing this). Numerous forum posts on the internet
can confirm this. For me, it seems to hang randomly when browsing or when
just about to play a song. I have yet to discover what is causing this.

If you need to listen on more than one interface, you will have
to start multiple instances of the media server.

GMediaServer keeps information on all audio files in memory. If your audio
collection is huge, this might be a problem.

As GMediaServer is in an early stage of development, many essential
features are unimplemented.

@node References and Links

@chapter References
Note that this list of references is not complete.

@itemize @bullet
@item
@uref{http://www.upnp.org/standardizeddcps/default.asp,UPnP Standards}

@item
@uref{http://forums.winamp.com/showthread.php?threadid=65772,The Unofficial M3U and PLS Specification}

@item
@uref{ftp://ftp.isi.edu/in-notes/rfc2616.txt,RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1}

@item
@uref{http://www.smackfu.com/stuff/programming/shoutcast.html,Shoutcast Metadata Protocol}

@item
@uref{http://www.gigamonkeys.com/book/practical-a-shoutcast-server.html,The Shoutcast Protocol}
@end itemize

@chapter Other Links

GMediaServer is mentioned on the following pages:

@itemize @bullet
@item
@uref{@value{HOMEPAGE},GMediaServer home page}
@item
@uref{http://savannah.gnu.org/projects/gmediaserver/,Savannah project summary for GMediaServer}
@item
@uref{http://freshmeat.net/projects/gmediaserver/,Freshmeat project record for GMediaServer}
@item
@uref{http://www.linuxlinks.com/Software/System/Servers/Multimedia/,LinuxLinks category @i{Multimedia Servers}}
@end itemize

There are UPnP media server implementations other than GMediaServer:

@itemize @bullet
@item
@uref{http://soggie.soti.org/gmediarender/,GMediaRender}
@item
@uref{http://mediatomb.sourceforge.net/,MediaTomb}
@item
@uref{http://www.cidero.com/,Cidero Internet Radio Server}
@item
@uref{http://ushare.geexbox.org/,uShare}
@end itemize

@node Licenses
@appendix Licenses

@menu
* GNU Free Documentation License::  License for copying this manual.
* GNU General Public License::  License for copying this manual.
@end menu

@node GNU Free Documentation License
@section GNU Free Documentation License
@include fdl.texi

@node GNU General Public License
@section GNU General Public License
@include gpl-3.0.texi

@bye
