Pvrinput-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Aktualisierung, da vdr seit 1.724 das ganze /dev/dvb directory scannt und nicht mehr die Suche in einer Loop-Schleife abbricht, wenn eine adapater-Nr. nicht vorhanden ist)
 
(38 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
'''Autor:''' Andreas Regel (bis 2006). Weiterentwicklung seitdem durch Winfried Koehler und Martin Dauskardt
+
'''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 [[HauppaugePVR|PVR-Karte]] zu benutzen. Die Funktion ist prinzipiell die gleiche wie beim [[analogtv-plugin]], die Bedienung und Einrichtung jedoch deutlich einfacher.
+
Dieses Plugin ermöglicht es, analoges TV und UKW-Radio mit dem VDR in Verbindung mit einer vom Plugin unterstützen [[HauppaugePVR|PVR-Karte]] zu benutzen.
{{Box 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.
+
  
<!-- ===Status=== -->
+
===Status===
<!--
+
Letztes Update 04/2012
==Bilder==
+
{|
+
|[[Bild:pvrinput-plugin-00.jpg|thumb|none|''kurze beschreibung'']]
+
|[[Bild:pvrinput-plugin-01.jpg|thumb|none|''kurze beschreibung'']]
+
|}
+
-->
+
  
 
==Hardwareanforderungen==
 
==Hardwareanforderungen==
* Unterstützt werden derzeit die folgenden analogen TV-Karten mit Hardware-Enconder, Details siehe [[HauppaugePVR|PVR Karten]]:
+
* Unterstützt werden derzeit [[HauppaugePVR|die folgenden analogen TV-Karten mit MPEG-Encoder]]:
**PVR150
+
**PVR-150
**PVR250
+
**PVR-250
**PVR350 (Encoder-Teil)
+
**PVR-350
**PVR500
+
**PVR-500
**PVRUSB2 (ab 2008-06-01)
+
**PVR-USB2
 +
**HVR-1900
 +
**HVR-1950
 +
**HVR-1955 und HVR-1975 müssten ebenfalls funktionieren (Unterstützung für den pvrusb2-Treiber kam im Juni 2019 in den media_tree.git von linuxtv)
 +
**HD PVR
 +
 
 +
 
  
 
==Softwareanforderungen==
 
==Softwareanforderungen==
* '''ivtv Treiber''', empfohlen wird ivtv-Treiber 1.x.x.
+
Einer der folgenden Treiber, je nach TV Karte:
* '''pvrusb2 Treiber''' im Falle der pvrusb2
+
* '''ivtv Treiber''' für PVR150/250/350/500, im Kernel enthalten
 
+
* '''pvrusb2 Treiber''' für PVR USB2.0, HVR-1900, HVR-1950
<!-- ==Bedienung== -->
+
* '''hdpvr Treiber''' für HD PVR
<!-- ===[[SVDRP]] Befehle=== -->
+
<!-- ==Hardwareanforderungen== -->
+
<!-- ==Softwareanforderungen== -->
+
<!-- ==Installation== -->
+
<!-- ===Optionen=== -->
+
<!-- ===Patches=== -->
+
<!-- ==Konfiguration== -->
+
<!-- ===Einstellungen=== -->
+
<!-- ===Parameter=== -->
+
  
 
==Konfiguration==
 
==Konfiguration==
ab Version 2008-06-01 ist eine '''alternative Kanalsyntax''' möglich, ''falls VDR mit dem IPTV pluginparamspatch gepacht wurde''. Hier ein Beispiel:
 
<pre>
 
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.
+
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.
  
Das folgende bash script erlaubt die Konvertierung einer existierenden channels.conf mit alter Syntax in die neue Syntax.
+
Die [http://projects.vdr-developer.org/repositories/entry/plg-pvrinput/README README des plugins] enthält eine genaue Beschreibung des Aufbaus der channels.conf. In den Plugin-Sourcen sind zudem [http://projects.vdr-developer.org/repositories/browse/plg-pvrinput/example Beispiele für die channels.conf-Einträge enthalten.
{{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
+
==Sonstiges==
then
+
===TV-Karten mit BlackBird Design===
  echo "Usage: `basename $0` channels.conf.old channels.conf"
+
TV-Karten nach dem blackbird Design, wie z.B. die HVR-1300, waren trotz Anstrengungen nicht sinnvoll in das pvrinput Plugin zu integrieren. Vom Betrieb solcher TV-Karten mit dem pvrinput Plugin ist abzuraten.
  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
+
  
 +
===Hybride von Digital TV und Analogem TV===
 +
Einige TV-Karten, wie z.B. die Hauppauge HVR 1900 sind Hybridgeräte, die ihre Hardware zwischen analogem und digitalem TV teilen. Analoges TV und DVB können deswegen nicht gleichzeitig benutzt werden. Sobald VDR den digitalen DVB Teil gefunden hat und benutzt, steht der analoge Teil für pvrinput nicht mehr zur Verfügung.
  
NUM=0
+
* Lösung: Zunächst muss beim Laden des pvrusb2-Treibers mit der Moduloption adapter_nr eine bestimmte device Nummer vorgegeben werden.
nsid=0
+
**Beispiel: vdr soll nur die DVB-Karten /dev/dvb/adapter0 und /dev/dvb/adapter1 verwenden. Man lädt pvrusb2 nun wie folgt: "modprobe pvrusb2 adapter_nr=2". Zusätzlich muss vdr mit den Optionen "--device=0 --device=1" vorgegeben werden, dass nur adapter 0 und 1, nicht aber der adapter2 (DVB-device der HVR1900) verwendet werden soll. Somit wird letzteres von vdr nicht geöffnet, und pvrinput kann das analoge device der HVR1900 öffnen.
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==
+
===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)
+
==Entwicklerversion und aktuelle Version==
 +
git clone git://projects.vdr-developer.org/vdr-plugin-pvrinput.git pvrinput
  
* 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.
 
<!-- ===Tipps=== -->
 
<!-- ===Wunschliste=== -->
 
<!-- ===Snapshot=== -->
 
  
 
==Links==
 
==Links==
# [http://www.ivtvdriver.org ivtv Treiber]
+
# [http://projects.vdr-developer.org/projects/plg-pvrinput Homepage des Plugins]
# [http://www.gossamer-threads.com/lists/ivtv/ ivtv Mailing lists]
+
# [http://home.arcor.de/andreas.regel/files/pvrinput Homepage des originalen Plugins (Versionen nicht mehr lauffähig)]
+
<!--
+
# [http://drseltsam.device.name/vdr/pvr/src/pvrinput/vdr-pvrinput-1.0.0_20070523.tgz weiterentwickelte Version 1.0.0_20070523 für ivtv-Treiber >= 0.8]
+
# [http://wirbel.htpc-forum.de/unofficial_stuff/vdr-pvrinput-1.0.0_20070523.tgz weiterentwickelte Version 1.0.0_20070523 für ivtv-Treiber >= 0.8 (Mirror)]
+
# [http://www.vdr-portal.de/board/thread.php?threadid=65311 Announce-Thread zur Version 1.0.0_20070523 im vdrportal-Forum]
+
# [http://drseltsam.device.name/vdr/pvr/src/pvrinput/pvrinput-2007-11-29.tgz Entwickler-Snapshot aus 11/2007 mit zahlreichen Verbesserungen, empfohlen für ivtv-Treiber 1.x.x]
+
# [http://drseltsam.device.name/vdr/pvr/src/pvrinput/ aktuelle Version, empfohlen insbesondere für vdr 1.6]
+
# [http://www.vdr-portal.de/board/thread.php?threadid=77457 Announce-Thread zur Version 2008-07-05 im vdrportal-Forum]
+
# [http://drseltsam.device.name/vdr/pvr/src/pvrinput/vdr-pvrinput-2008-07-05.tgz weiterentwickelte Version 1.0.0_2008-07-05 für ivtv-Treiber >= 0.8 und vdr 1.6.0 (getestet auf OpenSuSE 11.0)]
+
-->
+
#[http://drseltsam.device.name/vdr/pvr/src/pvrinput/vdr-pvrinput-2008-10-04.tgz aktuelle Version (2008-10-4)]
+
#[http://wirbel.htpc-forum.de/unofficial_stuff/vdr-pvrinput-2008-10-04.tgz aktuelle Version (2008-10-4, Mirror)]
+
+
  
 
[[Kategorie:Plugins]]
 
[[Kategorie:Plugins]]
 +
[[Kategorie:Empfänger-Plugins]]
 
[[Kategorie:AnalogTV]]
 
[[Kategorie:AnalogTV]]
 
{{i18n|pvrinput-plugin}}
 
{{i18n|pvrinput-plugin}}

Aktuelle Version vom 22. Februar 2020, 15:22 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

[Bearbeiten] Status

Letztes Update 04/2012

[Bearbeiten] Hardwareanforderungen

  • Unterstützt werden derzeit die folgenden analogen TV-Karten mit MPEG-Encoder:
    • PVR-150
    • PVR-250
    • PVR-350
    • PVR-500
    • PVR-USB2
    • HVR-1900
    • HVR-1950
    • HVR-1955 und HVR-1975 müssten ebenfalls funktionieren (Unterstützung für den pvrusb2-Treiber kam im Juni 2019 in den media_tree.git von linuxtv)
    • HD PVR


[Bearbeiten] Softwareanforderungen

Einer der folgenden Treiber, je nach TV Karte:

  • ivtv Treiber für PVR150/250/350/500, im Kernel enthalten
  • pvrusb2 Treiber für PVR USB2.0, HVR-1900, HVR-1950
  • hdpvr Treiber für HD PVR

[Bearbeiten] Konfiguration

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.

Die README des plugins enthält eine genaue Beschreibung des Aufbaus der channels.conf. In den Plugin-Sourcen sind zudem [http://projects.vdr-developer.org/repositories/browse/plg-pvrinput/example Beispiele für die channels.conf-Einträge enthalten.

[Bearbeiten] Sonstiges

[Bearbeiten] TV-Karten mit BlackBird Design

TV-Karten nach dem blackbird Design, wie z.B. die HVR-1300, waren trotz Anstrengungen nicht sinnvoll in das pvrinput Plugin zu integrieren. Vom Betrieb solcher TV-Karten mit dem pvrinput Plugin ist abzuraten.

[Bearbeiten] Hybride von Digital TV und Analogem TV

Einige TV-Karten, wie z.B. die Hauppauge HVR 1900 sind Hybridgeräte, die ihre Hardware zwischen analogem und digitalem TV teilen. Analoges TV und DVB können deswegen nicht gleichzeitig benutzt werden. Sobald VDR den digitalen DVB Teil gefunden hat und benutzt, steht der analoge Teil für pvrinput nicht mehr zur Verfügung.

  • Lösung: Zunächst muss beim Laden des pvrusb2-Treibers mit der Moduloption adapter_nr eine bestimmte device Nummer vorgegeben werden.
    • Beispiel: vdr soll nur die DVB-Karten /dev/dvb/adapter0 und /dev/dvb/adapter1 verwenden. Man lädt pvrusb2 nun wie folgt: "modprobe pvrusb2 adapter_nr=2". Zusätzlich muss vdr mit den Optionen "--device=0 --device=1" vorgegeben werden, dass nur adapter 0 und 1, nicht aber der adapter2 (DVB-device der HVR1900) verwendet werden soll. Somit wird letzteres von vdr nicht geöffnet, und pvrinput kann das analoge device der HVR1900 öffnen.

[Bearbeiten] Entwicklerversion und aktuelle Version

git clone git://projects.vdr-developer.org/vdr-plugin-pvrinput.git pvrinput


[Bearbeiten] Links

  1. Homepage des Plugins
In anderen Sprachen