Pvrinput-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Softwareanforderungen)
(Konfiguration)
Zeile 42: Zeile 42:
  
 
==Konfiguration==
 
==Konfiguration==
ab Version 2008-06-01 ist eine '''alternative Kanalsyntax''' möglich, ''falls VDR mit dem IPTV pluginparamspatch gepacht wurde''. Hier ein Beispiel:
+
ab Version 1.7.0 wird nur noch die neue Kanalsyntax (abgeleitet vom iptv-Plugin) unterstützt. Hierzu muss vdr mit dem pluginparampatch gepatcht sein.
<pre>
+
Ab vdr 1.7.13 wurde die neue Klasse cSourceParam eingeführt, die den pluginparam-Patch obsolet macht. Unterstützung hierfür ist in pvrinput ab der Entwicklerversion 2010-04-03-rc1 enthalten.
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
+
</pre>
+
Die Identifier sind
+
#PVRINPUT
+
#TV, RADIO, COMPOSITE0..COMPOSITE4, SVIDEO0..SVIDEO3
+
#(optional: Angabe der Videonorm) PAL, SECAM, NTSC
+
#(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.
+
Die [http://projects.vdr-developer.org/repositories/entry/plg-pvrinput/README README des plugins] enthält eine genaue Beschreibung des Aufbaus der channels.conf für beide Syntax-Varianten. In den Plugin-Sourcen sind zudem [http://projects.vdr-developer.org/repositories/browse/plg-pvrinput/example Beispiele für die channels.conf-Einträge und Konvertierungsscripte] enthalten.
 
+
Das folgende bash script erlaubt die Konvertierung einer existierenden channels.conf mit alter Syntax in die neue Syntax.
+
{{Box Datei |channel-conv.sh|
+
<pre>
+
#!/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
+
</pre>
+
}}
+
  
 
==Sonstiges==
 
==Sonstiges==

Version vom 3. April 2010, 19:10 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 1.7.0 wird nur noch die neue Kanalsyntax (abgeleitet vom iptv-Plugin) unterstützt. Hierzu muss vdr mit dem pluginparampatch gepatcht sein. Ab vdr 1.7.13 wurde die neue Klasse cSourceParam eingeführt, die den pluginparam-Patch obsolet macht. Unterstützung hierfür ist in pvrinput ab der Entwicklerversion 2010-04-03-rc1 enthalten.

Die README des plugins enthält eine genaue Beschreibung des Aufbaus der channels.conf für beide Syntax-Varianten. In den Plugin-Sourcen sind zudem Beispiele für die channels.conf-Einträge und Konvertierungsscripte enthalten.

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