Pvrinput-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Hardwareanforderungen)
(Softwareanforderungen)
Zeile 26: Zeile 26:
  
 
==Softwareanforderungen==
 
==Softwareanforderungen==
* '''ivtv Treiber''', empfohlen wird ivtv-Treiber 1.x.x.
+
* '''ivtv Treiber'''(Version 1.x.x., seit 2.6.22 im Kernel)
* '''pvrusb2 Treiber''' im Falle der pvrusb2
+
* '''pvrusb2 Treiber''' im Falle der PVRUSB2 oder HVR 1900/1950
 +
* '''hdpvr Treiber''' im Falle der HD PVR 
  
 
<!-- ==Bedienung== -->
 
<!-- ==Bedienung== -->

Version vom 3. April 2010, 17:55 Uhr

Inhaltsverzeichnis

Beschreibung

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

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.

Für die Erstellung der channels.conf siehe die Datei README zum Plugin. Alternativ kann bis vdr 1.7.12 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)
    • HVR 1900 (ab 2008-06-01) -siehe Hinweise-
    • HD PVR (ab Version 2010-03-27-rc1)

Softwareanforderungen

  • ivtv Treiber(Version 1.x.x., seit 2.6.22 im Kernel)
  • pvrusb2 Treiber im Falle der PVRUSB2 oder HVR 1900/1950
  • hdpvr Treiber im Falle der HD PVR


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.
  • Die HVR 1900 ist ein Hybridgerät. Sie enthält ebenfalls einen DVB-T-Empfänger. Analog und DVB können jedoch nicht gleichzeitig benutzt werden. Sobald vdr das DVB device gefunden hat, steht somit der analoge teil für pvrinput nicht mehr zur Verfügung. Lösung: Beim Laden des Treibermoduls pvrusb2 muss mit der Moduloption adapter_nr eine device Nummer vorgegeben werden, die eine Nummer über dem letzten vorhandenen DVB-Gerät liegt.
    • Beispiel: vdr soll nur die FF-Karte (/dev/dvb/adapter0) verwenden. Man lädt pvrusb2 nun wie folgt: "modprobe pvrusb2 adapter_nr=2". vdr findet beim Start adapter0 und bricht die Suche ab, nachdem auf adapter1 kein Gerät gefunden wurde. Somit wird adapter3 von vdr nicht geöffnet, und pvrinput kann das analoge device öffnen.

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