#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
\lyxformat 245
\begin_document
\begin_header
\textclass docbook
\language english
\inputencoding auto
\fontscheme default
\graphics default
\paperfontsize default
\spacing single
\papersize a4paper
\use_geometry true
\use_amsmath 0
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\leftmargin 1cm
\topmargin 1cm
\rightmargin 1cm
\bottommargin 1cm
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language swedish
\papercolumns 1
\papersides 1
\paperpagestyle plain
\tracking_changes false
\output_changes true
\end_header
\begin_body
\begin_layout Title
MediaTomb - UPnP MediaServer
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\begin_layout Standard
2005
\end_layout
\begin_layout Standard
Gena Batsyan
\end_layout
\begin_layout Standard
Sergey Bostandzhyan
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
2006-2007
\end_layout
\begin_layout Standard
Gena Batsyan
\end_layout
\begin_layout Standard
Sergey Bostandzhyan
\end_layout
\begin_layout Standard
Leonhard Wimmer
\end_layout
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
This documentation is valid for MediaTomb version 0.9.0.
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Section
Introduction
\end_layout
\begin_layout Standard
MediaTomb is an open source (GPL) UPnP MediaServer with a nice web user
interface, it allows you to stream your digital media through your home
network and listen to/watch it on a variety of UPnP compatible devices.
\end_layout
\begin_layout Standard
MediaTomb implements the UPnP MediaServer V 1.0 specification that can be
found on
\begin_inset LatexCommand \url[http://www.upnp.org/]{http://www.upnp.org/}
\end_inset
.
The current implementation focuses on parts that are required by the specificat
ion, however we look into extending the functionality to cover the optional
parts of the spec as well.
\end_layout
\begin_layout Standard
MediaTomb should work with any UPnP compliant MediaRenderer, please tell
us if you experience difficulties with particular models, also take a look
at the Supported Devices list for more information.
\end_layout
\begin_layout Paragraph*
WARNING!
\end_layout
\begin_layout Standard
The server has an integrated file system browser in the UI, that means that
anyone who has access to the UI can browse your file system (with user
permissions under which the server is running) and also download your data!
If you want maximum security - disable the UI completely! Account authenticatio
n offers simple protection that might hold back your kids, but it is not
secure enough for use in an untrusted environment!
\end_layout
\begin_layout Description
Note: since the server is meant to be used in a home LAN environment the
UI is enabled by default and accounts are deactivated, thus allowing anyone
on your network to connect to the user interface.
\end_layout
\begin_layout Subsection
Currently Supported Features
\end_layout
\begin_layout Itemize
browse and playback your media via UPnP
\end_layout
\begin_layout Itemize
metadata extraction from mp3, ogg, flac, jpeg, etc.
files.
\end_layout
\begin_layout Itemize
Exif thumbnail support
\end_layout
\begin_layout Itemize
user defined server layout based on extracted metadata (scriptable virtual
containers)
\end_layout
\begin_layout Itemize
automatic directory rescans
\end_layout
\begin_layout Itemize
sophisticated web UI with a tree view of the database and the file system,
allowing to add/remove/edit/browse your media
\end_layout
\begin_layout Itemize
support for external URLs (create links to internet content and serve them
via UPnP to your renderer)
\end_layout
\begin_layout Itemize
support for ContentDirectoryService container updates
\end_layout
\begin_layout Itemize
Active Items (experimental feature), allows execution of server side scripts
upon HTTP GET requests to certain items
\end_layout
\begin_layout Itemize
highly flexible configuration, allowing you to control the behavior of various
features of the server
\end_layout
\begin_layout Itemize
support for Linux, FreeBSD, Mac OS X
\end_layout
\begin_layout Itemize
runs on x86, Alpha, ARM, MIPS, Sparc, PowerPC
\end_layout
\begin_layout Subsection
Planned Features
\end_layout
\begin_layout Itemize
transcoding of audio and video
\end_layout
\begin_layout Itemize
playlist support
\end_layout
\begin_layout Itemize
various UPnP improvements
\end_layout
\begin_layout Section
\noindent
Requirements
\end_layout
\begin_layout Description
\noindent
\align left
Note: remember to install associated development packages, because development
headers are needed for compilation!
\end_layout
\begin_layout Description
\noindent
\align left
Note: libupnp is now a part of MediaTomb and does not have to be installed
separately.
We base our heavily patched version on libupnp 1.4.1 from http://pupnp.sf.net/
\end_layout
\begin_layout Description
\noindent
\align left
Note: you need at least one database in order to compile and run MediaTomb
- either sqlite or mysql.
\end_layout
\begin_layout Standard
\noindent
In order to compile MediaTomb you will have to install the following packages.:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
sqlite (version > 3.x)
\begin_inset LatexCommand \url[http://www.sqlite.org/]{http://www.sqlite.org/}
\end_inset
\emph on
REQUIRED (if mysql is not available)
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
mysql client library (version > 4.0.x)
\begin_inset LatexCommand \url[http://mysql.org/]{http://mysql.org/}
\end_inset
\emph on
REQUIRED (if sqlite is not available)
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
zlib
\begin_inset LatexCommand \url[http://www.zlib.net/]{http://www.zlib.net/}
\end_inset
\emph on
OPTIONAL, HIGHLY RECOMMENDED
\end_layout
\begin_layout Standard
Zlib is a compression library that is available on most systems, we need
it for the database autocreation functionality.
Make sure to install the zlib development package providing zlib.h, if it
is not available you will need to create the MediaTomb sqlite3/MySQL database
manually.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
libmagic
\emph on
OPTIONAL, RECOMMENDED
\end_layout
\begin_layout Standard
This is the 'file' package, it is used to determine the mime type of the
media.
If you don't have this you will have to enter file extension to mime type
mappings manually in your config file.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
js - SpiderMonkey JavaScript Engine
\begin_inset LatexCommand \url[http://www.mozilla.org/js/spidermonkey/]{http://www.mozilla.org/js/spidermonkey/}
\end_inset
\shape italic
\shape default
\emph on
OPTIONAL, RECOMMENDED
\end_layout
\begin_layout Standard
This package is necessary to allow the user defined creation of virtual
containers.
The import.js script defines the layout of your media, the default import
script will create a structure sorted by Audio/Photo/Video, it will make
use of the gathered metadata (like ID3 tags) to sort your music by Artist/Album
/Genre/Year , etc.
The import script can be adjusted and modified - it allows you to create
the layout that you want.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
taglib
\begin_inset LatexCommand \url[http://developer.kde.org/~wheeler/taglib.html]{http://developer.kde.org/~wheeler/taglib.html}
\end_inset
\emph on
OPTIONAL, RECOMMENDED
\end_layout
\begin_layout Standard
This library retrieves metadata from mp3, ogg and flac files.
You will need it if you want to have virtual objects for those files (i.e.
nice content layout).
\end_layout
\begin_layout Description
\series bold
Note:
\series default
It makes no sense to use taglib and id3lib at the same time, the configure
script will first look for taglib, if taglib detection fails it will search
for id3lib.
You can also force the script to take the library of your choice, overriding
the default setting.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
id3lib
\begin_inset LatexCommand \url[http://id3lib.sourceforge.net/]{http://id3lib.sourceforge.net/}
\end_inset
(at least version 3.8.3)
\shape italic
\shape default
\emph on
OPTIONAL, RECOMMENDED (if taglib is not available)
\end_layout
\begin_layout Standard
This library retrieves id3 tags from mp3 files.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
libexif
\begin_inset LatexCommand \url[http://libexif.sourceforge.net/]{http://libexif.sourceforge.net/}
\end_inset
\emph on
OPTIONAL, RECOMMENDED
\end_layout
\begin_layout Standard
You will need this library if you want to extract metadata from images,
this will allow you to have virtual containers for your Photos, sorted
by various attributes like Date, etc.
It also enables thumbnail support: if EXIF thumbnails are present in your
images they will also be offered via UPnP.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
libextractor
\begin_inset LatexCommand \url[http://gnunet.org/libextractor/]{http://gnunet.org/libextractor/}
\end_inset
\emph on
OPTIONAL
\end_layout
\begin_layout Standard
This library tries to gather metadata from all kinds of files (also .avi
and .asf).
The drawback is, that it can be very slow at scanning video files.
We also noticed that it uses a lot of memory when reading files, the result
is, that media import becomes extremely slow.
It is up to you if you want to use it or not, you may try the 'extract'
utility that is provided with the library to check if there is any metadata
that can be extracted from your media prior to enabling this feature in
MediaTomb.
By default libextractor is disabled, use ./configure --enable-libextractor
to activate it.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
In order to use the web UI you will need to have javascript enabled in your
web browser.
\end_layout
\begin_layout Standard
The UI has been tested and works with the recent versions of :
\end_layout
\begin_layout Itemize
Firefox/Mozilla
\end_layout
\begin_layout Itemize
Opera
\end_layout
\begin_layout Standard
Tested and does not work with the recent versions of:
\end_layout
\begin_layout Itemize
Konqueror
\end_layout
\begin_layout Itemize
Safari
\end_layout
\begin_layout Standard
Limited functionality with:
\end_layout
\begin_layout Itemize
Internet Explorer 6 and 7
\end_layout
\begin_layout Section
Compiling From Source
\end_layout
\begin_layout Subsection
Standard Method
\end_layout
\begin_layout Standard
If you don't care about the details - make sure you have installed the required
packages and the appropriate development headers and simply run
\end_layout
\begin_layout Code
$ ./configure
\end_layout
\begin_layout Code
$ make
\end_layout
\begin_layout Code
$ make install
\end_layout
\begin_layout Standard
This should compile and install MediaTomb, the resulting binary is ready
to run.
\end_layout
\begin_layout Subsection
Configure Options
\end_layout
\begin_layout Standard
The MediaTomb configure script provides a large variety of options, allowing
you to specify the additional libraries that will be used, features that
will be compiled or disabled, workarounds for known bugs in some distributions
and so on.
Some options are straightforward, some require deeper knowledge - make
sure you know what you are doing :)
\end_layout
\begin_layout Subsubsection
Install Location Of Architecture Independent Files
\end_layout
\begin_layout Code
--prefix=PREFIX
\end_layout
\begin_layout Description
Default: /usr/local/
\end_layout
\begin_layout Standard
Install all architecture independent files - all .js files and .png images
for the Web UI, the import.js script, the service description XML files
- in the directory of your choice.
This is especially useful if you do not want to perform a system-wide installat
ion, but want to install MediaTomb only for your user.
\end_layout
\begin_layout Description
Important: the prefix path will be compiled into the binary; the binary
will still be relocatable, but you move those files you will have to point
MediaTomb to the proper location by specifying it in the server configuration
file.
\end_layout
\begin_layout Subsubsection
Static Build
\end_layout
\begin_layout Code
--enable-static
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
Build a static binary.
This may be useful if you plan to install a precompiled MediaTomb binary
on a system that does not have all the required libraries and where installatio
n of those libraries is not possible due to reasons beyond your control.
\end_layout
\begin_layout Description
Note: if you enable this option, make sure that you have all static versions
of the appropriate libraries installed on your system.
The configure script may not detect that those are missing - in this case
you will get linker errors.
Some distributions, for example Fedora Core, do not ship static library
versions.
\end_layout
\begin_layout Subsubsection
Automatically Create Database
\end_layout
\begin_layout Code
--enable-db-autocreate
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
Automatically create the database if it is missing (for example upon a first
time launch).
Disabling this will make the resulting binary a little smaller, however
you will have to take care of the database creation yourself by invoking
the appropriate .sql scripts that are provided with the package.
\end_layout
\begin_layout Description
Note: the server configuration file has to be setup correctly.
Either sqlite or MySQL has to be chosen in the storage section, for sqlite
the database file has to point to a writable location, for MySQL the user
has to be setup with a valid password and permissions and the database
\begin_inset Quotes sld
\end_inset
mediatomb
\begin_inset Quotes srd
\end_inset
has to exist.
\end_layout
\begin_layout Subsubsection
Debug Malloc/Realloc Of Zero bytes
\end_layout
\begin_layout Code
--enable-debug-malloc0
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
This feature is only for debugging purposes, whenever a malloc or realloc
with a value of zero bytes is encountered, the server will terminate with
abort()
\end_layout
\begin_layout Subsubsection
Use Atomic Assembler Code For x86 Single CPU systems
\end_layout
\begin_layout Code
--enable-atomic-x86-single
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
Use assembler code suited for single CPU x86 machines.
This may improve performance, but your binary will not function properly
on SMP systems.
If you specify this for a non x86 architecture the binary will not run
at all.
If you wonder about the purpose of assembler code in a mediaserver application:
we need it for atomic operations that are required for reference counting.
The pthread library will be used as a fallback for other architectures,
but can also be forced by a designated configure option.
This however, will have the worst performance.
\end_layout
\begin_layout Standard
By default x86 SMP code will be used on x86 systems - it will reliably work
on both SMP and single CPU systems, but will not be as fast as the atomic-x86-s
ingle option on uniprocessor machines.
\end_layout
\begin_layout Subsubsection
Use Pthread Code For Atomic Operations
\end_layout
\begin_layout Code
--enable-atomic-pthread
\end_layout
\begin_layout Description
Default: auto detect
\end_layout
\begin_layout Standard
This is the default setting for non x86 architectures, we may add assembler
optimizations for other architectures as well, but currently only x86 optimizat
ions are available.
This option may also be safely used on x86 machines - the drawback is poor
performance, compared to assembler optimized code.
\end_layout
\begin_layout Subsubsection
X_MS_MediaReceiverRegistrar Support
\end_layout
\begin_layout Code
--enable-mrreg-service
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
This option will enable the compilation and support of the X_MS_MediaReceiverReg
istrar UPnP service, this was implemented for future Xbox 360 support.
If you have a renderer that requires this service, you can safely enable
it.
It will always return true to IsValidated and IsAuthorized requests.
\end_layout
\begin_layout Subsubsection
Fseeko Check
\end_layout
\begin_layout Code
--disable-fseeko-check
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
This is a workaround for a bug in some Debian distributions, disable this
check if you know that your system has large file support, but configure
fails to detect it.
For more information see: ADD LINK HERE
\end_layout
\begin_layout Subsubsection
Largefile Support
\end_layout
\begin_layout Code
--disable-largefile
\end_layout
\begin_layout Description
Default: auto
\end_layout
\begin_layout Standard
By default largefile support will be auto detected by configure, however
you can disable it if you do not want it or if you experience problems
with it on your system.
\end_layout
\begin_layout Subsubsection
Redefinition Of Malloc And Realloc
\end_layout
\begin_layout Code
--disable-rpl-malloc
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
Autoconf may redefine malloc and realloc functions to rpl_malloc and rpl_realloc
, usually this will happen if the autotools think that you are compiling
against a non GNU C library.
Since malloc and realloc may behave different on other systems, this gives
us the opportunity to write wrapper functions to handle special cases.
However, this redefinition may get triggered when cross compiling, even
if you are compiling against the GNU C lib.
If this is the case, you can use this option to disable the redefinition.
\end_layout
\begin_layout Subsubsection
SQLite Support
\end_layout
\begin_layout Code
--enable-sqlite3
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
The SQLite database is very easy in installation and use, you do not have
to setup any users, permissions, etc.
A database file will be simply created as specified in the MediaTomb configurat
ion.
At least SQLite version 3 is required.
\end_layout
\begin_layout Subsubsection
MySQL Support
\end_layout
\begin_layout Code
--enable-mysql
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
MySQL is a very powerful database, however it requires some additional setup.
You will find information on how to setup MediaTomb with MySQL in the Installat
ion section.
\end_layout
\begin_layout Subsubsection
SpiderMonkey LibJS Support
\end_layout
\begin_layout Code
--enable-libjs
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
SpiderMonkey is Mozilla's JavaScript engine, it plays a very important role
in MediaTomb.
We use it to create a nice virtual container layout based on the metadata
that is extracted from your media.
We also allow the user to create custom import scripts, so everyone has
the possibility to adapt the layout to ones personal needs.
Read more about this in the installation section.
\end_layout
\begin_layout Standard
The main problem with this library is, that it is called differently on
various distributions and that it is installed in different locations.
For example, it is called js on Fedora, but is available under the name
of smjs on Debian.
If configure fails to find your js headers and libraries you can point
it to the desired locations (see options below).
\end_layout
\begin_layout Subsubsection
Filemagic Support
\end_layout
\begin_layout Code
--enable-libmagic
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
This library determines the file type and provides us with the appropriate
mime type information.
It is very important to correctly determine the mime type of your media
- this information will be sent to your renderer.
Based on the mime type information, the renderer will decide if it can
play/display the particular file or not.
If auto detection returns strange mime types, you may want to do a check
using the 'file' command (the 'file' package must be installed on your
system).
Assuming that you want to check somefile.avi enter the following in your
terminal:
\end_layout
\begin_layout Code
$ file -i somefile.avi
\end_layout
\begin_layout Standard
This will print the detected mime type, this is exactly the information
that we use in MediaTomb.
You can override auto detection by defining appropriate file extension
to mime type mappings in your configuration file.
You can also edit the mime type information of an imported object manually
via the web UI.
\end_layout
\begin_layout Subsubsection
Id3lib Support
\end_layout
\begin_layout Code
--enable-id3lib
\end_layout
\begin_layout Description
Default: enabled, preferred over taglib
\end_layout
\begin_layout Standard
This library will parse id3 tags of your MP3 files, the gathered information
will be saved in the database and provided via UPnP.
Further, the gathered metadata will be used by the import script to create
a nice container layout (Audio/Artist/Album, etc.)
\end_layout
\begin_layout Subsubsection
Taglib Support
\end_layout
\begin_layout Code
--enable-taglib
\end_layout
\begin_layout Description
Default: disabled if id3lib is available
\end_layout
\begin_layout Standard
This library will parse id3 tags of your MP3 files as well as information
provided with flac files.
It claims to be faster than id3lib, but it also seems to have some drawbacks.
We had some cases where it crashed when trying to parse tags of certain
MP3 files on embedded systems, we had reports and observed that it had
problems parsing the sample rates.
We also did some valgrinding and detected memory leaks.
Our feeling is, that you will have more stable results with id3lib, however
it is up to you to enable or disable this library.
By default id3lib will be taken if both libraries are present on the system.
\end_layout
\begin_layout Subsubsection
Libexif Support
\end_layout
\begin_layout Code
--enable-libexif
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
The exif library will gather metadata from your photos, it will also find
exif thumbnails which are created automatically by most digital camera
models.
The gathered data will be used by the import script, the thumbnails will
be offered as additional resources via UPnP.
\end_layout
\begin_layout Subsubsection
Libextractor Support
\end_layout
\begin_layout Code
--enable-libextractor
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
Libextractor is a library that attempts to parse all sorts of files, this
includes exif data, id3 tags and much more.
It can also deal with .AVI and .ASF files which is useful when your video
files have the appropriate metadata.
The drawback is - it is slow, especially slow on scanning big video files,
so it slows down the import process considerably.
For this reason this library is disabled by default.
\end_layout
\begin_layout Subsubsection
MediaTomb Debug Output
\end_layout
\begin_layout Code
--enable-tombdebug
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
This option enables debug output, the server will print out a lot of information
which is mainly interesting to developers.
Use this if you are trying to trace down a bug or a problem, the additional
output may give you some clues.
\end_layout
\begin_layout Subsubsection
UPnP Library Debug Output
\end_layout
\begin_layout Code
--enable-upnpdebug
\end_layout
\begin_layout Description
Default: disabled
\end_layout
\begin_layout Standard
This option enables debug output of the UPnP SDK.
You should not need it under normal circumstances.
\end_layout
\begin_layout Subsubsection
Log Output
\end_layout
\begin_layout Code
--disable-log
\end_layout
\begin_layout Description
Default: enabled
\end_layout
\begin_layout Standard
This option allows you to suppress all log output from the server.
\end_layout
\begin_layout Subsubsection
Package Search Directory
\end_layout
\begin_layout Code
--with-search=DIR
\end_layout
\begin_layout Description
Default: /opt/local/ on Darwin, /usr/local/ on all other systems
\end_layout
\begin_layout Standard
Some systems may have whole sets of packages installed in an alternative
location, for example Darwinports on OSX get installed to /opt/local/.
This option tells the configure script to additionally search for headers
and libraries of various packages in DIR/include and DIR/lib.
\end_layout
\begin_layout Subsubsection
Specifying Header And Library Locations Of Various Packages
\end_layout
\begin_layout Standard
You can specify the exact location of particular headers and libraries.
Some packages use extra programs that tell us the appropriate flags that
are needed for compilation - like mysql_config.
You can also specify the exact location of those programs.
The parameters are self explanatory, in case of headers and libraries the
DIR parameter is the directory where those headers and libraries are located.
\end_layout
\begin_layout Code
--with-sqlite3-h=DIR search for sqlite3 headers only in DIR
\end_layout
\begin_layout Code
--with-sqlite3-libs=DIR search for sqlite3 libraries only in DIR
\end_layout
\begin_layout Code
--with-mysql-cfg=mysql_config absolute path/name of mysql_config
\end_layout
\begin_layout Code
--with-js-h=DIR search for js (spidermonkey) headers in
DIR
\end_layout
\begin_layout Code
--with-js-libs=DIR search for js (spidermonkey) libraries in
DIR
\end_layout
\begin_layout Code
--with-magic-h=DIR search for filemagic headers in DIR
\end_layout
\begin_layout Code
--with-magic-libs=DIR search for filemagic headers in DIR
\end_layout
\begin_layout Code
--with-exif-h=DIR search for libexif headers in DIR
\end_layout
\begin_layout Code
--with-exif-libs=DIR search for libexif libraries in DIR
\end_layout
\begin_layout Code
--with-taglib-cfg=taglib-config absolute path/name of taglib-config
\end_layout
\begin_layout Code
--with-id3lib-h=DIR search for id3lib headers in DIR
\end_layout
\begin_layout Code
--with-id3lib-libs=DIR search for id3lib libraries in DIR
\end_layout
\begin_layout Code
--with-zlib-h=DIR search for zlib headers in DIR
\end_layout
\begin_layout Code
--with-zlib-libs=DIR search for zlib libraries in DIR
\end_layout
\begin_layout Code
--with-iconv-h=DIR search for iconv headers in DIR
\end_layout
\begin_layout Code
--with-iconv-libs=DIR search for iconv libraries in DIR
\end_layout
\begin_layout Code
--with-extractor-h=DIR search for extractor headers in DIR
\end_layout
\begin_layout Code
--with-extractor-libs=DIR search for extractor libraries in DIR
\end_layout
\begin_layout Subsubsection
The devconf Script
\end_layout
\begin_layout Standard
If you are doing some development work and some debugging, you will probably
want to compile with the -g flag and also disable optimization.
The devconf script does exactly that.
In addition, it accepts command line parameters that are passed to the
configure script.
\end_layout
\begin_layout Section
Initial Installation
\end_layout
\begin_layout Subsection
Network Setup
\end_layout
\begin_layout Standard
Some systems require a special setup on the network interface.
If MediaTomb exits with UPnP Error -117, or if it does not respond to M-SEARCH
requests from the renderer (i.e.
MediaTomb is running, but your renderer device does not show it) you should
try the following settings (the lines below assume that MediaTomb is running
on a Linux machine, on network interface eth1):
\end_layout
\begin_layout Code
# route add -net 239.0.0.0 netmask 255.0.0.0 eth1
\end_layout
\begin_layout Code
# ifconfig eth1 allmulti
\end_layout
\begin_layout Standard
Those settings will be applied automatically by the init.d startup script.
\end_layout
\begin_layout Standard
You should also make sure that your firewall is not blocking port UDP port
1900 (required for SSDP) and UDP/TCP port of MediaTomb.
By default MediaTomb will select a free port starting with 49152, however
you can specify a port of your choice in the configuration file.
\end_layout
\begin_layout Subsection
First Time Launch
\end_layout
\begin_layout Standard
When starting MediaTomb for the first time, a .mediatomb directory will be
created in your home.
Further, a default server configuration file, called config.xml will be
generated in that directory.
\end_layout
\begin_layout Subsubsection
Using Sqlite Database
\end_layout
\begin_layout Standard
If you are using sqlite - you are ready to go, the database file will be
created automatically and will be located ~/.mediatomb/mediatomb.db If needed
you can adjust the database file name and location in the server configuration
file.
\end_layout
\begin_layout Subsubsection
Using MySQL Database
\end_layout
\begin_layout Standard
If MediaTomb was compiled with support for both databases, sqlite will be
chosen as default because the initial database can be created and used
without any user interaction.
If MediaTomb was compiled only with MySQL support, the appropriate config.xml
file will be created in the ~/.mediatomb directory, but the server will
then terminate, because user interaction is required.
\end_layout
\begin_layout Standard
MediaTomb has to be able to connect to the MySQL server and at least the
(empty) database has to exist.
To create the database and provide MediaTomb with the ability to connect
to the MySQL server you need to have the appropriate permissions.
Note that user names and passwords in MySQL have nothing to do with UNIX
accounts, MySQL has it's own user names/passwords.
Connect to the MySQL database as
\begin_inset Quotes sld
\end_inset
root
\begin_inset Quotes srd
\end_inset
or any other user with the appropriate permissions:
\end_layout
\begin_layout Code
$ mysql [-u ] [-p]
\end_layout
\begin_layout Standard
(You'll probably need to use
\begin_inset Quotes sld
\end_inset
-u
\begin_inset Quotes srd
\end_inset
to specify a different MySQL user and
\begin_inset Quotes sld
\end_inset
-p
\begin_inset Quotes srd
\end_inset
to specify a password.)
\end_layout
\begin_layout Standard
Create a new database for MediaTomb: (substitute
\begin_inset Quotes sld
\end_inset
\begin_inset Quotes srd
\end_inset
with the name of the database)
\end_layout
\begin_layout Code
mysql> CREATE DATABASE ;
\end_layout
\begin_layout Standard
(You can also use
\begin_inset Quotes sld
\end_inset
mysqladmin
\begin_inset Quotes srd
\end_inset
instead.)
\end_layout
\begin_layout Standard
Give MediaTomb the permissions to access the database:
\end_layout
\begin_layout Code
mysql> GRANT ALL ON .*
\end_layout
\begin_layout Code
TO ''@''
\end_layout
\begin_layout Code
IDENTIFIED BY '';
\end_layout
\begin_layout Standard
If you don't want to set a password, omit
\begin_inset Quotes sld
\end_inset
IDENTIFIED BY ..
\begin_inset Quotes srd
\end_inset
completely.
You could also use the MySQL
\begin_inset Quotes sld
\end_inset
root
\begin_inset Quotes srd
\end_inset
user with MediaTomb directly, but this is not recommended.
\end_layout
\begin_layout Standard
To create a database and a user named
\begin_inset Quotes sld
\end_inset
mediatomb
\begin_inset Quotes srd
\end_inset
(who is only able to connect via
\begin_inset Quotes sld
\end_inset
localhost
\begin_inset Quotes srd
\end_inset
) without a password (the defaults) use:
\end_layout
\begin_layout Code
mysql> CREATE DATABASE mediatomb;
\end_layout
\begin_layout Code
mysql> GRANT ALL ON mediatomb.* TO 'mediatomb'@'localhost';
\end_layout
\begin_layout Standard
If MediaTomb was compiled with database auto creation the tables will be
created automatically during the first startup.
All table names have a
\begin_inset Quotes sld
\end_inset
mt_
\begin_inset Quotes srd
\end_inset
prefix, so you can theoretically share the database with a different applicatio
n.
However, this is not recommended.
\end_layout
\begin_layout Standard
If database auto creation wasn't compiled in (configure was run with the
\begin_inset Quotes sld
\end_inset
--disable-db-autocreate
\begin_inset Quotes srd
\end_inset
or zlib.h was not available) you have to create the tables manually:
\end_layout
\begin_layout Code
$ mysql [-u ] [-p]
\backslash
\end_layout
\begin_layout Code
<
\backslash
\end_layout
\begin_layout Code
/share/mediatomb/mysql.sql
\end_layout
\begin_layout Standard
After creating the database and making the appropriate changes in your MediaTomb
config file you are ready to go - launch the server, and everything should
work.
\end_layout
\begin_layout Section
Command Line Options
\end_layout
\begin_layout Standard
There is a number of options that can be passed via command line upon server
start up, for a short summary you can invoke MediaTomb with the following
parameter:
\end_layout
\begin_layout Code
$ mediatomb --help
\end_layout
\begin_layout Description
Note: the command line options override settings in the configuration file!
\end_layout
\begin_layout Subsection
IP Address
\end_layout
\begin_layout Code
--ip or -i
\end_layout
\begin_layout Standard
The server will bind to the given IP address, currently we can not bind
to multiple interfaces so binding to 0.0.0.0 will not be possible.
\end_layout
\begin_layout Subsection
Port
\end_layout
\begin_layout Code
--port or -p
\end_layout
\begin_layout Standard
Specify the server port that will be used for the web user interface, for
serving media and for UPnP requests, minimum allowed value is 49152.
If this option is omitted a default port will be chosen, however, in this
case it is possible that the port will change upon server restart.
\end_layout
\begin_layout Subsection
Configuration File
\end_layout
\begin_layout Code
--config or -c
\end_layout
\begin_layout Standard
By default MediaTomb will search for a file named
\begin_inset Quotes sld
\end_inset
config.xml
\begin_inset Quotes srd
\end_inset
in the ~/.mediatomb directory.
This option allows you to specify a config file by the name and location
of your choice.
The file name must be absolute.
\end_layout
\begin_layout Subsection
Daemon Mode
\end_layout
\begin_layout Code
--daemon or -d
\end_layout
\begin_layout Standard
Run the server in background, MediaTomb will shutdown on SIGTERM, SIGINT
and restart on SIGHUP.
\end_layout
\begin_layout Subsection
Write PID File
\end_layout
\begin_layout Code
--pidfile or -P
\end_layout
\begin_layout Standard
Specify a file that will hold the server process ID, the filename must be
absolute.
\end_layout
\begin_layout Subsection
Run Under Different User Name
\end_layout
\begin_layout Code
--user or -u
\end_layout
\begin_layout Standard
Run MediaTomb under the specified user name, this is especially useful in
combination with the daemon mode.
\end_layout
\begin_layout Subsection
Run Under Different Group
\end_layout
\begin_layout Code
--group or -g
\end_layout
\begin_layout Standard
Run MediaTomb under the specified group, this is especially useful in combinatio
n with the daemon mode.
\end_layout
\begin_layout Subsection
Add Content
\end_layout
\begin_layout Code
--add or -a
\end_layout
\begin_layout Standard
Add the specified directory or file name to the database without UI interaction.
The path must be absolute, if path is a directory then it will be added
recursively.
If path is a file, then only the given file will be imported.
\end_layout
\begin_layout Subsection
Log To File
\end_layout
\begin_layout Code
--logfile or -l
\end_layout
\begin_layout Standard
Do not output log messages to stdout, but redirect everything to a specified
file.
\end_layout
\begin_layout Subsection
Display Command Line Summary
\end_layout
\begin_layout Code
--help or -h
\end_layout
\begin_layout Standard
Print a summary about the available command line options.
\end_layout
\begin_layout Section
Configuration File
\end_layout
\begin_layout Standard
MediaTomb is highly configurable and allows the user to set various options
and preferences that define the servers behavior.
Rather than enforcing certain features upon the user, we prefer to offer
a number of choices where possible.
The heart of MediaTomb configuration is the config.xml file, which is located
in the ~/.mediatomb directory.
If the configuration file is not found in the default location and no configura
tion was specified on the command line, MediaTomb will generate a default
config.xml file in the ~/.mediatomb directory.
The file is in the XML format and can be edited by a simple text editor,
here is the list of all available options:
\end_layout
\begin_layout Itemize
"
\series bold
Required
\series default
" means that the server will not start if the tag is missing in the configuratio
n.
\end_layout
\begin_layout Itemize
"
\series bold
Optional
\series default
" means that the tag can be left out of the configuration file.
\end_layout
\begin_layout Standard
The root tag of MediaTomb configuration is:
\end_layout
\begin_layout Code
\end_layout
\begin_layout Subsection
Server Settings
\end_layout
\begin_layout Standard
These settings define the server configuration, this includes UPnP behavior,
selection of database, accounts for the UI as well as installation locations
of shared data.
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
This section defines the server configuration parameters.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
0
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
0 (automatic)
\end_layout
\begin_layout Standard
Specifies the port where the server will be listening for HTTP requests.
Note, that because of the implementation in the UPnP SDK only ports above
49152 are supported.
The value of zero means, that a port will be automatically selected by
the SDK.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
192.168.0.23
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
first available interface.
\end_layout
\begin_layout Standard
Specifies the IP address to bind to, by default one of the available interfaces
will be selected.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
MediaTomb
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
MediaTomb
\end_layout
\begin_layout Standard
Server friendly name, you will see this on your devices that you use to
access the server.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
http://mediatomb.org/
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
http://mediatomb.cc/
\end_layout
\begin_layout Standard
This tag sets the manufacturer URL of a UPnP device, a custom setting may
be necessary to trick some renderers in order to enable special features
that otherwise are only active with the vendor implemented server.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
MediaTomb
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: MediaTomb
\end_layout
\begin_layout Standard
This tag sets the model name of a UPnP device, a custom setting may be necessary
to trick some renderers in order to enable special features that otherwise
are only active with the vendor implemented server.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
80/index.html
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
\begin_inset Quotes sld
\end_inset
/
\begin_inset Quotes srd
\end_inset
\end_layout
\begin_layout Standard
The presentation URL defines the location of the servers user interface,
usually you do not need to change this however, vendors who want to ship
our server along with their NAS devices may want to point to the main configura
tion page of the device.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
append-to=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\begin_inset Quotes sld
\end_inset
none
\begin_inset Quotes srd
\end_inset
\end_layout
\begin_layout Standard
The append-to attribute defines how the text in the presentationURL tag
should be treated.
\end_layout
\begin_layout Standard
The allowed values are:
\end_layout
\begin_layout Code
append-to="none"
\end_layout
\begin_layout Standard
Use the string exactly as it appears in the presentationURL tag.
\end_layout
\begin_layout Code
append-to="ip"
\end_layout
\begin_layout Standard
Append the string specified in the presentationURL tag to the ip address
of the server, this is useful in a dynamic ip environment where you do
not know the ip but want to point the URL to the port of your web server.
\end_layout
\begin_layout Code
append-to="port"
\end_layout
\begin_layout Standard
Append the string specified in the presentationURL tag to the server ip
and port, this may be useful if you want to serve some static pages using
the built in web server.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
\emph on
Default
\emph default
:
\emph on
automatically generated if the tag is empty
\end_layout
\begin_layout Standard
Unique Device Name, according to the UPnP spec it must be consistent throughout
reboots.
You can fill in something yourself, but we suggest that you leave this
tag empty - it will be filled out and saved automatically after the first
launch of the server.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
/home/your_user_name/.mediatomb
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
\emph on
Default: ~/.mediatomb
\end_layout
\begin_layout Standard
Server home - the server will search for the data that it needs relative
to this directory - basically for the sqlite database file.
The mediatomb.html bookmark file will also be generated in that directory.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
/usr/share/mediatomb/web
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
\emph on
Default: depends on the installation prefix that is passed to the configure
script.
\end_layout
\begin_layout Standard
Root directory for the web server, this is the location where device description
documents, UI html and js files, icons, etc.
are stored.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
/home/myuser/mystuff
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: empty (disabled)
\end_layout
\begin_layout Standard
Files from this directory will be served as from a regular web server.
They do not need to be added to the database, but they are also not served
via UPnP browse requests.
Directory listing is not supported, you have to specify full paths.
\end_layout
\begin_layout Description
Example: the file something.jar is located in /home/myuser/mystuff/javasubdir/som
ething.jar on your filesystem.
Your ip address is 192.168.0.23, the server is running on port 50500.
Assuming the above configuration you could download it by entering this
link in your web browser: http://192.168.0.23:50500/content/serve/javasubdir/somet
hing.jar
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
180
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
180, this is according to the UPnP specification.
\end_layout
\begin_layout Standard
Interval for broadcasting SSDP:alive messages
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
mediatomb.html
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: mediatomb.html
\end_layout
\begin_layout Standard
The bookmark file offers an easy way to access the user interface, it is
especially helpful when the server is not configured to run on a fixed
port.
Each time the server is started, the bookmark file will be filled in with
a redirect to the servers current IP address and port.
To use it, simply bookmark this file in your browser, the default location
is ~/.mediatomb/mediatomb.html
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section holds the user defined HTTP headers that will be added to all
HTTP responses that come from the server.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Specify a header to be added to the response.
If you have a DSM-320 use to fix
the .AVI playback problem.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
disabled
\end_layout
\begin_layout Standard
This will limit title and description length of containers and items in
UPnP browse replies, this feature was added a s workaround for the TG100
bug which can only handle titles no longer than 100 characters.
A negative value will disable this feature, the minimum allowed value is
"4" because three dots will be appended to the string if it has been cut
off to indicate that limiting took place.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section defines various user interface settings.
\end_layout
\begin_layout Paragraph*
WARNING!
\end_layout
\begin_layout Standard
The server has an integrated filesystem browser, that means that anyone
who has access to the UI can browse your filesystem (with user permissions
under which the server is running) and also download your data! If you
want maximum security - disable the UI completely! Account authentication
offers simple protection that might hold back your kids, but it is not
secure enough for use in an untrusted environment!
\end_layout
\begin_layout Description
Note: since the server is meant to be used in a home LAN environment the
UI is enabled by default and accounts are deactivated, thus allowing anyone
on your network to connect to the user interface.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
enabled=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: yes
\end_layout
\begin_layout Standard
Enables (
\begin_inset Quotes sld
\end_inset
yes
\begin_inset Quotes srd
\end_inset
) or disables (
\begin_inset Quotes sld
\end_inset
no
\begin_inset Quotes srd
\end_inset
) the web user interface.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
poll-interval=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: 2
\end_layout
\begin_layout Standard
The poll-interval is an integer value which specifies how often the UI will
poll for tasks.
The interval is specified in seconds, only values greater than zero are
allowed.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
poll-when-idle=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: no
\end_layout
\begin_layout Standard
The poll-when-idle attribute influences the behavior of displaying current
tasks: - when the user does something in the UI (i.e.
clicks around) we always poll for the current task and will display it
- if a task is active, we will continue polling in the background and update
the current task view accordingly - when there is no active task (i.e.
the server is currently idle) we will stop the background polling and only
request updates upon user actions, but not when the user is idle (i.e.
does not click around in the UI)
\end_layout
\begin_layout Standard
Setting poll-when-idle to "yes" will do background polling even when there
are no current tasks; this may be useful if you defined multiple users
and want to see the tasks the other user is queuing on the server while
you are actually idle.
\end_layout
\begin_layout Standard
The tasks that are monitored are:
\end_layout
\begin_layout Itemize
adding files or directories
\end_layout
\begin_layout Itemize
removing items or containers
\end_layout
\begin_layout Itemize
automatic rescans
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section holds various account settings.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
enabled=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: yes
\end_layout
\begin_layout Standard
Specifies if accounts are enabled (
\begin_inset Quotes sld
\end_inset
yes
\begin_inset Quotes srd
\end_inset
) or disabled (
\begin_inset Quotes sld
\end_inset
no
\begin_inset Quotes srd
\end_inset
).
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
session-timeout=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: 30
\end_layout
\begin_layout Standard
The session-timeout attribute specifies the timeout interval in minutes.
The server checks every five minutes for sessions that have timed out,
therefore in the worst case the session times out after session-timeout
+ 5 minutes.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Accounts can be defined as shown below:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
....
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
There can be multiple users, however this is mainly a feature for the future.
Right now there are no per-user permissions.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: 25
\end_layout
\begin_layout Standard
This sets the default number of items per page that will be shown when browsing
the database in the web UI.
\end_layout
\begin_layout Standard
The values for the items per page drop down menu can be defined in the following
manner:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Default: 10, 25, 50, 100
\end_layout
\begin_layout Description
Note: this list must contain the default value, i.e.
if you define a default value of 25, then one of the
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
Specifies the storage driver, currently sqlite3 and mysql are supported.
Each storage driver has it's own configuration parameters.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
driver=...
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
\emph on
Default: sqlite3
\end_layout
\begin_layout Standard
Allowed values are
\begin_inset Quotes sld
\end_inset
sqlite3
\begin_inset Quotes srd
\end_inset
or
\begin_inset Quotes sld
\end_inset
mysql
\begin_inset Quotes srd
\end_inset
, the available options depend on the selected driver.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
driver="sqlite3"
\end_layout
\begin_layout Standard
There is only one child tag for sqlite:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
mediatomb.db
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
mediatomb.db
\end_layout
\begin_layout Standard
The database location is relative to the server's home, if the sqlite database
does not exist it will be created automatically.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
driver="mysql"
\end_layout
\begin_layout Standard
\begin_inset LatexCommand \label{config-mysql}
\end_inset
Below are the child tags for MySQL:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
localhost
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: "localhost"
\end_layout
\begin_layout Standard
This specifies the host where your MySQL database is running.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
root
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: "mediatomb"
\end_layout
\begin_layout Standard
This option sets the user name that will be used to connect to the database.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: no password
\end_layout
\begin_layout Standard
Defines the password for the MySQL user.
If the tag doesn't exist MediaTomb will use no password, if the tag exists,
but is empty MediaTomb will use an empty password.
MySQL has a distinction between no password and an empty password.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
mediatomb
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: "mediatomb"
\end_layout
\begin_layout Standard
Name of the database that will be used by MediaTomb.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Subsection
Import Settings
\end_layout
\begin_layout Standard
The import settings define various options on how to aggregate the content.
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This tag defines the import section.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
hidden-files=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: no
\end_layout
\begin_layout Standard
This attribute defines if files starting with a dot will be imported into
the database (
\begin_inset Quotes sld
\end_inset
yes
\begin_inset Quotes srd
\end_inset
).
Autoscan can override this attribute on a per directory basis.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
ISO-8859-1
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
if nl_langinfo() function is present, this setting will be auto detected
based on your system locale, else set to ISO-8859-1
\end_layout
\begin_layout Standard
Defines the charset of the filesystem.
For example, if you have file names in Cyrillic KOI8-R encoding, then you
should specify that here.
The server uses UTF-8 internally, this import parameter will help you to
correctly import your data.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
ISO-8859-1
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
if nl_langinfo() function is present, this setting will be auto detected
based on your system locale, else set to ISO-8859-1
\end_layout
\begin_layout Standard
Same as above, but defines the charset of the metadata (i.e.
id3 tags, Exif information, etc.)
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Defines options for the virtual container layout; the so called
\begin_inset Quotes sld
\end_inset
virtual container layout
\begin_inset Quotes srd
\end_inset
is the way how the server organizes the media according to the extracted
metadata.
For example, it allows sorting audio files by Album, Artist, Year and so
on.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
type=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: builtin
\end_layout
\begin_layout Standard
Specifies what will be used to create the virtual layout, possible values
are:
\end_layout
\begin_layout Itemize
builtin: a default layout will be created by the server
\end_layout
\begin_layout Itemize
js: a user customizable javascript will be used (MediaTomb must be compiled
with js support)
\end_layout
\begin_layout Itemize
disabled: only PC-Directory structure will be created, i.e.
no virtual layout
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Required if virtual layout type is
\begin_inset Quotes sld
\end_inset
js
\emph default
\begin_inset Quotes srd
\end_inset
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
${prefix}/share/mediatomb/js/import.js, where ${prefix} is your installation
prefix directory.
\end_layout
\begin_layout Standard
Points to the script invoked upon media import.
For more details read doc/scripting-intro.txt
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
charset=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: UTF-8
\end_layout
\begin_layout Standard
Specifies the import script encoding.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
/path/to/my/magic-file
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default: System default
\end_layout
\begin_layout Standard
Specifies an alternative file for filemagic, containing mime type information.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Specifies a list of default autoscan directories.
\end_layout
\begin_layout Standard
This section defines persistent autoscan directories.
It is also possible to define autoscan directories in the UI, the difference
is that autoscan directories that are defined via the config file can not
be removed in the UI.
Even if the directory gets removed on disk, the server will try to monitor
the specified location and will re add the removed directory if it becomes
available/gets created again.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Defines an autoscan directory and it's parameters.
\end_layout
\begin_layout Standard
The attributes specify various autoscan options:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
location=...
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
Absolute path to the directory that shall be monitored.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
mode=...
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
Scan mode, currently only "timed" is supported, future releases will introduce
other modes - like inotify.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
interval=...
\end_layout
\begin_layout Standard
\emph on
Required for
\begin_inset Quotes sld
\end_inset
timed
\begin_inset Quotes srd
\end_inset
mode
\end_layout
\begin_layout Standard
Scan interval in seconds.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
level=...
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
Either "full" or "basic".
Basic mode will only check if any files have been added or were deleted
from the monitored directory, full mode will remember the last modification
time and re add the media that has changed.
Full mode might be useful when you want to monitor changes in the media,
like id3 tags and alike.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
recursive=...
\end_layout
\begin_layout Standard
\emph on
Required
\end_layout
\begin_layout Standard
Values of "yes" or "no" are allowed, specifies if autoscan shall monitor
the given directory including all sub directories.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
hidden-files=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
value specified in
\end_layout
\begin_layout Standard
Allowed values: "yes" or "no", process hidden files, overrides the hidden-files
value in the tag.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Defines various mapping options for importing media, currently two subsections
are supported.
\end_layout
\begin_layout Standard
This section defines mime type and upnp:class mappings, it is vital if filemagic
is not available - in this case media type auto detection will fail and
you will have to set the mime types manually by matching the file extension.
It is also helpful if you want to override auto detected mime types or
simply skip filemagic processing for known file types.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section holds the file name extension to mime type mappings.
\end_layout
\begin_layout Standard
Attributes:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
ignore-unknown=...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
\emph on
Default:
\emph default
\emph on
no
\end_layout
\begin_layout Standard
If ignore-unknown is set to "yes", then only the extensions that are listed
in this section are imported.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Specifies a mapping from a certain file name extension (everything after
the last dot ".") to mime type.
\end_layout
\begin_layout Description
Note: this improves the import speed, because invoking libmagic to discover
the right mime type of a file is omitted for files with extensions listed
here.
\end_layout
\begin_layout Description
Note: extension is case sensitive, this will probably need to be fixed.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section holds the mime type to upnp:class mappings.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Specifies a mapping from a certain mime type to upnp:class in the Content
Directory.
The mime type can either be entered explicitly "audio/mpeg" or using a
wildcard after the slash "audio/*".
The values of "from" and "to" attributes are case sensitive.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
This section holds options for the various supported import libraries, it
is useful in conjunction with virtual container scripting.
\end_layout
\begin_layout Standard
UPnP defines certain tags to pass along metadata of the media (like title,
artist, year, etc.), however some media provides more metadata and exceeds
the scope of UPnP.
This additional metadata can be used to fine tune the server layout, it
allows the user to create a more complex container structure using a customized
import script.
The metadata that can be extracted depends on the library, currently we
support libebexif and libextractor, the libraries provide a default set
of keys that can be passed in the options below.
The data according to those keys will the be extracted from the media and
imported into the database along with the item.
When processing the item, the import script will have full access to the
gathered metadata, thus allowing the user to organize the data with the
use of the extracted information.
A practical example would be: if have more than one digital camera in your
family you could extract the camera model from the Exif tags and sort your
photos in a structure of your choice, like:
\end_layout
\begin_layout Standard
Photos/MyCamera1/All Photos
\end_layout
\begin_layout Standard
Photos/MyCamera1/Date
\end_layout
\begin_layout Standard
Photos/MyCamera2/All Photos
\end_layout
\begin_layout Standard
Photos/MyCamera2/Date
\end_layout
\begin_layout Standard
etc.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Options for the exif library.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Currently only adding keywords to auxdata is supported.
For a list of keywords/tags see the libexif documentation.
Auxdata can be read by the import java script to gain more control over
the media structure.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
If the library was able to extract the data according to the given keyword,
it will be added to auxdata.
You can then use that data in your import scripts.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
A sample configuration for the example described above would be:
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Options for the extractor library.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
Currently only adding keywords to auxdata is supported.
For a list of keywords/tags see the libextractor documentation.
\end_layout
\begin_layout Standard
Child tags:
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
...
\end_layout
\begin_layout Standard
\emph on
Optional
\end_layout
\begin_layout Standard
If the library was able to extract the data according to the given keyword,
it will be added to auxdata.
You can then use that data in your import scripts.
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Standard
\end_layout
\end_inset
\end_layout
\begin_layout Section
Supported Devices
\end_layout
\begin_layout Paragraph*
Attention Hardware Manufacturers:
\end_layout
\begin_layout Standard
If you want to improve compatibility between MediaTomb and your renderer
device or if you are interested in a port of MediaTomb for your NAS device
please e-mail to:
\end_layout
\begin_layout Subsection
MediaRenderers
\end_layout
\begin_layout Standard
MediaTomb supports all UPnP compliant MediaRenderers, however there can
always be various problems that depend on the particular device implementation.
We always try to implement workarounds to compensate for failures and limitatio
ns of various renderers.
\end_layout
\begin_layout Standard
This is the list of client devices that MediaTomb has been tested with and
that are known to work.
Please drop us a mail if you are using MediaTomb with a device that is
not in the list, report any success and failure.
We will try to fix the issues and will add the device to the list.
\end_layout
\begin_layout Subsubsection
Acer
\end_layout
\begin_layout Itemize
AT3705-MGW
\end_layout
\begin_layout Subsubsection
Denon
\end_layout
\begin_layout Itemize
AVR 4306
\end_layout
\begin_layout Subsubsection
D-Link
\end_layout
\begin_layout Itemize
DSM-320
\end_layout
\begin_layout Itemize
DSM-320RD
\end_layout
\begin_layout Itemize
DSM-520
\end_layout
\begin_layout Standard
Some additional settings in MediaTomb configuration are required to enable
special features for the DSM renderers.
If you have a DSM-320 and are experiencing problems during AVI playback,
add the following to the server section of your config.xml:
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Code
\end_layout
\begin_layout Subsubsection
Linksys
\end_layout
\begin_layout Itemize
WMLS11B (Wireless-B Music System)
\end_layout
\begin_layout Subsubsection
Netgear
\end_layout
\begin_layout Itemize
EVA700
\end_layout
\begin_layout Subsubsection
Philips
\end_layout
\begin_layout Itemize
Streamium SL-300i
\end_layout
\begin_layout Itemize
Streamium SL-400i
\end_layout
\begin_layout Itemize
Streamium MX-6000i
\end_layout
\begin_layout Itemize
SLA-5520
\end_layout
\begin_layout Subsubsection
Siemens
\end_layout
\begin_layout Itemize
Gigaset M740AV
\end_layout
\begin_layout Subsubsection
Telegent
\end_layout
\begin_layout Itemize
TG100
\end_layout
\begin_layout Standard
The TG100 client has a problem browsing containers, where item titles exceed
101 characters.
We implemented a server-side workaround which allows you to limit the lengths
of all titles and descriptions.
Use the following settings in the server section of your configuration
file:
\end_layout
\begin_layout Code
101
\end_layout
\begin_layout Subsection
Network Attached Storage Devices
\end_layout
\begin_layout Standard
We provide a bitbake metadata file for the OpenEmbedded environment, it
allows to easily cross compile MediaTomb for various platforms.
We have successfully tested MediaTomb on ARM and MIPSel based devices,
so it should be possible to install and run the server on various Linux
based NAS products that are available on the market.
\end_layout
\begin_layout Subsubsection
Excito
\end_layout
\begin_layout Itemize
Bubba Mini Server
\end_layout
\begin_layout Section
Running The Server
\end_layout
\begin_layout Standard
When you run MediaTomb for the first time a default configuration will be
created in the ~/.mediatomb directory.
If you are using the sqlite database no further intervention is necessary,
if you are using MySQL you will have to make some adjustments (see Configuratio
n section for more details).
To start the server simply run "mediatomb" from the console, to shutdown
cleanly press Ctrl-C.
At start up MediaTomb will print a link to the web UI.
\end_layout
\begin_layout Description
Note: Internet Explorer support is limited and not yet finished.
It is very difficult to support this browser because of a huge number of
bugs in its javascript implementation.
If you don't believe us - just visit
\begin_inset LatexCommand \url[http://selfhtml.org/]{http://selfhtml.org/}
\end_inset
and see how often IE is mentioned in not following the specs or simply
not working with certain functions and features.
We recommend Firefox.
\end_layout
\begin_layout Standard
If you want to run a second server from the same PC, make sure to use a
different configuration file with a different udn and a different database.
\end_layout
\begin_layout Standard
After server launch the bookmark file is created in the ~/.mediatomb directory.
You now can manually add the bookmark ~/.mediatomb/mediatomb.html in your
browser.
This will redirect you to the UI if the server is running.
\end_layout
\begin_layout Standard
Assuming that you enabled the UI, you should now be able to get around quite
easily.
\end_layout
\begin_layout Standard
We also support the daemon mode which allows to start the server in background,
the --user and --group parameters should be used to run the server under
an unprivileged account.
A script for starting/stopping the server is provided.
\end_layout
\begin_layout Section
Legal
\end_layout
\begin_layout Paragraph*
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
\end_layout
\begin_layout Subsection
Copyright
\end_layout
\begin_layout Paragraph*
Copyright (C) 2005
\end_layout
\begin_layout Standard
Gena Batyan
\end_layout
\begin_layout Standard
Sergey Bostandzhyan
\end_layout
\begin_layout Paragraph*
Copyright (C) 2006-2007
\end_layout
\begin_layout Standard
Gena Batyan
\end_layout
\begin_layout Standard
Sergey Bostandzhyan
\end_layout
\begin_layout Standard
Leonhard Wimmer
\end_layout
\begin_layout Subsection
License
\end_layout
\begin_layout Standard
MediaTomb is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by the
Free Software Foundation.
MediaTomb 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.
You should have received a copy of the GNU General Public License version
2 along with MediaTomb; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
\end_layout
\begin_layout Section
Acknowledgments
\end_layout
\begin_layout Standard
We are using the following code in our tree:
\end_layout
\begin_layout Itemize
uuid from E2fsprogs 1.35 under GNU GPL, Copyright (C) 1996, 1997, 1998 Theodore
Ts'o.
Some functions from the UPnP SDK were conflicting
with libuuid, so we had to take the sources in and do some renaming.
\end_layout
\begin_layout Itemize
md5 implementation by L.
Peter Deutsch , Copyright (C) 1999 Aladdin Enterprise
s.
All rights reserved.
(See source headers for further details)
\end_layout
\begin_layout Itemize
md5 javascript implementation distributed under BSD License, Copyright (C)
Paul Johnston 1999 - 2002.
http://pajhome.org.uk/crypt/md5
\end_layout
\begin_layout Itemize
Prototype JavaScript Framework http://www.prototypejs.org/ (c) 2005-2007 Sam
Stephenson, MIT-style license.
\end_layout
\begin_layout Itemize
(heavily modified version of) NanoTree http://nanotree.sourceforge.net/ (c)
2003 (?) Martin Mouritzen ; LGPL
\end_layout
\begin_layout Itemize
IE PNG fix from http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
\end_layout
\begin_layout Itemize
tombupnp is based on pupnp (http://pupnp.sf.net) which is based on libupnp
(http://upnp.sf.net), originally distributed under the BSD license, Copyright
(c) 2000-2003 Intel Corporation.
Note that all changes to libupnp code that were made by the MediaTomb team
are covered by the LGPL license.
\end_layout
\begin_layout Section
Contributions
\end_layout
\begin_layout Itemize
Initial version of the MediaTomb start up script was contributed by Iain
Lea
\end_layout
\begin_layout Itemize
TagLib support patch was contributed by Benhur Stein
\end_layout
\begin_layout Itemize
tombupnp is kept in sync with the latest pupnp patches, see documentation
in the tombupnp directory
\end_layout
\end_body
\end_document