Pvrinput-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Autor: Andreas Regel (bis 2006). Weiterentwicklung seitdem durch Winfried Koehler und Martin Dauskardt

Dieses Plugin ermöglicht es, analoges TV (und UKW-Radio) mit dem VDR in Verbindung mit einer vom Plugin unterstützen PVR-Karte zu benutzen. Die Funktion ist prinzipiell die gleiche wie beim analogtv-plugin, die Bedienung und Einrichtung jedoch deutlich einfacher.

Hinweis
Hinweis

Ab ivtv-0.8.0 wurde die Treiber Struktur geändert, so dass die letzte reguläre Version 0.1.1 von pvrinput damit nicht mehr funktioniert.


Für die Erstellung der channels.conf siehe die Datei README zum Plugin. Alternativ kann die channels.conf auch mit w pvrscan oder dem Wirbelscan-plugin erstellt werden, die einen automatischen Kanalsuchlauf durchführen.


Hardwareanforderungen

  • Unterstützt werden derzeit die folgenden analogen TV-Karten mit Hardware-Enconder, Details siehe PVR Karten:
    • PVR150
    • PVR250
    • PVR350 (Encoder-Teil)
    • PVR500
    • PVRUSB2 (ab 2008-06-01)

Softwareanforderungen

  • ivtv Treiber, empfohlen wird ivtv-Treiber 1.x.x.
  • pvrusb2 Treiber im Falle der pvrusb2


Konfiguration

ab Version 2008-06-01 ist eine alternative Kanalsyntax möglich, falls VDR mit dem IPTV pluginparamspatch gepacht wurde. Hier ein Beispiel:

Radio Fritz!;wirbelscan:102600:PVRINPUT|RADIO:P:0:301:300:305:0:1642:0:0:1
CCIR I/III E5;wirbelscan:175250:PVRINPUT|TV|PAL:P:0:301:300:305:0:2804:0:0:6
CCIR SL/SH SE4;wirbelscan:126250:PVRINPUT|TV|PAL:P:0:301:300:305:0:2020:0:0:17
CCIR SL/SH SE20;wirbelscan:294250:PVRINPUT|TV|PAL:P:0:301:300:305:0:4708:0:0:33
UHF 21;wirbelscan:471250:PVRINPUT|TV|PAL:P:0:301:300:305:0:7540:0:0:55
S-Video 1;wirbelscan:1:PVRINPUT|SVIDEO1|PAL:P:0:301:300:305:0:9001:0:0:0
Composite 1;wirbelscan:1:PVRINPUT|COMPOSITE1|PAL:P:0:301:300:305:0:9002:0:0:0
S-Video 2;wirbelscan:1:PVRINPUT|SVIDEO2|PAL:P:0:301:300:305:0:9003:0:0:0
Composite 2;wirbelscan:1:PVRINPUT|COMPOSITE2|PAL:P:0:301:300:305:0:9004:0:0:0
Composite 3;wirbelscan:1:PVRINPUT|COMPOSITE3|PAL:P:0:301:300:305:0:9005:0:0:0

Die Identifier sind

  1. PVRINPUT
  2. TV, RADIO, COMPOSITE0..COMPOSITE4, SVIDEO0..SVIDEO3
  3. (optional: Angabe der Videonorm) PAL, SECAM, NTSC
  4. (optional: Angabe der TV-Karte) CARD0..CARD7

Bitte beachten:

  • 'P' wie Plugin statt 'C' wie Kabel-TV in der channels.conf angeben!
  • Es wird keine CA-ID mehr angegeben

Mit der neuen Syntax kann erstmals festgelegt werden auf welcher TV-Karte ein externer Eingang benutzt wird. Die neue Syntax wird ebenso von wirbelscan ab Version 0.0.4b unterstützt.

Das folgende bash script erlaubt die Konvertierung einer existierenden channels.conf mit alter Syntax in die neue Syntax.

Datei
channel-conv.sh
#!/bin/bash
# new syntax needs vdr with iptv patch!
# have phun, --wirbel 20090526

if [ -z "$2" ]   # expecting two args
then
  echo "Usage: `basename $0` channels.conf.old channels.conf"
  echo " "
  echo "converts existing pvrinput channels.conf to new channels.conf syntax."
  echo " * first arg  is path to old channels.conf"
  echo " * second arg is path to new channels.conf"
  echo " "
  echo "-- MISSING ARGUMENTS. EXITING NOW. --"
  exit -1
