Version Information: $Id: HOWTO,v 1.5 2004/10/19 19:26:15 akool Exp $
Release Information: $Name:  $

Inhaltsverzeichnis
1.    Einfhrung
2.    Vorbedingungen
3.    FAQ
4.    Installation
4.1   Immer erforderliche Schritte
4.1.1 Plugin auspacken, und VDR-core patchen
4.1.2 LIBDVB erstellen
4.2   Weitere Schritte mit einer Hauppauge PVR
4.2.1 Installation des IvyTV, a Linux iTVC15/16 and CX23415/16 Driver
4.2.2 Installation der Firmware
4.2.3 PVR-Treiber laden
4.2.4 PVR-Karte testen
4.2.5 PVR-Treiber installieren
4.2.6 VDR _nur_ mit einer PVR-Karte
4.3   Weitere Schritte mit einem Software-Encoder
4.3.1 Installation des Realtime MPEG-1 Encoders
4.3.2 Realtime MPEG-1 Encoder testen
5.    Definition der gewnschten Sender/Quellen in der "channels.conf"
6.    EPG
7.    Start
7.1   Start mit einer PVR-Karte
7.2   Start mit einem Software-Encoder
8.    Bedienung
9.    Externe Resourcen


1. Einfhrung
-------------
  Das VDR-Plugin analogTV ermglicht, in die rein digitale DVB-Welt des
  VDR analoge Quellen wie
   - analoge Fernsehsender
   - Video-Kameras
   - VHS-Video-Recorder
   - Sky-Digibox
   - generell alle "Set-top-boxen", die nur einen analogen Ausgang haben
  zu integrieren.

  Die dazu ntige Digitalisierung (Wandlung nach MPEG) der analogen Daten
  kann entweder mit einem Hardware-MPEG-Encoder, oder einem
  Software-Encoder durchgefhrt werden.

