From VDR Wiki
Revision as of 18:48, 18 August 2005 by (talk) (Initial import (I'm not native speaker, therefore maybe ugly translated with babelfish))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


xxv a central service is for the administration of the VDR and its environment, with which different of haven are open and these different services can serve.

An additional haven over a Plugin to furnish should be just as simple, to make available as also a certain service. The letter of a Plugins goes very fast, there the input (Vdr, Database etc.) as well as the output (telnet, HTTP...) generically was realized. It should be e.g. possible thus to register with a telnet CONSOLE, HttpBrowser, Wapphone, etc. an autotimer. This should substantially faster the EPG data to scan be able (MySQL data base) and over an interface the VDR the new timer communicate. Naturally also is considered to the single mode of the SVdrP and only one instruction is mailed. Afterwards the haven is again closed immediately, so that other programs can access again svdrp.

Long speech short sense, here a small overview of the present functions:

  • completely in Perl realizes
  • very generic front-end
  • Plugin system
  • Data base support
  • Epg data are regularly parsed and registered
  • very simple Plugin concept for future extensions
  • several services from a service (Telnet, HTTP, ...)
  • Dump interface for external programs


thumb|none|Teletextscreen thumb|none|Stone Skin thumb|none|Remote
thumb|none|Main Screen thumb|none|Autotimer
http://www.deltab.de/vdr/xxv-deltab.png http://www.deltab.de/vdr/xxv-stone.png http://www.deltab.de/vdr/xxv-snow.png http://www.deltab.de/vdr/xxv-blue.png

Software requirements

  • mysql-server (version!?)
  • different Perl::Module (see installation)
  • vdr2jpeg (optionally)
  • mplayer optionally), installation see mplayer-plugin


Subversion checkout

We support immediately subversion, i.e. thus for you that on your system subversion should be installed. As subversion Clients on your system to be installed can reread you here:


In order to make a Checkout to thus pull itself (the current xxv) their simply following calls:

 svn checkout http://bandt.dyndns.org/repos/XXV

Xxv unpack

tar xvzf xxv-<VERSION>.tar.gz

Man page install

cp doc/xxvd.1 /usr/share/man/man1

Logrotate conf install

cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd


per Source

tar xvzf mysql-<VERSION>.tar.gz
./configure --prefix=/usr/local \
            --libexecdir=/usr/local/bin \
            --without-extra-tools \
make install
cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
chown -R mysql var
mysql_install_db --user=mysql &


apt-get install mysql-server-4.1

Perl Module

Now some perl modules follow , there give it like 2 ways:

per cpan

The recommended way, if you don't have a Debian system: By means of "Bundle::Xxv" via CPAN, simply change into the $SOURCEDIR/lib folder and the Bundle install. In addition one must UNFORTUNATELY put underneath cpan the module, it can be that with mkdir's the error messages to come the this draw-eats already already existed, which can ignore you confidently. All modules to be needed to stand in this Bundle and are installed automatically:

mkdir -p ~/.cpan/Bundle
cp Bundle/Xxv.pm ~/.cpan/Bundle
perl -MCPAN -e 'install Bundle::Xxv'
Note: I had with my SuSE distri:
 cd $SOURCEDIR/xxv-<VERSION>/lib
 mkdir -p /etc/perl/cpan/Bundle
 cp Bundle/Xxv.pm /etc/perl/cpan/Bundle
 perl -MCPAN -e 'install Bundle::Xxv'



Or another possibility via SOURCE.

  • <NAME>-<VERSION>.tar.gz

The installation is identical for most packages:

tar xvzf <NAME>-<VERSION>.tar.gz
perl Makefile.PL
make install
cd -


apt-get install libdbi-perl \
                libevent-perl \
                libtimedate-perl \
                libtime-hires-perl \
                libmime-base64-perl \
                libproc-process-perl \
                liblocale-gettext-perl \
                libgd-perl \
                libwww-mechanize-perl \
                libwww-mechanize-formfiller-perl \
                libproc-process-perl \
                liblog-log4perl-perl \
apt-get install libdbi-perl \
                libevent-perl \
                libgd-gd2-noxpm-perl \
                libgd-graph-perl \
                libgd-graph3d-perl \
                libgd-text-perl \
                libhtml-parser-perl \
                libhtml-tagset-perl \
                libhtml-template-perl \
                libhtml-tree-perl \
                liblocale-gettext-perl \
                libnet-telnet-perl \
                libperl5.8 \
                libterm-readkey-perl \
                liburi-perl \
                libwww-mechanize-perl \
                libwww-perl \
                liblog-log4perl-perl \
                libxml-simple-perl \
                libproc-process-perl \
                perl \
                perl-base \
perl -MCPAN -e 'install WWW::Mechanize::FormFiller'


Over from the recordings of pictures for Xxv too extract, there are 2 possibilities, mplayer or vdr2jpeg, the latter has importantly fewer dependence, sets only ffmpeg (Version 0.4.8 functioned, 0.4.9pre1 apparently not) ahead. (details in the Readme).

wget http://www.deltab.de/vdr/vdr2jpeg-0.0.7.tgz
tar [...] vdr2jpeg-0.0.7.tgz
cd vdr2jpeg-0.0.7

or the current conditions by subversion

svn checkout http://bandt.dyndns.org/repos/vdr2jpeg
cd vdr2jpeg

In the Makefile should be adapted still the folder of ffmpeg and one compiles also

make install INSTALLBINDIR=/usr/local/bin

Then is those xxv.conf to adapt.


Or in the Browser, under configuration point recordings.

Update of an older version (< 0.20)

We go of it out of which you xxv with you had already installed and to point you as you to a new version to be updated can. As the first we must stop the service:

 vdr:~# /etc/init.d/xxvd stop

Then best subversion uses around a new version from xxv to to pull:

 vdr:~# cd $SOURCEDIR
 vdr:~# svn co http://bandt.dyndns.org/repos/XXV

So that the existing database is converted into the new structure, the update script must be started. This secures your most important data and develops the database again:

 cd contrib
 ./upgrade-xxv.sh -u [db user name] -p [db password]
   Info: Checking Server
   Info: Checking Database
   Info: Retrieving current version
   Info: current database version: 0
   Info: new database version: 1
   Info: Starting update...
   Info: Saving Data
   Info: Updating Database
   Info: Restoring Data
   Info: Updateing Version
   Info: Update successful

Possibly copy /etc/init.d/xxvd and to the new installation listing adapt and afterwards start again:

 vdr:~# cp etc/xxvd /etc/init.d/xxvd
 vdr:~# /etc/init.d/xxvd restart

Log file control:

 vdr:~# tail -f /var/log/xxvd.log

If any error messages should emerge wg. missing modules in the log file, then should install these for her. Who does not go to no more white as, which will help wiki you:


XXV keep current

... with Subversion

In order to keep xxv current, you simply only one update with subversion need to make, which updates script call and start afterwards xxv again:

 /etc/init.d/xxvd stop
 svn update

... as Download

Naturally it will give also further the possibility of getting themselves from the existing download server http://xpix.dieserver.de/downloads/xxv/?M=D current packages and of unpacking these then. But(!), these packages are made available only in irregular distances. Are thus not always current:

wget http://xpix.dieserver.de/downloads/xxv/xxv-<VERSION>.tgz
tar xvzf xxv-<VERSION>.tar.gz

Data base structure adapt

New or extended xxv-functions involve often also a change of the data base structure. After the installation of an update, should you therefore first always the script contrib/update xxv call. XXV may be started at this time not yet.

In the simplest case must transfer no parameters to her to the script. This presupposes however that MySQL on the local computer is installed that the data base is called ' xxv ' and the database administrator ' root ' does not possess a password.

 cd $SOURCEDIR/contrib

Beyond that can to the script a set of parameters hand over, which also steer a few extended functions apart from the access to the data base you. An overview of all parameters receive you with:

 cd $SOURCEDIR/contrib
 ./update-xxv -h
 Usage: update-xxv [-b] [-h hostname] [-P port] [-d database]
                   [-u user] [-p password]
 -b <target>    : Make a backup first to <target>.gz
 -H <hostname>  : Host name of the MySQL server (default: localhost)
 -P <port>      : Port number of MySQL server
 -d <database>  : XXV database name (default: xxv)
 -u <user>      : Username (default: root)
 -p <password>  : Password (default: no password)
 -a             : Ask for password
 -f             : Force upgrade, do not check version
 -h             : Help

With the parameter -b is accomplished before the update a Backup of the data base. In addition the name of the backupfile (without the ending gz) must be indicated. The parameters -H (hostname) and -P (haven) steer the access to the MySQL server. This ' localhost' and haven are according to standard 3306. If the database should not be called 'xxv', then can you with -D another name select.

The data base user can specify you with -u and its password with -p. In order to be able to accomplish the update, the data base user needs FILE of rights. Usually only the administrator 'root' is this right.

safety reference: With the delivery of the password in the command line parameters the password becomes visible for one moment for all other user of the local system ('ps -fA' indicates all processes with their parameters!). Alternatively have you therefore the possibility, by means of -A the update script for the password ask of letting. However the password is several times queried, since different data base operations are necessary.

Database updates are accomplished by update xxv only if you are really necessary. Should times somewhat inclined run or if you would like on an old data base structure ' down degrees ', then can you the update with -f force.

With a successful data base update a list of the accomplished actions spends update xxv:

 Info: Checking Server
 Info: Checking Database
 Info: Retrieving current version
 Info: current database version: 0
 Info: new database version: 1
 Info: Starting update...
 Info: Saving Data
 Info: Updating Database
 Info: Restoring Data
 Info: Updateing Version
 Info: Update successful

In the event of an error "error:..." Messages spent. The most probable cause for an error is the data base access. You should examine first thus username, password, data base name and host.

After the update can you XXV again start:

 /etc/init.d/xxvd start


Start the MySQL of server also:

mysqld_safe --user=mysql &

Creation of the data base xxv:

mysql -u root -e "create database xxv;"

Afterwards the rights are to be set:

mysql -u root -e "grant all privileges on xxv.* to xpix@localhost;"

Now $HOMEDIR/.xxvd.cfg is to be adapted as follows


Xxv start

So that xxv with each system start as service can be started, to have we a starting script under etc/xxvd stored, which one should install in its system. Before one should enter however still the path, where of you is xxv:

nano etc/xxvd

In place of nano can you naturally also another editor use. In the first lines simply $SOURCEDIR and with ctrl-o (with nano) stored.

# -------------------------------------------

# Where is bin/xxvd

# -------------------------------------------

Under SuSE you still supplement at the beginning of the file, z.B. nach '# xxvd Start/Stop the xxvd daemon':

# Provides:       xxvd
# Required-Start: vdr
# Required-Stop:
# Default-Start: 3 5
# Default-Stop:  0 1 2 6
# Description:   telnet/http config server, for the DVB Settop box vdr program

Then give you (with SuSE):

cp etc/xxvd /etc/init.d/.
cd /etc/init.d/
insserv xxvd

Thus XXV with each boats of the computer after vdr one starts. If you do not use SuSE, gehts further with:

so that you know, in which Runlevel it straight run, should their level call:


You notice and provide the level you in the folder /etc/rc[runlevelnumber].d a symbolic link up xxvd. With my example in level 2:

cp etc/xxvd /etc/init.d/.
chmod 775 /etc/init.d/xxvd
ln -s /etc/init.d/xxvd /etc/rc2.d/S90xxvd  

Start of xxv:

./bin/xxvd --configfile=./xxvd.cfg && tail -f /var/log/xxvd.log

or as service:

/etc/init.d/xxvd restart 

Then a Browser call with the following URL:


or by telnet

 telnet [IP of yours vdr or localhost] 8001
User:     xxv
Password: xxv



General actually is no Plugin. Since it looks in such a way from view of xxv, it should be listed for the sake of the completeness here. Here global attitudes are listed such as log file path, data base server etc..

Manual: http://www.xpix.de/downloads/xxv/doc/General.html

  • Nearly all modules can be deactivated in your function (Configuration -> ModName -> Active = 'no').
  • The Templates is now likewise located and translatable, i.e. the skin programmer can access over the gettext routine the translation data base.


Here the EPG data is scanned for transmissions with a certain text into title, subtitle and text and programmed these as timers.

Manual: http://www.xpix.de/downloads/xxv/doc/AUTOTIMER.html

  • Autotimers can determine whether timers with VPS and own pre and wake are put on.
  • With an update now additionally also the Channelnamen of the found Events is indicated
  • Autotimer - Configuration - exclude: Exclude Channellist over for determines generally exclude channels the search for Events.


This module permits the deletion, a providing and an editing of the new timers, as well as their representation.

Manual: http://www.xpix.de/downloads/xxv/doc/TIMERS.html

  • Timers referencing now on its EPG entry, if this is present.
  • Inactive timer now deleted if these more than one month in the future to lie. It seemed repeatedly, which a timer was programmed by autotimers, to this because of lack of interest was deactivated. If the timer had run off, it emerged automatically exactly one month later again in the list. These "timer corpses" had to be deleted then always laboriously by hand. Happened now automatically if TIMER - configuration - the Deactive is set on 'yes'.


Here those becomes epg.data read in and their entries in a database stored.

Manual: http://www.xpix.de/downloads/xxv/doc/EPG.html

  • Events are separately marked, if these are noted as timers.


Here ' ' channels.conf one reads in and their entries in a database one stores.

Manual: http://www.xpix.de/downloads/xxv/doc/CHANNELS.html


This module puts a server to HTTP as well as a Web interface at the disposal, in order to be able to serve xxv by Browser.

Manual: http://www.xpix.de/downloads/xxv/doc/HTTPD.html

  • A Processbar indicated if processes to be started somewhat longer to last (music to read in again, getCovers)
  • Now a starting side under Preferences - httpd - can be individually specified starting PAGE, (now, program, runs autotimer...)


This module puts a server to telnet at the disposal, in order to be able to serve xxv by "telnet localhost port".

Manual: http://www.xpix.de/downloads/xxv/doc/TELNET.html


This module puts a server to data at the disposal, in order to be able to serve xxv with other GUIs.

Manual: http://www.xpix.de/downloads/xxv/doc/INTERFACE.html


This module makes a WapD available server, in order to be able to serve xxv by means of Wap Browser (mobile telephone).

At present still without really function.

Manual: http://www.xpix.de/downloads/xxv/doc/WAPD.html


The MusicPlugin makes a medium library as well as a Icecast available Streamserver.

Manual: http://www.xpix.de/downloads/xxv/doc/MUSIC.html

  • WebInterface: Many user more than 1000 MP3 titles on their had vdr rumlungern, thus thereby Javascript the concept absolutely not thereby clearly came. The new interface is now pure HTML and fortunately also substantially faster in the side structure.
  • GetCovers: This function is a bonus with xxv by means of module the Robot once on the day the Covers of the albums as image files from the InterNet to download can. For it the Perl module WWW::Mechanize which must be installed additionally, is used. This module emulates the normal operation in a Browser, with which a search word (album name, feature year) on the search side of a music portal is entered and suppl.-smooth-eat then scanned for the wished Albumcover. And this Coverbild is then stored in the preview listing and indicated in the album list.


This Plugin represents all recordings clearly and permits different actions on the individual records.

Manual: http://www.xpix.de/downloads/xxv/doc/RECORDS.html

  • The cut marks are represented now graphically in the record overview.
  • Many characteristics of the record are now capable for editing. (Marks, Lifetime, Priorität,...)
  • Andreas took care of the leidigen and substantially unperformanten way of the Preview picture production and a very slim C program named 'vdr2jpeg' wrote. This program does nothing different one than Preview of pictures in the reason with certain marks to provide. This we naturally also supported of xxv and can by "svn co http://bandt.dyndns.org/repos/vdr2jpeg" are gotten. Closer data for installation can reread you in the README file of the program complex.
  • Series, or recordings into a group file are summarized, in rlist as files are indicated.


Configuration the Plugin makes it possible to change and store at run time different parameters of the interface (HTTP, telnet,..).

Manual: http://www.xpix.de/downloads/xxv/doc/CONFIG.html


Grab makes the live picture available of the VDR as JPEG image file.

Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html

  • grab ow is able to fade in additional information (e.g. the channel) into the gegrabbte live picture.


This Plugin represents a remote maintenance and in connection with grave also a live picture. Thus the VDR can be served by interfaces rudimentarily.

Manual: http://www.xpix.de/downloads/xxv/doc/REMOTE.html


Status represents all system information in the interfaces as clear representation.

Manual: http://www.xpix.de/downloads/xxv/doc/STATUS.html

  • A particularly nice feature, it now graphs provided which the memory extent of utilization as well as the load of a certain period (configuration - status - history) to represent. The special to it, which become diagrams from the Templates provided, thus each bent ski programmer its own diagrams if necessary to provide can. In the HTML Skin one can see that very beautiful under status.


This Plugin makes all instructions available svdrp of the interface of the VDR.

Manual: http://www.xpix.de/downloads/xxv/doc/SVDRP.html


User authentication, which queries users in all interfaces identification and password and makes a level administration available.

Effectively come at xxvd three different account levels to carry :

  • The normal level of the operating system (Linux)

In this account xxvd executed. The account becomes in the variable RUNAS in /etc/init.d/xxvd defined. So that xxvd within unprivileged accounts can be executed, this account needs reader-genuine in xxv-folder, and write rights to the cfg file, pid file, log files and write rights in the preview folder of the Skins.

  • The Mysql Account

This entrance we only needs around the data in mySQL the data base to respond, therefore it needs reading and write rights within the active xxv-data base (mySQL:DATABASE) (GARANT SELECT, INSERT, UPDATE, CREATE, DROP, usw.)

  • And then there is the xxv-account within XXV the user administration.

It serves only for it individual xxv-commands to de-energise or close. Momentarily this is possible only in the three groups guest, user, admin.

  • guest, may data such as EPG data or Recordings regard
  • user, such as autotimers, timer may change data
  • admin, user may administer

The standard entrance after new installation has the following Login and should over the xxv-user administration when de-energising in InterNet be deleted or changed.

Passwort: xxv

If XXV only in the local area network one uses, the xxv-user administration can be switched off also completely in the preferences.


Manual: http://www.xpix.de/downloads/xxv/doc/USER.html

  • Certain parameters can be stopped now with the user. We use a generic system, if for example the user liked to see xpix only the Skin Snow can one in the user attitudes under 'Prefs' with 'HTTPD::HtmlRoot=snow' adjust very beautifully. Naturally one can assign also all other parameters of the modules to the user, e.g. we would like additional, which the user xpix only timer may define, whose priority is only with 30. That would look in such a way then:
   HTTPD::HtmlRoot=snow, TIMERS::Priority=30

The syntax reads thus 'Modulname::Parameter=Value, Modulname::Parameter=Value...'... if the user xpix also only as Level=User is adjusted, can one thus prevent the this its attitudes changes.

  • The user can make also a Logout now.


This module indicates teletext sides.

Manual: http://www.xpix.de/downloads/xxv/doc/VTX.html

Skins install

Possible the Web interface in completely different appearance is to be able to be represented. But one must download oneself only the desired Skin and unpack the package in $SOURCEDIR :

wget http://www.deltab.de/vdr/xxv-stone-0.40.tgz
tar zxvf xxv-stone-0.40.tgz

or the current conditions by subversion

svn checkout http://bandt.dyndns.org/repos/XXV-Skins

By unpacking a new folder with the name should stone developed with the data of the Skin its. Subsequently, one calls the Web interface (http://ip_yours_vdrs:8080) and subordinates the new names of the Skin Preferences -> HTTPD -> HtmlRoot . Only with Senddata activate the changed Skin. And with complete reloading the xxv-web page in the Browser (IE - key F5), which representation and the Cache of the Browser aktualiseren.

Naturally one can directly edit also the configuration file and again start xxv thereafter:

nano .xxvd.cfg
/etc/init.d/xxvd restart


  • I have mean vdr on 1.3.26 - 27 updates and uses xxv V0.42. I can no more recordings in the interface see

In these versions Klaus had something at the SVDRP interface screwed, thus XXV nothing more thereby to begin could. Either you update your XXV by subversion or you use a Patch which we on the following URL published:


If you should c't distribution to use, then update your xxv package by apt-get, afterwards the error should not arise any longer.

  • My Samba path shows amusing indications with umlauts in the paths of the recordings and the Liveplayer does not play this Aufnamen not

Look here: http://www.vdr-wiki.de/wiki/index.php/Samba#Probleme

  • The password for the user xxv changed. And do not come now any longer to Admin rights.

The fast solution for your problem, in mysql log in and the user table delete:

vdr:~# mysql -u root -p           
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 3.23.49-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use xxv;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> drop table USER;
Query OK, 0 rows affected (0.12 sec)
mysql> quit

Then xxv restart again:

vdr:~# /etc/init.d/xxvd restart                                                 
Stop bin/xxvd: xxvd with pid 744 killed
Start bin/xxvd: xxvd started with pid 3563.

Afterwards you should be able yourself to log in with xxv:xxv normally.

  • No Preview image is provided:

The following check list should help you:

* the path is correct to mplayer in the RECORDS Config
* is  mplayer switched on under Records->config->mplayercommand?
* correct version under Records->config->mplayercommand?
* the path is correct to the video folder?
* the preview folder is writable for xxvd?

Consider also, the preview pictures in the background are generated. That means only after a small while is the first Previews to see (approx. 2min).

  • No Previewimages is provided and in xxvd_mplayer.log stands:
Unknown option on the command line: jpeg

Starting from mplayer-1.0pre6 the calling command line must be adapted, xxv make this for you. (Configuration -> RECORDS -> mplayercommand). Adjust simply the appropriate Player, which is installed on your system. MPlayer1.0pre5 and older as well as MPlayer1.0pre6 and more again. You get the version number of yours mplayers with mplayer v to see:

vdr:~/XXV# mplayer -v
MPlayer 1.0pre5-2.95.4 (C) 2000-2004 MPlayer Team

CPU: IDT/Centaur/VIA C3 Samuel 2 (WinChip C5B core)/C3 Ezra 600.9 MHz (Family: 6,    Stepping: 3)
Detected cache-line size is 32 bytes
3DNow supported but disabled
CPUflags:  MMX: 1 MMX2: 0 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX

  • in the log file the following warning emerges:
11 (10305) [03:27:27 03.02.2005] [Fatal] Cannot build telnet initial socket.

You must specify another port number for the telnet server in ~/.xxvd.cfg. The port which you used want, is probably already occupied.

  • in the log file from time to time the following warnings emerge:
 37 (805) [12:01:34 02/02/05] Can't locate object method "timers" via package    "XXV::MODULES::EPG" (perhaps you forgot to load "XXV::MODULES::EPG"?) at   /root/XXV/bin/../lib/Template/Stash.pm line 650.

These messages can be ignored. Perl tries to call by eval a method.

  • When starting the following warning appears:
 Start bin/xxvd: perl: warning: Setting locale failed.
 perl: warning: Please check that your locale settings:
 LANGUAGE = (unset),
 LC_ALL = (unset),
 LANG = "de_DE@euro"
 are supported and installed on your system.
 perl: warning: Falling back to the standard locale ("C").

A cause is, which bring along xxvd appropriate located texts, but on the computer no system localization of the same name is present. Suppressing this message goes with "export PERL_BADLANG=1", but more meaningfully it is to be likewise installed the system localization in the selected language.

Special problems with installation of the packages of the c't edition

  • In the log file is error that the file was not found ' ' docu.tmpl .

A start from xxv is via

xxvd -configfile=/var/lib/vdr-xxv/xxvd.cfg

possible, PID is assigned, but the Web interface (bspw.) is not attainable. The start also /etc/init.d/vdr-xxv start does not produce output for expenditure:

Starting XXV - Xtreme eXtension for VDR: xxvd started with pid 12345.

Lösung: In the file /etc/default/vdr-xxv register: ENABLED=1.


[1] www.mysql.org mySQL
[2] xpix.dieserver.de/content Homepage
[3] xpix.dieserver.de/downloads/xxv Downloads
[4] xpix.dieserver.de/content/vdr/xxv/tutorials Tutorial to the letter of a Plugins for xxv
[5] www.deltab.de/vdr/xxv.html Skins für xxv
[6] screenshots Somewhat older Screenshots
[7] xxv für ct-vdr Thread aus vdr-portal
[8] Documentation Documentation zu xxv