Pvrinput-plugin
Wirbel (Diskussion | Beiträge) (→Betrieb mit vdr-1.7) |
Wirbel (Diskussion | Beiträge) (→Aktuelle Version) |
||
Zeile 45: | Zeile 45: | ||
==Aktuelle Version== | ==Aktuelle Version== | ||
# [http://projects.vdr-developer.org/attachments/download/931/vdr-pvrinput-2012-04-25.tgz 2012-04-25] | # [http://projects.vdr-developer.org/attachments/download/931/vdr-pvrinput-2012-04-25.tgz 2012-04-25] | ||
+ | |||
+ | ===Patch für VDR-2.3.1=== | ||
+ | <pre>diff -Nru vdr-plugin-pvrinput-git-20120425-orig/pvrinput.c vdr-plugin-pvrinput-git-20120425/pvrinput.c | ||
+ | --- vdr-plugin-pvrinput-git-20120425-orig/pvrinput.c 2016-09-25 18:45:19.643910816 +0200 | ||
+ | +++ vdr-plugin-pvrinput-git-20120425/pvrinput.c 2016-09-25 18:37:58.577730396 +0200 | ||
+ | @@ -86,15 +86,18 @@ | ||
+ | |||
+ | cOsdObject *cPluginPvrInput::MainMenuAction(void) | ||
+ | { | ||
+ | +#if VDRVERSNUM < 20301 | ||
+ | cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||
+ | -#if VDRVERSNUM < 10713 | ||
+ | - if (channel && channel->IsPlug()) | ||
+ | + if (channel && ((channel->Source() >> 24) == 'V')) | ||
+ | return new cPvrMenuMain(); | ||
+ | #else | ||
+ | - // TODO: rework cPvrSourceParams for use with older vdr | ||
+ | - if (channel && ((channel->Source() >> 24) == 'V')) | ||
+ | + // 2.3.1: avoid global channel list. | ||
+ | + cDevice* primary = cDevice::PrimaryDevice(); | ||
+ | + const cChannel* transponder = primary? primary->GetCurrentlyTunedTransponder():NULL; | ||
+ | + if (transponder && ((transponder->Source() >> 24) == 'V')) | ||
+ | return new cPvrMenuMain(); | ||
+ | #endif | ||
+ | + | ||
+ | Skins.Message(mtError, tr("Setup.pvrinput$Not on an analogue channel!"), 2); | ||
+ | return NULL; | ||
+ | } | ||
+ | </pre> | ||
==Links== | ==Links== |
Version vom 25. September 2016, 17:54 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.
Status
Letztes Update 04/2012
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
- HD PVR
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
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 für alle Syntax-Varianten. In den Plugin-Sourcen sind zudem Beispiele für die channels.conf-Einträge und Konvertierungsscripte enthalten.
Sonstiges
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.
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: Beim Laden des Treibermoduls für den analogen Teil 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 DVB-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.
Entwicklerversion
git clone git://projects.vdr-developer.org/vdr-plugin-pvrinput.git pvrinput
Aktuelle Version
Patch für VDR-2.3.1
diff -Nru vdr-plugin-pvrinput-git-20120425-orig/pvrinput.c vdr-plugin-pvrinput-git-20120425/pvrinput.c --- vdr-plugin-pvrinput-git-20120425-orig/pvrinput.c 2016-09-25 18:45:19.643910816 +0200 +++ vdr-plugin-pvrinput-git-20120425/pvrinput.c 2016-09-25 18:37:58.577730396 +0200 @@ -86,15 +86,18 @@ cOsdObject *cPluginPvrInput::MainMenuAction(void) { +#if VDRVERSNUM < 20301 cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); -#if VDRVERSNUM < 10713 - if (channel && channel->IsPlug()) + if (channel && ((channel->Source() >> 24) == 'V')) return new cPvrMenuMain(); #else - // TODO: rework cPvrSourceParams for use with older vdr - if (channel && ((channel->Source() >> 24) == 'V')) + // 2.3.1: avoid global channel list. + cDevice* primary = cDevice::PrimaryDevice(); + const cChannel* transponder = primary? primary->GetCurrentlyTunedTransponder():NULL; + if (transponder && ((transponder->Source() >> 24) == 'V')) return new cPvrMenuMain(); #endif + Skins.Message(mtError, tr("Setup.pvrinput$Not on an analogue channel!"), 2); return NULL; }