2. Vorbedingungen
-----------------
  Neben diesem Plugin sind folgende Dinge erforderlich:
   - ein VDR 1.1.x, 1.2.x oder 1.3.x
   - die LIBDVB (http://www.metzlerbros.org/dvb/libdvb-0.5.5.tar.gz)
   - falls eine Hardware-Encoder-Lsung realisiert werden soll:
     - eine Hauppauge PVR-250 oder PVR-350 Karte
     - video4linux Version 2 (http://www.bytesex.org/snapshot)
     - IvyTV, a Linux iTVC15/16 and CX23415/16 Driver
       (http://prdownloads.sourceforge.net/ivtv/ivtv-0.1.9.tar.gz?download)
   - falls eine Software-Encoder-Lsung realisiert werden soll:
     - eine vom BTTV-Treiber untersttzte analoge TV-Karte
     - eine Sound-Karte (resp. Onboard-Sound)
     - der Realtime MPEG-Encoder "mp1e"
     - video4linux Version 1 oder 2
     - ALSA- oder OSS-Soundtreiber

  In beiden Fllen ist es zwar nicht zwingend erforderlich, aber sinnlos,
  einen VDR ohne eine zustzliche Full featured DVB-Karte aufzubauen!

  Optional, falls auch fr die analogen Sender ein EPG bentigt wird:
   - Nextview EPG ("http://nxtvepg.sourceforge.net")
   oder
   - hoerzu2vdr (http://www.wontorra.net/filemgmt/index.php)


3. FAQ
------

Q: Wird das Tuner-Modul fr die Siemens-DVB-C-Karten untersttzt?
A: Nein. Mit den derzeit verfgbaren DVB-Treibern ist das nicht mglich.

Q: Kann man einen VDR *nur* mit einer analogen (BTTV- oder PVR) Karte
   realisieren?
A: Ja, das ist mglich, macht aber *keinen* Sinn, da so eine Hardware-
   MPEG-Ausgabe fehlt.


4. Installation
---------------
  Die nun folgende Installation hngt grundstzlich davon ab, ob eine
  Hard- oder eine Software-Encodierung geplant ist.

4.1 Immer erforderliche Schritte
--------------------------------
  Die folgenden Schritte sind - unabhngig von Hard- oder Soft-Encoder
  auf jeden Fall durchzufhren.

4.1.1 Plugin auspacken, und VDR-core patchen
--------------------------------------------
  Wie gewohnt, entpacke das Plugin und erstelle einen Link:

    cd /usr/src/dvb/VDR/PLUGINS/src
    tar xjf /tmp/vdr-analogtv-x.x.x.tar.bz2
    ln -sf analogtv-x.x.x analogtv

  Jetzt muss der VDR gepatcht werden.

    cd ../..

  Der erste Patch korrigiert einen Fehler im VDR, der zu massiven
  Bildstrungen fhrt.

  *nur* wenn VDR Version 1.2.2 oder kleiner benutzt wird:

    patch -p1 < PLUGINS/src/analogtv/patches/vdr.patch

  Der zweite Patch verhindert, das VDR beim wegschreiben der "channels.conf"
  die zustzlichen - fr analogTV bentigten - Eintrge entfernt.

  wenn ein VDR Version 1.2.x *mit* AutoPID-Patch benutzt wird:

    patch -p0 < PLUGINS/src/analogtv/patches/vdr-1.2.4-autopid.patch

  _oder_ wenn ein VDR Version 1.2.x *ohne* AutoPID-Patch benutzt wird:

    patch -p0 < PLUGINS/src/analogtv/patches/vdr-1.2.4.patch

  _oder_ wenn ein VDR Version 1.3.x benutzt wird:

    patch -p1 < PLUGINS/src/analogtv/patches/vdr-1.3.0.patch


4.1.2 LIBDVB erstellen
----------------------
  Nun sollte die LIBDVB installiert werden.

  ACHTUNG:
  Da die LIBDVB Header-Dateien des DVB-Treibers bentigt, mu
  _parallel_ zum DVB Verzeichnis entpackt werden!
  Beim Einsatz von dvb-kernel knnte ein
  ln -sf dvb-kernel/linux/include include
  hilfreich sein ...

    cd /usr/src/dvb
    wget http://www.metzlerbros.org/dvb/libdvb-0.5.5.tar.gz
    tar xzf libdvb-0.5.5.tar.gz
    patch -p1 < VDR/PLUGINS/src/analogtv/patches/libdvb-0.5.4.patch
    cd libdvb-0.5.5
    make
    make install

4.1.3 VDR sowie das Plugin erzeugen
-----------------------------------
  Nun kann der gepatchte VDR sowie das Plugin erzeugt werden:

    cd /usr/src/dvb/VDR
    make plugins-clean
    make clean

    make REMOTE=LIRC
    make plugins

  Final kann dieser neue VDR nebst dem Plugin installiert werden.


4.2 Weitere Schritte mit einer Hauppauge PVR
--------------------------------------------
  Dieses Kapitel ist nur dann relevant, wenn eine PVR-Karte eingesetzt
  werden soll.

4.2.1 Installation des IvyTV, a Linux iTVC15/16 and CX23415/16 Driver
---------------------------------------------------------------------
  Zuerst mu der Treiber fr die PVR-Karte installiert werden.

  Es wird empfohlen, die aktuelle Version 0.1.9 von
  http://prdownloads.sourceforge.net/ivtv/ivtv-0.1.9.tar.gz?download
  zu verwenden.

  Alternativ ist der Einsatz neuerer Versionen aus dem CVS mglich:
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ivtv login
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ivtv co ivtv
  Diese sind jedoch vor mir nie getestet worden.

    cd /usr/src/dvb
    tar xzf ivtv-0.1.9.tar.gz
    cd ivtv
    patch -p2 < ../VDR/PLUGINS/src/analogtv/patches/ivtv-0.1.9.diff
    cd driver
    cp ../utils/videodev2.h .
    make install

  Seit einiger Zeit (Anfang 2004) findet besonders durch
  Chris Kennedy <ckennedy@kmos.org> eine geradezu rasante
  Weiterentwicklung des ivtv-Treibers statt.
  Stand 15. Juli 2004 02:01 Uhr sieht so aus:

    cd /usr/src/dvb
    wget http://kmos.org/~ckennedy/ivtv/ivtv-0.1.10-pre2-ck99y.tgz
    tar xzf ivtv-0.1.10-pre2-ck99y.tgz
    cd ivtv-0.1.10-pre2-ck99y/driver
    make install

  Diese Version mu bzgl. analogTV _nicht_ mehr gepatched werden.


4.2.2 Installation der Firmware
-------------------------------
  Nun mu entsprechend der Anleitung in ../utils/README die Firmware fr die
  PVR-Karte aus der CD extrahiert und installiert werden

    cd ../utils
    ./ivtvfwextract.pl

4.2.3 PVR-Treiber laden
-----------------------
  Nun knnen die Treiber fr die PVR-Karte geladen werden.
  Ich bitte dringend darum, fr den ersten Test *exakt* folgende Befehle
  zu verwenden, da diese *verbrgt* funktionieren!

    cd ../driver
    modprobe i2c-algo-bit
    modprobe tuner type=5 # 5 == fr einen PAL-Tuner
    insmod ./msp3400.o once=1 simple=1 debug=2
    modprobe videodev
    insmod ./saa7115.o
    insmod ./ivtv.o debug=1 mpg_buffers=100 video_nr=0 # ivtv_first_minor=0
    # insmod ./tveeprom.o

4.2.4 PVR-Karte testen
----------------------
  Nun ist es an der Zeit, die PVR-Karte auf korrekte Funktion zu berprfen.

    ../utils/test_ioctl -u 0xff -p 4 -f width=480,height=576
    cat /dev/video0 > /tmp/test.mpeg

  Der obige Befehl kann nach ca. 1 Minute mit Strg-C abgebrochen werden.
  Nun mu die Datei "/tmp/test.mpeg" entstanden sein. Diese Datei mu
  sich einwandfrei z.b. mit "mplayer" abspielen lassen, wobei sowohl
  Bild als auch Ton korrekt sein mssen!

4.2.5 PVR-Treiber installieren
------------------------------
  Wie und wo die PVR-Treiber spter geladen werden, ist Geschmackssache und
  jenseits dieser Anleitung - z.b. knnen die Treiber in der "runvdr"
  geladen werden.
  Wichtig fr spter zu wissen ist, als wievielte Video4Linux-Karte der
  PVR-Treiber im System auftaucht ("/dev/videoX").
  Mit der Modul-Option "video_nr=X" des "ivtv.o" Moduls kann angegeben
  werden, unter welcher Minor Device Nummer ("/dev/videoX") der Treiber
  auftauchen soll.

  Bei dem C. Kennedy Treiber heit die Option nicht "video_nr=", sondern
  "ivtv_first_minor="

4.2.6 VDR _nur_ mit einer PVR-Karte
-----------------------------------

  Dank der Arbeit von Dominic Morris <dom@suborbital.org.uk> gibt es mit dem
  PVR350-Plugin (http://www.rst38.org.uk/vdr/pvr350/vdr-pvr350-0.0.2.tgz)
  nun auch die Mglichkeit, den MPEG-Decoder - und damit den
  TV-Ausgang - der PVR350-Karte zu nutzen.

  ACHTUNG: Dazu ist _zwingend_ eine PVR350-Karte erforderlich, eine
  	   PVR250-Karte besitzt _keinen_ MPEG-Decoder!!

  Folgendermaen habe ich einen VDR aufgebaut, der _nur_ eine PVR350-Karte
  besitzt:

   - Linux-2.6
   - ckennedy-ivtv-Treiber
     wget http://kmos.org/~ckennedy/ivtv/ivtv-0.1.10-pre2-ck100b.tgz
     tar xzf ivtv-0.1.10-pre2-ck100b.tgz
     cd ivtv-0.1.10-pre2-ck100b/driver
     make install
     modprobe ivtv
     modprobe ivtv-fb
   - wget http://www.rst38.org.uk/vdr/pvr350/vdr-pvr350-0.0.3.tgz
   - vdr -Ppvr350 -Panalogtv

  Wird die PVR350-Karte als TV-Out verwendet:
   - gibt es keinerlei Stottern!
   - kann die Video-Bitrate beliebig hoch gedreht werden!
   - kann PVR-TS verwendet werden!
   - ist das umschalten zwischen analogen Kanlen sehr schnell!
   - funktioniert auch nxTVepg!

  Im OSD-Setup sollte "PVR350 TV-Ausgang verwenden" auf JA gestellt werden.
  Dadurch verlassen - solange keine Aufnahme stattfindet - die MPEG-Daten
  nie die PVR-Karte, sondern werden direkt vom Encoder zum Decoder
  weitergegeben.

  In diesem PassThrough Modus sind alle MPEG-Encoder-Parameter wie Audio-/
  Video-Bitrate, MPEG-Ts / MPEG-PES irrelevant.


4.3 Weitere Schritte mit einem Software-Encoder
-----------------------------------------------
  Dieses Kapitel ist nur dann relevant, wenn ein Software-Encoder eingesetzt
  werden soll.

4.3.1 Installation des Realtime MPEG-1 Encoders
-----------------------------------------------
    cd /usr/src/dvb
    cvs -d:pserver:anonymous@cvs.zapping.sf.net:/cvsroot/zapping login
    cvs -z3 -d:pserver:anonymous@cvs.zapping.sf.net:/cvsroot/zapping co rte/mp1e
    cvs -z3 -d:pserver:anonymous@cvs.zapping.sf.net:/cvsroot/zapping co rte/src
    patch -p0 < VDR/PLUGINS/src/analogtv/patches/mp1e.patch
    cd rte/mp1e
    ./configure
    make
    make install

4.3.2 Realtime MPEG-1 Encoder testen
------------------------------------
    mp1e -v > /tmp/test.mpeg

  Der obige Befehl kann nach ca. 1 Minute mit Strg-C abgebrochen werden.
  Nun mu die Datei "/tmp/test.mpeg" entstanden sein. Diese Datei mu
  sich einwandfrei z.b. mit "mplayer" abspielen lassen, wobei sowohl
  Bild als auch Ton korrekt sein mssen!


***************************************************************************
  Puh! Wer erfolgreich bis hier gekommen ist, sollte sich nun erstmal eine
  kleine Pause gnnen, denn auch die nchsten Schritte sind leider nicht
  ohne!
***************************************************************************


5. Definition der gewnschten Sender/Quellen in der "channels.conf"

  Alle Fernsehsender sowie analogen Anschlsse, die man mit Hilfe dieses
  Plugins betrachten will, mssen in die Datei "channels.conf" eingetragen
  werden.

  Im Verzeichnis "examples" befinden sich diverse Beispiele, die
  mglicherweise als Ausgangspunkt verwandt werden knnen.

  Die einzelnen Felder der channel definition:

  -> "RTL:210250:B6C0D0:C:0:301:300:0:32001:12003:0:0:0"

  Name       - Sendername

  Frequency  - Frequenz in Hz, siehe z.b. beiliegende "europe-west.list"
	       Gerte/Eingnge, die _keinen_ Tuner besitzen
	       (wie der S-Video- oder Composite-Eingang) mssen hier
               mit der Frequenz 1 definiert werden (vdr-1.2.6 und hher
               akzeptiert leider eine Frequenz 0 nicht mehr)

  Parameters - Norm:
	       B6 = PAL
	       B7 = NTSC
               B8 = SECAM

               Capture device:
               C0  = /dev/video0
               C12 = /dev/video1
               C23 = /dev/video2
               C34 = /dev/video3
               C45 = /dev/video4

               Video source:
               D0  = Television
               D12 = Composite1
               D23 = Composite2
               D34 = S-Video

  Source     - fix "C"

  Srate      - fix "0"

  VPID       - die gewnschte Video PID (fix 301)

  APID       - die gewnschte Audio PID (fix 300), optional Mixer-Input-Device

  TPID       - die gewnschte Teletext PID (beliebig und z.Zt. belanglos)

  CA         - fix "32001" bei vdr-1.1 sowie vdr-1.2, fix "A0" bei vdr-1.3

  SID        - Service ID (siehe z.b. beiliegende "ChannelMap.h")

  NID        - for future use, currently always 0

  TID        - for future use, currently always 0

  RID        - fix "0" (oder beliebige Werte, um ansonsten doppelte
  	       Eintrge zu ermglichen)


  In die Spalte SID sollte mit Hilfe der beiliegenden "ChannelMap.h"
  die Service ID des jeweiligen Senders eingetragen werden. Dadurch
  wird es problemlos mglich, auch analoge Sender mit Hilfe des
  tvtv-Plugins zu programmieren.


  In der "examples/channels.conf.analogue.IESY" befinden sich bereits drei
  Beispieleintrge fr alternative analoge Gerte:

  -> WEBCam:1:B6C23D0:C:0:160:80:0:32001:65002:0:0:0

  Eine WEBCam, die via USB (als "/dev/video2") angeschlossen ist. Damit kann
  man sich selber im Fernsehen sehen oder aufnehmen ;-)

  -> Composite:1:B6C0D12:C:0:160:80,6:0:32001:65003:0:0:0

  Der Composite-Eingang der TV-Karte.
  Bei diesem Eintrag sieht man via "Apid2=6", wie ein alternativer
  Mixer-Eingang angegeben werden kann, sprich: normalerweise kommt der
  Ton aus dem Eingang, der im OSD-Setup eingetragen wurde. Wird jedoch
  vom Composite1 Eingang abgespielt, soll das OSS-Device "6" ("Line")
  verwandt werden.

  -> S-Video:1:B6C0D23:C:0:160:80:0:32001:65004:0:0:1

  Der S-Video-Eingang der TV-Karte. Damit kann man prima alte VHS-Video
  Kassetten in .vdr Dateien umwandeln :-)


  Nochmals zusammengefasst (aufgrund diverser Nachfragen ;-):

  Entscheidend sind die Spalten

  Frequency
    Die jeweilige Senderfrequenz in Hz (siehe z.b. xawtv, die Homepage
    des Kabelanbieters oder die Beispiele in "examples/*")

  Parameters
    In dieser Spalte werden gleich 3 Schlsselparameter festgelegt.

    1. Die Fernsehnorm. In Deutschland ist dies PAL, in Frankreich SECAM.

    2. Aus welchem ("/dev/videoX") Device kommt das Videosignal des
       bttv- oder ivtv-Treibers?
       Hierbei ist entscheidend, in welcher Reihenfolge die diversen
       Video4Linux-Treiber geladen wurden.

       Falls zuerst der bttv-Treiber geladen wird, und dann der DVB-Treiber,
       und dann eine USB-WebCam, sieht das so aus:

         /dev/video0 - bttv (TV-Karte) => "C0"
      	 /dev/video1 - DVB-Treiber     => "C12"
      	 /dev/video2 - USB-WebCam      => "C23"

       Ergo mu in die Spalte Parameters "C0" fr die TV-Karte, und
       "C23" fr die WebCam eingetragen werden.

    3. Wo kommt das Video-Signal her? (siehe auch hier xawtv), bei einer
       Hauppauge WinTV ist das z.b.:
         0 = Television  => "D0"
      	 1 = Composite1  => "D12"
      	 2 = Composite2  => "D23"
      	 3 = S-Video     => "D34"

       Bei einer PVR-Karte siehst das hingegen so aus:
         4 = Tuner 0     => "D45"
      	 0 = Composite 0 => "D0"
      	 5 = Composite 4 (via Chinch) => "D56"
      	 9 = S-Video     	      => "D89"

6. EPG
------
  Um auch fr die analogen Sender ein EPG zu erhalten, bietet dieses
  Plugin zwei Mglichkeiten an.

  Zum einen kann sowohl bei der Hardware- als auch bei der Software-
  Encoder-Lsung das externe Programm hoerzu2vdr
  (http://www.wontorra.net/filemgmt/index.php) eingesetzt werden.

  Bei Einsatz der Software-Encoder-Lsung oder den ckennedy-ivtv-Treibern 
  kann alternativ das Programm
  Nextview EPG ("http://nxtvepg.sourceforge.net") eingesetzt werden.

7. Start
--------
  Ich rate *dringend* dazu, fr den ersten Test des analogTV-Plugins den
  VDR von Hand und im Vordergrund zu starten, d.h.

    cd /video
    ./vdr -Panalogtv

  da nur so evtl. Fehlermeldungen sichtbar werden!

7.1 Start mit einer PVR-Karte
-----------------------------
  Bei Einsatz einer Hauppauge PVR-Karte mssen folgende Meldungen ausgegeben
  werden:

| analogTV: 12:30:16 analogTV version 0.9.31 starting up ...
| analogTV: 12:30:16 Detected VDR version 1.3.6
|                 W A R N I N G: Unstable development version!
| analogTV: 12:30:16 Detected AC3overDVB patch version 0.2.4
| analogTV: 12:30:17 Detected ConfigDirectory()="/video-1.3/plugins"
| analogTV: 12:30:17 CPU Intel(R) Pentium(R) 4 CPU 2.40GHz, family 15, model 2, stepping 4
| analogTV: 12:30:17 CPU measured at 2405.473MHz
| analogTV: 12:30:17 Using MMXEXT optimized memcpy()
| analogTV: 12:30:20 Switching to channel 0 on device 0
| analogTV: 12:30:20 Switching to channel 1 on device 0
> ab hier mu ein Fernsehprogramm (bei mir Channel 1: ARD - Digital) auf dem
  angeschlossenen Fernsehgert sichtbar sein.

| analogTV: 12:31:04 Switching to channel 0 on device 4
> hier habe ich mit der Fernbedienung auf KABEL1 geswitched, bei mir
  leider nur analog verfgbar

| analogTV: 12:31:04 Channel: KABEL1, SID=899, 280.25 MHz (S18), PAL
>----------------------------------------------^^^^^^^^^^
Die Senderfrequenz von "KABEL1"

| analogTV: 12:31:04 Video device: /dev/video0
| analogTV: 12:31:04 Video source: 4:
| analogTV: 12:31:04 NEW videodev=/dev/video0
>---------------------------------^^^^^^^^^^^
Das Linux-Device des PVR-Treibers

| analogTV: 12:31:04 Detected V4L version 2
| analogTV: 12:31:04 Detected capture device Vanilla iTVC15 card
| analogTV: 12:31:04 This device have a tuner
| analogTV: 12:31:04 This device is able for capturing
| analogTV: 12:31:04 This device have a onboard MPEG-Encoder
>--------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hurra, unter "/dev/video0" hat analogTV einen MPEG-Encoder (die PVR-Karte!)
gefunden

| analogTV: 12:31:04 Detected Input#0: Composite 0
| analogTV: 12:31:04 Detected Input#1: Composite 1
| analogTV: 12:31:04 Detected Input#2: Composite 2
| analogTV: 12:31:04 Detected Input#3: Composite 3
| analogTV: 12:31:04 Detected Input#4: Tuner 0
| analogTV: 12:31:04 Detected Input#5: Composite 4
| analogTV: 12:31:04 Detected Input#6: S-Video 0
| analogTV: 12:31:04 Detected Input#7: S-Video 1
| analogTV: 12:31:04 Detected Input#8: S-Video 2
| analogTV: 12:31:04 Detected Input#9: S-Video 3
>-----------------------------------^^^^^^^^^^^^^^
Diese Eingnge (der Eintrag "D" in der Parameters-Spalte der "channels.conf")
stellt diese Karte zur Verfgung

| analogTV: 12:31:04 NEW Frequency=280250 + 0
| analogTV: 12:31:04 NEW videonorm=PAL
| analogTV: 12:31:04 NEW videosource=4:Tuner 0
| analogTV: 12:31:04 NEW picture properties
| analogTV: 12:31:04 NEW PVR MPEG-Encoder parameter(s)
| analogTV: 12:31:04 PVR Norm=0:PAL
| analogTV: 12:31:04 PVR MPEG-PES, aspect 16:9, VBR, 3:2 pulldown
| analogTV: 12:31:04 PVR Videobitrate=1800000 (max=2700000)
| analogTV: 12:31:04 PVR 12 frames/GOP, 3 B-frames, GOP closed
| analogTV: 12:31:04 PVR DNR:spatial and temporal (type=0, spatial=0, temporal=0)
| analogTV: 12:31:04 PVR Audiobitrate=192 (Mask=0xa9)
| analogTV: 12:31:04 PVR Picture size=480x576
| analogTV: 12:31:04 PVR Input=4:Tuner 0
| analogTV: 12:31:04 PVR Frequency=4484
| analogTV: 12:31:04 PVR brightness=17 (50.0%) contrast=18 (52.9%) colour=17 (50.0%) hue=17 (50.0%)
| analogTV: 12:31:04 PVR saa7115 brightness=128 contrast=68 colour=64 hue=0
| analogTV: 12:31:04 PVR Volume=59636
>--------------------^^^
das Plugin programmiert die PVR-Karte, in obigem Fall:
Frequenz=280250, Fernsehnorm PAL, Video-Eingang "4:Tuner"
daneben Audio- sowie Video-Bitraten, Bildgre sowie diverse andere

| analogTV: 12:31:04 Switching to channel 139 on device 4
| analogTV: 12:31:04 NEW Audio-PID=300, Video-PID=301, PCR-PID=-1
| analogTV: 12:31:04 PVR Audio-PID=300, Video-PID=301, PCR-PID=-1
| analogTV: 12:31:04 readPVR(Apid=300, Vpid=301)
| analogTV: 12:31:05 PVR reader continuing
| analogTV: 12:31:06 skipped 34968 byte to sync on next GOP
>--------------------^^^^^^^^^^^^^^^^^^^^^
Jetzt gehts los! Ab jetzt mu die folgende Zeile angezeigt werden, wobei
sich alle Zahlen stndig ndern:

| 24.6 MB A:0:01:14.504 v:0:01:15.440 v-A:0:00:00.935 D:14.48% CPU: 4.9%
>  (1)    (2)    (3)    (4)   (5)     (6)     (7)        (8)      (9)
Diese diversen Zahlen haben folgende Bedeutung:
(1) Die Gesamtmenge an MPEG-Daten, die bislang durch das analogTV-Plugin
    durchgelaufen sind
(2) "A" = die Audio-PTS ist aufsteigend
    "a" = die Audio-PTS ist absteigend
    "?" = die Audio-PTS bleibt gleich
(3) Die Audio-PTS
(4) "V" = die Video-PTS ist aufsteigend
    "v" = die Video-PTS ist absteigend
    "?" = die Video-PTS bleibt gleich
(5) Die Video-PTS
(6) "V-A" = die Video-PTS luft der Audio-PTS voraus
    "A-V" = die Audio-PTS luft der Video-PTS voraus
(7) Die Differenz zwischen Audio- und Video-PTS
(8) Die Gesamtmenge an gedroppten MPEG-Daten
    (in der Hauptsache irrelevante Pids)
(9) Die Belastung der Haupt-CPU

Jetzt mu (im obigen Beispiel) das Fernsehprogramm von KABEL1 auf dem
angeschlossenen Fernsehgert sichtbar sein!

Nun schalte ich wieder um - zurck auf einen digitalen Sender.
Zuerst zeigt das Plugin eine Statistik ber die dargestellten MPEG-Frames
an:
| analogTV: 12:32:49 TS: Stats video (301): 139458 packets
| analogTV: 12:32:49 TS: Stats audio (300): 14616 packets
| analogTV: 12:32:49 TS: Stats PCR   (302): 0 packets
> Die Audio- Video- sowie (evtl.) PCR-Packets. Jedes dieser Packets ist
  188 Byte gro - ein Transport-Stream Packet.

| analogTV: 12:32:49 TS: Stats       (0): 12901 packets
| analogTV: 12:32:49 TS: Stats       (1024): 12901 packets
> sonstige Pids

| analogTV: 12:32:49 TS: Stats     skipped: 25988 packets
> die Gesamtmenge der weggeworfenen TS-Packets

| analogTV: 12:32:49 TS: Stats  duplicates: 0 packets
> die Gesamtmenge der doppelten TS-Packets (mu stets 0 sein)

| analogTV: 12:32:49 TS: Stats got 0 TS errors, 0 TS continuity errors
> die Gesamtmenge an defekten TS-Packets (mu stets 0 sein), sowie
  die Gesamtmenge der nicht fortlaufend durchnummerierten
  TS-Packets (mu stets 0 sein)

| analogTV: 12:32:49 TS: Stats 33816688 bytes total, 4885744 skipped
> die Gesamtmenge der durch das Plugin gelaufenen sowie bersprungenen Bytes

| analogTV: 12:32:49 PVR reader suspended
> das Plugin ist nun suspendiert

| analogTV: 12:33:24 Ringbuffer max usage: 216140 byte (out of 2097152 byte) = 10.3%
| analogTV: 12:33:24 Largest data packet from PVR-card was 88064 byte long
| analogTV: 12:33:24 1069 PES frame(s), 180707 TS frame(s) processed (total, incl. dropped)
| analogTV: 12:33:24 29056960 byte PES, 33972916 byte TS (total, incl. dropped)
| analogTV: 12:33:24 0 TS frame(s) dropped (ringbuffer was full)
| analogTV: 12:33:24 0 PES frame(s) dropped
| analogTV: 12:33:24 35 PES frame(s) dropped while not on a analogue channel
> diverse statistische Daten ber den Ringbuffer zwischen der PVR-Karte und
  dem PES nach TS remuxer.

| analogTV: 12:33:24 PVR reader stopped.
> nach einer gewissen Zeit wird das Plugin vollstndig gestoppt


7.2 Start mit einem Software-Encoder
------------------------------------
  Bei Einsatz eines Software-Encoders mssen folgende Meldungen ausgegeben
  werden:

| analogTV: 12:34:14 analogTV version 0.9.31 starting up ...
| analogTV: 12:34:14 Detected VDR version 1.3.6
|                 W A R N I N G: Unstable development version!
| analogTV: 12:34:14 Detected ElchiAIO4d patch
| analogTV: 12:34:14 Detected AC3overDVB patch version 0.2.4
| analogTV: 12:34:16 Detected ConfigDirectory()="/video-1.3/plugins"
| analogTV: 12:34:16 CPU AMD Athlon(tm) Processor, family 6, model 4, stepping 4
| analogTV: 12:34:16 CPU measured at 1045.618MHz
| analogTV: 12:34:16 Using MMXEXT optimized memcpy()
| analogTV: 12:34:16 Switching to channel 0 on device 0
| analogTV: 12:34:16 Switching to channel 1 on device 0
> ab hier mu ein Fernsehprogramm (bei mir Channel 1: ARD - Digital) auf dem
  angeschlossenen Fernsehgert sichtbar sein.

| analogTV: 12:34:35 Switching to channel 0 on device 0
| analogTV: 12:34:35 Switching to channel 0 on device 4
| analogTV: 12:34:35 Channel: KABEL1, SID=899, 280.25 MHz (S18), PAL
>----------------------------------------------^^^^^^^^^^
Die Senderfrequenz von "KABEL1"

| analogTV: 12:34:35 Video device: /dev/video0
| analogTV: 12:34:35 Video source: 0:
| analogTV: 12:34:35 NEW videodev=/dev/video0
>---------------------------------^^^^^^^^^^^
Das Linux-Device des BTTV-Treibers

| analogTV: 12:34:35 Detected V4L version 2
| analogTV: 12:34:35 Detected capture device BT878(Pinnacle PCTV Studio/Ra)
| analogTV: 12:34:35 This device have a tuner
| analogTV: 12:34:35 This device is able for capturing
Hurra, unter "/dev/video0" hat analogTV eine Pinnacle PCTV Studio/Ra-
Karte gefunden

| analogTV: 12:34:35 Detected Input#0: Television
| analogTV: 12:34:35 Detected Input#1: Composite1
| analogTV: 12:34:35 Detected Input#2: Composite2
| analogTV: 12:34:35 Detected Input#3: S-Video
>-----------------------------------^^^^^^^^^^^^^^
Diese Eingnge (der Eintrag "D" in der Parameters-Spalte der "channels.conf")
stellt diese Karte zur Verfgung

| analogTV: 12:34:35 NEW Frequency=280250 + 0
| analogTV: 12:34:35 NEW videonorm=PAL
| analogTV: 12:34:35 NEW videosource=0:Television
| analogTV: 12:34:35 NEW picture properties
| analogTV: 12:34:35 setPictureProperties(brightness=18 (52.9%), contrast=14 (41.2%), colour=16 (47.1%), hue=15 (44.1%))
| analogTV: 12:34:35 tune(4484) [frequency=280250, freqOffset=16, ofs=0]
| analogTV: 12:34:35 setNorm(0:PAL (0xff))
>--------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
das Plugin programmiert die TV-Karte, in obigem Fall:
Frequenz=280250, Fernsehnorm PAL, Video-Eingang "0:Television"

| analogTV: 12:34:35 Switching to channel 141 on device 4
| analogTV: 12:34:35 NEW Audio-PID=300, Video-PID=301, PCR-PID=-1
| analogTV: 12:34:35 runEncoder(Apid=300, Vpid=301)
| analogTV: 12:34:35 mp1e -j -e 1 -t 256 -g IBBPBBPBBPBBP -p /dev/dsp -c /dev/video0 -x /dev/mixer -d 0 -a 0 -b 5000000 -B 160 -r 14,60 -s 352x288 -S 44.1 -F 8 -G 368x288 -o /tmp/.analogtv.avi &
>--------------------^^^^
Exakt hier passiert das wichtigste berhaupt: Der Software-Encoder wird
gestartet

| analogTV: 12:34:35 Switching to channel 141 on device 0
| analogTV: 12:34:35 Sucessfully set encoder priority to -15
| analogTV: 12:34:35 flush_buffer()
| analogTV: 12:34:36 skipped 10528 byte to sync on next GOP
Jetzt gehts los! Ab jetzt mu die folgende Zeile angezeigt werden, wobei
sich alle Zahlen stndig ndern:

| 20.9 MB A:0:00:27.661 V:0:00:27.714 V-A:0:00:00.053 D:14.00% CPU:36.5%
>  (1)    (2)    (3)    (4)   (5)     (6)     (7)        (8)      (9)
Diese diversen Zahlen haben folgende Bedeutung:
(1) Die Gesamtmenge an MPEG-Daten, die bislang durch das analogTV-Plugin
    durchgelaufen sind
(2) "A" = die Audio-PTS ist aufsteigend
    "a" = die Audio-PTS ist absteigend
    "?" = die Audio-PTS bleibt gleich
(3) Die Audio-PTS
(4) "V" = die Video-PTS ist aufsteigend
    "v" = die Video-PTS ist absteigend
    "?" = die Video-PTS bleibt gleich
(5) Die Video-PTS
(6) "V-A" = die Video-PTS luft der Audio-PTS voraus
    "A-V" = die Audio-PTS luft der Video-PTS voraus
(7) Die Differenz zwischen Audio- und Video-PTS
(8) Die Gesamtmenge an gedroppten MPEG-Daten
    (in der Hauptsache irrelevante Pids)
(9) Die Belastung der Haupt-CPU

Jetzt mu (im obigen Beispiel) das Fernsehprogramm von KABEL1 auf dem
angeschlossenen Fernsehgert sichtbar sein!

Nun schalte ich wieder um - zurck auf einen digitalen Sender.
Zuerst zeigt das Plugin eine Statistik ber die dargestellten MPEG-Frames
an:
| PES: Stats 23849648 bytes total, 0 skipped, 0 zero-gaps. 0 slow syncs, 0 saved headers
| PES: Stats C0: 374 packets
| PES: Stats E0: 11282 packets
>----
Dies sind statistische Werte ber die Anzahl bearbeiteter PES-Packete
vom VDR

| analogTV: 12:35:14 TS: Stats video (301): 135889 packets
| analogTV: 12:35:14 TS: Stats audio (300): 4488 packets
> Die Audio- Video- sowie (evtl.) PCR-Packets. Jedes dieser Packets ist
  188 Byte gro - ein Transport-Stream Packet.

| analogTV: 12:35:14 TS: Stats       (0): 11383 packets
| analogTV: 12:35:14 TS: Stats       (1024): 11383 packets
> sonstige Pids

| analogTV: 12:35:14 TS: Stats     skipped: 22822 packets
> die Gesamtmenge der weggeworfenen TS-Packets

| analogTV: 12:35:14 TS: Stats  duplicates: 0 packets
> die Gesamtmenge der doppelten TS-Packets (mu stets 0 sein)

| analogTV: 12:35:14 TS: Stats got 0 TS errors, 0 TS continuity errors
> die Gesamtmenge an defekten TS-Packets (mu stets 0 sein), sowie
  die Gesamtmenge der nicht fortlaufend durchnummerierten
  TS-Packets (mu stets 0 sein)

| analogTV: 12:35:14 TS: Stats 30670884 bytes total, 4290536 skipped
> die Gesamtmenge der durch das Plugin gelaufenen sowie bersprungenen Bytes

| analogTV: 12:35:14 Switching to channel 0 on device 0
| analogTV: 12:35:14 Switching to channel 1 on device 0


8. Bedienung
------------
  Einfach auf den gewnschten Sender wechseln und gucken oder aufnehmen ;-)

  Da dieses Plugin fr den VDR eine vollstndige DVB-Karte darstellt, sind
  alle VDR-Features (wie Timeshift, Timergesteuerte Aufnahmen usw.) ganz
  normal nutzbar.

  Besser ausgedrckt entspricht dieses Plugin einer budget-DVB-Karte, was
  bedeutet, da man den VDR zwar durchaus nur mit einer analogen TV-Karte
  und diesem Plugin verwenden kann, aber *sehen* kann man nichts!

  Um das Fernsehprogramm auch zu sehen, bentigt man *auf*jeden*Fall* eine
  Karte mit einem Hardware-MPEG-Decoder (full featured DVB-, DXR3- oder
  Hollywood-Plus-Karte). Diese TV-Out-Karte mu sich nicht in dem Rechner
  mit der Analog-TV-Karte befinden, sondern kann Dank des streamdev-Plugin
  auch in irgend einem anderen (ber LAN erreichbaren) Rechner stecken!

  Alternativ kann Dank des pvr350-Plugins der Hardware-MPEG-Decoder der
  PVR-350-Karte verwendet werden.

  ber das Hauptmen des VDR ("Setup AnalogTV") oder ber
  "Setup->Plugins->analogtv" kommt man in die Einstellungen fr den
  analogTV-Plugin. Z.Zt. werden die Einstellungen *nur* abgespeichert, wenn
  das Menu via Setup->Plugins->analogtv aufgerufen wird!


  Dieses Setup ist in mehrere Kapitel unterteilt:

    - Picture Properties ---
      Brightness
      Contrast
      Colour
      Hue
      Finetune

   Diese Einstellungen sind nur sichtbar, wenn z.Zt. ein analoger Sender
   eingestellt ist. Hier lassen sich in Echtzeit (d.h. alle Einstellungen
   werden sofort wirksam) Helligkeit, Kontrast, Farbe, Sttung sowie ein
   Feinabgleich der Senderfrequenz einstellen.

    - EPG ---
      EPG from
      External program
      EPG provider
      Autoupdate (hours)
      Theme language

   Hier werden die konkreten Einstellungen fr die Zufhrung des EPG
   vorgenommen - siehe dazu das entsprechende EPG-Kapitel.

   - MPEG Encoder ---

 - sync hack
   sollte immer auf "YES" stehen.
   Bewirkt, da das Plugin beim Umschalten auf einen analogen Sender
   alle MPEG-Frames (von der PVR-Karte) wegwirft, bis ein neues GOP
   (Group-of-pictures) beginnt.

 - wining hack
   kann auf "NO" stehen.
   Bewirkt, das beim Umschalten auf einen analogen Sender kein "weinerlicher"
   Ton entsteht.

 - picture properties hack
   Kann auf "NO" bleiben.
   Das ist fr Leute, die noch Video4Linux-1 verwenden. Dort ist mehrfaches
   ffnen von "/dev/video0" nicht mglich. Dieser "Hack" umgeht dieses
   Problem.

 - stuttering hack
   Sollte auf "YES" stehen.
   Entfernt eines von zwei Ton-Stotter-Problemen der PVR-Karten.

9. Externe Resourcen
--------------------
  Z.b. unter http://www.koneczny.info/Linux/VDR/PVR.html ist eine Anleitung
  zu finden, wie die Infrarot-Fernbedienung der PVR-Karte nutzbar gemacht
  werden kann.