else
  OLDFILE=$1
  NEWFILE=$2
fi


NUM=0
nsid=0
need_ext_inputs=0

while IFS=: read name freq param source srate vpid apid tpid caid sid nid tid rid
do
  if [ -z "$name" ]; then
    echo ":"$freq"" >> $NEWFILE
    continue
  fi

  if [[ "$caid" == "A1" ]]; then

    if (( freq < 10000 )); then
      # ext input; *impossible* to convert. skip them now and add new(!) entries at the end of conf.
      need_ext_inputs=1
      continue
    fi

    let "nsid=(500 + freq*16)/1000"
    echo -n "$name:$freq:PVRINPUT|" >> $NEWFILE
    if (( freq < 87500 )) || (( freq > 108000 )); then
       echo -n "TV" >> $NEWFILE
       norm="PAL"
       vtest=$(echo $param | grep "I0")
       if [[ ! -z "$vtest" ]]; then
         norm="NTSC"
       fi
       vtest=$(echo $param | grep "I1")
       if [[ ! -z "$vtest" ]]; then
         norm="SECAM"
       fi
       echo -n "|$norm:P:0:301:300:305:0:" >> $NEWFILE
    else
       echo -n "RADIO:P:0:0:300:0:0:" >> $NEWFILE
    fi
    echo "$nsid:$nid:$tid:$rid" >> $NEWFILE

  else
    # non-pvrinput channel; copy n paste it
    echo "$name:$freq:$param:$source:$srate:$vpid:$apid:$tpid:$caid:$sid:$nid:$tid:$rid" >> $NEWFILE
  fi

  NUM=$NUM+1
done < $OLDFILE   # I/O redirection.


# create ext inputs if needed; no scanning - just a dumb adding all of them.
if (( $need_ext_inputs == 1 )); then
  ext_sid=9000
  echo -n ":ext analog inputs" >> $NEWFILE && echo "" >> $NEWFILE
  for (( i=0; i<=4; i++ )); do
     echo "Composite $i;pvrinput:1:PVRINPUT|COMPOSITE$i:P:0:301:300:0:0:$ext_sid:0:0:0" >> $NEWFILE
     let "ext_sid=ext_sid+1"
  done
  for (( i=0; i<=3; i++ )); do
     echo "S-Video $i;pvrinput:1:PVRINPUT|SVIDEO$i:P:0:301:300:0:0:$ext_sid:0:0:0" >> $NEWFILE
     let "ext_sid=ext_sid+1"
  done
fi


Sonstiges

Betrieb mit vdr-1.6/1.7

Für VDR ab Version 1.6.0 muss vdr gepatcht werden, siehe Ordner patches.

Probleme

  • Beim Umschalten tritt sporadisch ein Flackern im oberen Drittel des Bildes auf: Dieses Problem haben offenbar nur Karten mit einem cx23415-Chip (PVR350, ältere PVR250). Die Lösung besteht darin, den Encoder vor dem Kanalwechsel zu stoppen und nach dem Tunen wieder zu starten. In der Version pvrinput-1.0.0_20070523 ist hierzu der "Anti-Flacker workaround" im plugin-setup zu aktivieren. siehe auch http://www.gossamer-threads.com/lists/ivtv/devel/32970
  • neuere Versionen des Plugins lassen sich nicht kompilieren: Fast immer liegt es daran, dass in /usr/include/linux eine veraltete Version von videodev2.h vorhanden ist (siehe README)
  • Seit August 2007 erfordert der ivtv-Treiber 1.x.x im v4l-dvb hg einen Encoder-Stop/Neustart, wenn der Input gewechselt oder auf den radio tuner umgeschaltet wird. Diese Änderung ist auch in Kernel 2.6.24 eingeflossen. In pvrinput-1.0.0_20070523 muss hierzu der "Anti-Flacker workaround" im plugin-setup aktiviert werden. Seit der Entwicklerversion aus 11/2007 (Link siehe unten) wird der Encoder daher nun immer automatisch während des Umschaltens gestoppt. Aufgrund der zahlreichen Treiberverbesserungen erhöht dies die Umschaltdauer inzwischen nur minimal.

Links

  1. ivtv Treiber
  2. ivtv Mailing lists
  3. Homepage des originalen Plugins (Versionen nicht mehr lauffähig)
  4. aktuelle Version (2008-10-4)
  5. aktuelle Version (2008-10-4, Mirror)
In anderen Sprachen