Added support for handling DVB-T2 transponders

This commit is contained in:
Klaus Schmidinger 2012-01-11 13:22:51 +01:00
parent ed118b079f
commit 875aebe14b
34 changed files with 230 additions and 70 deletions

View File

@ -1122,6 +1122,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for replacing all calls to sleep() with cCondWait::SleepMs()
for fixing cDvbSubtitleConverter::SetOsdData()
for adding support for DVB-T2 to libsi
for adding support for handling DVB-T2 transponders
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark

View File

@ -6810,3 +6810,4 @@ Video Disk Recorder Revision History
- Fixed cListBase::Move() in case From and To are equal (reported by Sundararaj
Reel).
- Added support for DVB-T2 to libsi (thanks to Rolf Ahrenberg).
- Added support for handling DVB-T2 transponders (thanks to Rolf Ahrenberg).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbdevice.c 2.52 2012/01/08 14:30:04 kls Exp $
* $Id: dvbdevice.c 2.53 2012/01/11 12:31:06 kls Exp $
*/
#include "dvbdevice.h"
@ -44,9 +44,12 @@ const tDvbParameterMap InversionValues[] = {
};
const tDvbParameterMap BandwidthValues[] = {
{ 6, 6000000, "6 MHz" },
{ 7, 7000000, "7 MHz" },
{ 8, 8000000, "8 MHz" },
{ 5, 5000000, "5 MHz" },
{ 6, 6000000, "6 MHz" },
{ 7, 7000000, "7 MHz" },
{ 8, 8000000, "8 MHz" },
{ 10, 10000000, "10 MHz" },
{ 1712, 1712000, "1.712 MHz" },
{ -1, 0, NULL }
};
@ -75,9 +78,12 @@ const tDvbParameterMap ModulationValues[] = {
{ 2, QPSK, "QPSK" },
{ 5, PSK_8, "8PSK" },
{ 6, APSK_16, "16APSK" },
{ 7, APSK_32, "32APSK" },
{ 10, VSB_8, "VSB8" },
{ 11, VSB_16, "VSB16" },
{ 12, DQPSK, "DQPSK" },
{ 998, QAM_AUTO, "QAMAUTO" },
{ 999, QAM_AUTO, trNOOP("auto") },
{ -1, 0, NULL }
};
@ -97,18 +103,25 @@ const tDvbParameterMap SystemValuesTerr[] = {
};
const tDvbParameterMap TransmissionValues[] = {
{ 1, TRANSMISSION_MODE_1K, "1K" },
{ 2, TRANSMISSION_MODE_2K, "2K" },
{ 4, TRANSMISSION_MODE_4K, "4K" },
{ 8, TRANSMISSION_MODE_8K, "8K" },
{ 16, TRANSMISSION_MODE_16K, "16K" },
{ 32, TRANSMISSION_MODE_32K, "32K" },
{ 999, TRANSMISSION_MODE_AUTO, trNOOP("auto") },
{ -1, 0, NULL }
};
const tDvbParameterMap GuardValues[] = {
{ 4, GUARD_INTERVAL_1_4, "1/4" },
{ 8, GUARD_INTERVAL_1_8, "1/8" },
{ 16, GUARD_INTERVAL_1_16, "1/16" },
{ 32, GUARD_INTERVAL_1_32, "1/32" },
{ 999, GUARD_INTERVAL_AUTO, trNOOP("auto") },
{ 4, GUARD_INTERVAL_1_4, "1/4" },
{ 8, GUARD_INTERVAL_1_8, "1/8" },
{ 16, GUARD_INTERVAL_1_16, "1/16" },
{ 32, GUARD_INTERVAL_1_32, "1/32" },
{ 128, GUARD_INTERVAL_1_128, "1/128" },
{ 19128, GUARD_INTERVAL_19_128, "19/128" },
{ 19256, GUARD_INTERVAL_19_256, "19/256" },
{ 999, GUARD_INTERVAL_AUTO, trNOOP("auto") },
{ -1, 0, NULL }
};
@ -193,6 +206,7 @@ cDvbTransponderParameters::cDvbTransponderParameters(const char *Parameters)
guard = GUARD_INTERVAL_AUTO;
hierarchy = HIERARCHY_AUTO;
rollOff = ROLLOFF_AUTO;
plpId = 0;
Parse(Parameters);
}
@ -215,7 +229,8 @@ cString cDvbTransponderParameters::ToString(char Type) const
ST("ACST") q += PrintParameter(q, 'I', MapToUser(inversion, InversionValues));
ST("ACST") q += PrintParameter(q, 'M', MapToUser(modulation, ModulationValues));
ST(" S ") q += PrintParameter(q, 'O', MapToUser(rollOff, RollOffValues));
ST(" S ") q += PrintParameter(q, 'S', MapToUser(system, SystemValuesSat)); // we only need the numerical value, so Sat or Terr doesn't matter
ST(" T") q += PrintParameter(q, 'P', plpId);
ST(" ST") q += PrintParameter(q, 'S', MapToUser(system, SystemValuesSat)); // we only need the numerical value, so Sat or Terr doesn't matter
ST(" T") q += PrintParameter(q, 'T', MapToUser(transmission, TransmissionValues));
ST(" T") q += PrintParameter(q, 'Y', MapToUser(hierarchy, HierarchyValues));
return buffer;
@ -228,7 +243,7 @@ const char *cDvbTransponderParameters::ParseParameter(const char *s, int &Value,
errno = 0;
int n = strtol(s, &p, 10);
if (!errno && p != s) {
Value = MapToDriver(n, Map);
Value = Map ? MapToDriver(n, Map) : n;
if (Value >= 0)
return p;
}
@ -250,6 +265,7 @@ bool cDvbTransponderParameters::Parse(const char *s)
case 'L': polarization = *s++; break;
case 'M': s = ParseParameter(s, modulation, ModulationValues); break;
case 'O': s = ParseParameter(s, rollOff, RollOffValues); break;
case 'P': s = ParseParameter(s, plpId); break;
case 'R': polarization = *s++; break;
case 'S': s = ParseParameter(s, system, SystemValuesSat); break; // we only need the numerical value, so Sat or Terr doesn't matter
case 'T': s = ParseParameter(s, transmission, TransmissionValues); break;
@ -792,8 +808,8 @@ bool cDvbTuner::SetFrontend(void)
tuneTimeout = DVBC_TUNE_TIMEOUT;
lockTimeout = DVBC_LOCK_TIMEOUT;
}
else if (frontendType == SYS_DVBT) {
// DVB-T
else if (frontendType == SYS_DVBT || frontendType == SYS_DVBT2) {
// DVB-T/DVB-T2 (common parts)
SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency()));
SETCMD(DTV_INVERSION, dtp.Inversion());
SETCMD(DTV_BANDWIDTH_HZ, dtp.Bandwidth());
@ -803,6 +819,10 @@ bool cDvbTuner::SetFrontend(void)
SETCMD(DTV_TRANSMISSION_MODE, dtp.Transmission());
SETCMD(DTV_GUARD_INTERVAL, dtp.Guard());
SETCMD(DTV_HIERARCHY, dtp.Hierarchy());
if (frontendType == SYS_DVBT2) {
// DVB-T2
SETCMD(DTV_DVBT2_PLP_ID, dtp.PlpId());
}
tuneTimeout = DVBT_TUNE_TIMEOUT;
lockTimeout = DVBT_LOCK_TIMEOUT;
@ -933,7 +953,7 @@ cOsdItem *cDvbSourceParam::GetOsdItem(void)
#define ST(s) if (strchr(s, type))
switch (param++) {
case 0: ST(" S ") return new cMenuEditChrItem( tr("Polarization"), &dtp.polarization, "HVLR"); else return GetOsdItem();
case 1: ST(" S ") return new cMenuEditMapItem( tr("System"), &dtp.system, SystemValues); else return GetOsdItem();
case 1: ST(" ST") return new cMenuEditMapItem( tr("System"), &dtp.system, SystemValues); else return GetOsdItem();
case 2: ST(" CS ") return new cMenuEditIntItem( tr("Srate"), &srate); else return GetOsdItem();
case 3: ST("ACST") return new cMenuEditMapItem( tr("Inversion"), &dtp.inversion, InversionValues); else return GetOsdItem();
case 4: ST(" CST") return new cMenuEditMapItem( tr("CoderateH"), &dtp.coderateH, CoderateValues); else return GetOsdItem();
@ -944,6 +964,7 @@ cOsdItem *cDvbSourceParam::GetOsdItem(void)
case 9: ST(" T") return new cMenuEditMapItem( tr("Guard"), &dtp.guard, GuardValues); else return GetOsdItem();
case 10: ST(" T") return new cMenuEditMapItem( tr("Hierarchy"), &dtp.hierarchy, HierarchyValues); else return GetOsdItem();
case 11: ST(" S ") return new cMenuEditMapItem( tr("Rolloff"), &dtp.rollOff, RollOffValues); else return GetOsdItem();
case 12: ST(" T") return new cMenuEditIntItem( tr("PlpId"), &dtp.plpId, 0, 255); else return GetOsdItem();
default: return NULL;
}
return NULL;
@ -1138,7 +1159,10 @@ bool cDvbDevice::QueryDeliverySystems(int fd_frontend)
if (frontendInfo.caps & FE_CAN_2G_MODULATION)
deliverySystems[numDeliverySystems++] = SYS_DVBS2;
break;
case FE_OFDM: deliverySystems[numDeliverySystems++] = SYS_DVBT; break;
case FE_OFDM: deliverySystems[numDeliverySystems++] = SYS_DVBT;
if (frontendInfo.caps & FE_CAN_2G_MODULATION)
deliverySystems[numDeliverySystems++] = SYS_DVBT2;
break;
case FE_QAM: deliverySystems[numDeliverySystems++] = SYS_DVBC_ANNEX_AC; break;
case FE_ATSC: deliverySystems[numDeliverySystems++] = SYS_ATSC; break;
default: esyslog("ERROR: unknown frontend type %d on frontend %d/%d", frontendInfo.type, adapter, frontend);
@ -1363,7 +1387,7 @@ bool cDvbDevice::ProvidesSource(int Source) const
|| type == cSource::stAtsc && ProvidesDeliverySystem(SYS_ATSC)
|| type == cSource::stCable && (ProvidesDeliverySystem(SYS_DVBC_ANNEX_AC) || ProvidesDeliverySystem(SYS_DVBC_ANNEX_B))
|| type == cSource::stSat && (ProvidesDeliverySystem(SYS_DVBS) || ProvidesDeliverySystem(SYS_DVBS2))
|| type == cSource::stTerr && ProvidesDeliverySystem(SYS_DVBT);
|| type == cSource::stTerr && (ProvidesDeliverySystem(SYS_DVBT) || ProvidesDeliverySystem(SYS_DVBT2));
}
bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbdevice.h 2.19 2012/01/06 13:29:46 kls Exp $
* $Id: dvbdevice.h 2.20 2012/01/11 12:08:49 kls Exp $
*/
#ifndef __DVBDEVICE_H
@ -14,8 +14,8 @@
#include <linux/dvb/version.h>
#include "device.h"
#if DVB_API_VERSION < 5
#error VDR requires Linux DVB driver API version 5.0 or higher!
#if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 3)
#error VDR requires Linux DVB driver API version 5.3 or higher!
#endif
#define MAXDVBDEVICES 8
@ -68,8 +68,9 @@ private:
int guard;
int hierarchy;
int rollOff;
int plpId;
int PrintParameter(char *p, char Name, int Value) const;
const char *ParseParameter(const char *s, int &Value, const tDvbParameterMap *Map);
const char *ParseParameter(const char *s, int &Value, const tDvbParameterMap *Map = NULL);
public:
cDvbTransponderParameters(const char *Parameters = NULL);
char Polarization(void) const { return polarization; }
@ -83,6 +84,7 @@ public:
int Guard(void) const { return guard; }
int Hierarchy(void) const { return hierarchy; }
int RollOff(void) const { return rollOff; }
int PlpId(void) const { return plpId; }
void SetPolarization(char Polarization) { polarization = Polarization; }
void SetInversion(int Inversion) { inversion = Inversion; }
void SetBandwidth(int Bandwidth) { bandwidth = Bandwidth; }
@ -94,6 +96,7 @@ public:
void SetGuard(int Guard) { guard = Guard; }
void SetHierarchy(int Hierarchy) { hierarchy = Hierarchy; }
void SetRollOff(int RollOff) { rollOff = RollOff; }
void SetPlpId(int PlpId) { plpId = PlpId; }
cString ToString(char Type) const;
bool Parse(const char *s);
};

37
nit.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: nit.c 2.7 2012/01/06 12:45:39 kls Exp $
* $Id: nit.c 2.8 2012/01/11 12:16:33 kls Exp $
*/
#include "nit.h"
@ -245,10 +245,11 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
cDvbTransponderParameters dtp;
int Source = cSource::FromData(cSource::stTerr);
int Frequency = Frequencies[0] = sd->getFrequency() * 10;
static int Bandwidths[] = { 8000000, 7000000, 6000000, 0, 0, 0, 0, 0 };
static int Bandwidths[] = { 8000000, 7000000, 6000000, 5000000, 0, 0, 0, 0 };
dtp.SetBandwidth(Bandwidths[sd->getBandwidth()]);
static int Constellations[] = { QPSK, QAM_16, QAM_64, QAM_AUTO };
dtp.SetModulation(Constellations[sd->getConstellation()]);
dtp.SetSystem(DVB_SYSTEM_1);
static int Hierarchies[] = { HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO };
dtp.SetHierarchy(Hierarchies[sd->getHierarchy()]);
static int CodeRates[] = { FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_AUTO, FEC_AUTO, FEC_AUTO };
@ -256,7 +257,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
dtp.SetCoderateL(CodeRates[sd->getCodeRateLP()]);
static int GuardIntervals[] = { GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4 };
dtp.SetGuard(GuardIntervals[sd->getGuardInterval()]);
static int TransmissionModes[] = { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_AUTO };
static int TransmissionModes[] = { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_4K, TRANSMISSION_MODE_AUTO };
dtp.SetTransmission(TransmissionModes[sd->getTransmissionMode()]);
if (ThisNIT >= 0) {
for (int n = 0; n < NumFrequencies; n++) {
@ -302,6 +303,36 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
}
break;
case SI::ExtensionDescriptorTag: {
SI::ExtensionDescriptor *sd = (SI::ExtensionDescriptor *)d;
switch (sd->getExtensionDescriptorTag()) {
case SI::T2DeliverySystemDescriptorTag: {
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
int Source = cSource::FromData(cSource::stTerr);
if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
SI::T2DeliverySystemDescriptor *td = (SI::T2DeliverySystemDescriptor *)d;
int Frequency = Channel->Frequency();
int SymbolRate = Channel->Srate();
cDvbTransponderParameters dtp(Channel->Parameters());
dtp.SetSystem(DVB_SYSTEM_1);
dtp.SetPlpId(td->getPlpId());
if (td->getExtendedDataFlag()) {
static int T2Bandwidths[] = { 8000000, 7000000, 6000000, 5000000, 10000000, 1712000, 0, 0 };
dtp.SetBandwidth(T2Bandwidths[td->getBandwidth()]);
static int T2GuardIntervals[] = { GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4, GUARD_INTERVAL_1_128, GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_256, 0 };
dtp.SetGuard(T2GuardIntervals[td->getGuardInterval()]);
static int T2TransmissionModes[] = { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_4K, TRANSMISSION_MODE_1K, TRANSMISSION_MODE_16K, TRANSMISSION_MODE_32K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_AUTO };
dtp.SetTransmission(T2TransmissionModes[td->getTransmissionMode()]);
}
Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('T'));
}
}
}
break;
default: ;
}
}
break;
default: ;
}
delete d;

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-10-16 11:16-0400\n"
"Last-Translator: Osama Alrawab <alrawab@hotmail.com>\n"
"Language-Team: Arabic <ar@li.org>\n"
@ -79,6 +79,9 @@ msgstr "الهرمية"
msgid "Rolloff"
msgstr "ايقاف"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "EPG ا لبدء بالبحث على دليل القنوات الالكترونى "

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n"
@ -76,6 +76,9 @@ msgstr "Jerarquia"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Iniciant exploració EPG"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.14\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-05-06 11:00+0200\n"
"Last-Translator: Radek Šťastný <dedkus@gmail.com>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n"
@ -75,6 +75,9 @@ msgstr "Hierarchický mód"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Začíná prohledávání EPG"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hierarki"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Starter EPG skanning"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-01-16 16:46+0100\n"
"Last-Translator: Klaus Schmidinger <kls@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hierarchie"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr "PlpId"
msgid "Starting EPG scan"
msgstr "Aktualisiere EPG-Daten"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Áñ÷Þ óÜñùóç EPG"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Jerarqu
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Iniciando la exploración de EPG"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hierarhia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "EPG skaneerimine käivitatud"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2007-08-15 15:52+0200\n"
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
@ -76,6 +76,9 @@ msgstr "Hierarkia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr "PLP-tunniste"
msgid "Starting EPG scan"
msgstr "Ohjelmaoppaan päivitys aloitettu"

View File

@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-02-27 18:14+0100\n"
"Last-Translator: Jean-Claude Repetto <jc@repetto.org>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
@ -79,6 +79,9 @@ msgstr "Hi
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Mise à jour du guide des programmes"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-03-17 19:00+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n"
@ -75,6 +75,9 @@ msgstr "Hijerarhija"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Poèinjem EPG pretragu"

View File

@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-11-19 16:01+0200\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2012-01-02 11:54+0200\n"
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
"Language-Team: Hungarian <vdr@linuxtv.org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hu\n"
msgid "*** Invalid Channel ***"
msgstr "*** Érvénytelen csatorna ***"
@ -76,6 +76,9 @@ msgstr "Hierarhia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "EPG adatok aktualizálása"
@ -965,6 +968,14 @@ msgstr "Als
msgid "Setup.LNB$High LNB frequency (MHz)"
msgstr "Felsõ LNB-frekvencia (MHz)"
#, c-format
msgid "Setup.LNB$Device %d connected to sat cable"
msgstr ""
#, fuzzy
msgid "Setup.LNB$own"
msgstr "DiSEqC használata"
msgid "CAM reset"
msgstr "CAM újraindítás"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-06-13 00:30+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
@ -80,6 +80,9 @@ msgstr "Gerarchia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Inizio scansione EPG"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.16\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-10-30 11:55+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hierarchija"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Pradedamas EPG skanavimas"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR-1.7.14\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-03-11 00:54+0100\n"
"Last-Translator: Dimitar Petrovski <dimeptr@gmail.com>\n"
"Language-Team: Macedonian <en@li.org>\n"
@ -74,6 +74,9 @@ msgstr "Хиерархија"
msgid "Rolloff"
msgstr "Рол-оф"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Започнувам скенирање на EPG"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-02-26 17:20+0100\n"
"Last-Translator: Johan Schuring <johan.schuring@vetteblei.nl>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n"
@ -77,6 +77,9 @@ msgstr "Hierarchie"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Bezig met starten EPG scan"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Hierarchy"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-03-09 12:59+0100\n"
"Last-Translator: Michael Rakowski <mrak@gmx.de>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Hierarchia"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Rozpoczynam skanowanie EPG"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.15\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-03-28 22:49+0100\n"
"Last-Translator: Cris Silva <hudokkow@gmail.com>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Hierarquia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "A iniciar a busca do EPG"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.12\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2011-03-10 23:52+0100\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n"
@ -76,6 +76,9 @@ msgstr "Ierarhie"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Pornesc achiziþia EPG"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-12-15 14:37+0100\n"
"Last-Translator: Oleg Roitburd <oleg@roitburd.de>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "½ÐçØÝÐî EPG-áÚÐÝØàÞÒÐÝØÕ"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.16\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2011-02-15 16:29+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hierarchia"
msgid "Rolloff"
msgstr "Rolloff"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Zaèína prehµadáva» EPG"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-02-28 19:44+0100\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Hierarhija"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Prièenjam EPG-scan"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.1\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2011-01-09 15:57+0100\n"
"Last-Translator: Milan Cvijanoviæ <elcom_cvijo@hotmail.com>\n"
"Language-Team: Serbian <vdr@linuxtv.org>\n"
@ -74,6 +74,9 @@ msgstr "Hijerarhija"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Poèinjem EPG pretragu"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-03-12 18:25+0100\n"
"Last-Translator: Magnus Andersson <svankan@bahnhof.se>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n"
@ -76,6 +76,9 @@ msgstr "Hierarchy"
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Påbörjar EPG skanning"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2008-02-28 00:33+0100\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Hiyerar
msgid "Rolloff"
msgstr ""
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "EPG tarama baþlýyor"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.7.7\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2010-04-25 16:35+0200\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <vdr@linuxtv.org>\n"
@ -73,6 +73,9 @@ msgstr "Ієрархія"
msgid "Rolloff"
msgstr "Крен"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "Починаю EPG-сканування"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2011-12-03 16:25+0100\n"
"POT-Creation-Date: 2012-01-11 13:47+0100\n"
"PO-Revision-Date: 2009-09-23 23:50+0800\n"
"Last-Translator: Nan Feng <nfgx@21cn.com>\n"
"Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n"
@ -76,6 +76,9 @@ msgstr "层次"
msgid "Rolloff"
msgstr "越零率"
msgid "PlpId"
msgstr ""
msgid "Starting EPG scan"
msgstr "开始节目单扫描"

44
vdr.5
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
.\" $Id: vdr.5 2.26 2011/09/25 13:51:34 kls Exp $
.\" $Id: vdr.5 2.27 2012/01/11 13:16:57 kls Exp $
.\"
.TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files"
.SH NAME
@ -87,32 +87,33 @@ meaning (and allowed values) are
.TS
tab (@);
l l.
\fBB\fR@Bandwidth (6, 7, 8)
\fBB\fR@Bandwidth (1712, 5, 6, 7, 8, 10)
\fBC\fR@Code rate high priority (0, 12, 23, 34, 35, 45, 56, 67, 78, 89, 910)
\fBD\fR@coDe rate low priority (0, 12, 23, 34, 35, 45, 56, 67, 78, 89, 910)
\fBG\fR@Guard interval (4, 8, 16, 32)
\fBG\fR@Guard interval (4, 8, 16, 32, 128, 19128, 19256)
\fBH\fR@Horizontal polarization
\fBI\fR@Inversion (0, 1)
\fBL\fR@Left circular polarization
\fBM\fR@Modulation (2, 5, 6, 10, 11, 16, 32, 64, 128, 256, 998)
\fBO\fR@rollOff (0, 20, 25, 35)
\fBP\fR@Plp id (0-255)
\fBR\fR@Right circular polarization
\fBS\fR@delivery System (0, 1)
\fBT\fR@Transmission mode (2, 8)
\fBT\fR@Transmission mode (1, 2, 4, 8, 16, 32)
\fBV\fR@Vertical polarization
\fBY\fR@hierarchY (0, 1, 2, 4)
.TE
\fBBandwidth:\fR The bandwidth of the channel in MHz (DVB-T only).
\fBBandwidth:\fR The bandwidth of the channel in MHz (1712 in kHz): (DVB-T/DVB-T2 only).
\fBCode rate high priority:\fR Forward Error Correction (FEC) of the high priority stream (DVB-T).
\fBCode rate high priority:\fR Forward Error Correction (FEC) of the high priority stream (DVB-T/DVB-T2).
For DVB-S/DVB-S2 this parameter specifies the inner FEC scheme.
12 = 1/2, 23 = 2/3, 34 = 3/4, ...
\fBCode rate low priority:\fR Forward Error Correction (FEC) of the low priority stream (DVB-T only).
\fBCode rate low priority:\fR Forward Error Correction (FEC) of the low priority stream (DVB-T/DVB-T2 only).
If no hierarchy is used, set to 0.
\fBGuard interval:\fR The guard interval value (DVB-T only): 4 = 1/4, 8 = 1/8, 16 = 1/16, 32 = 1/32.
\fBGuard interval:\fR The guard interval value (DVB-T only): 4 = 1/4, 8 = 1/8, 16 = 1/16, 32 = 1/32, 128 = 1/128, 19128 = 19/128, 19256 = 19/256.
\fBInversion:\fR Specifies whether the DVB frontend needs spectral inversion (DVB-T and DVB-C only). This is frontend specific, if in doubt, omit.
@ -120,26 +121,30 @@ If no hierarchy is used, set to 0.
.TS
tab (@);
l l.
\fB2\fR@QPSK (DVB-S, DVB-S2, DVB-T)
\fB2\fR@QPSK (DVB-S, DVB-S2, DVB-T, DVB-T2, ISDB-T)
\fB5\fR@8PSK (DVB-S2)
\fB6\fR@16APSK (DVB-S2)
\fB7\fR@32APSK (DVB-S2)
\fB10\fR@VSB8 (ATSC aerial)
\fB11\fR@VSB16 (ATSC aerial)
\fB16\fR@QAM16 (DVB-T)
\fB64\fR@QAM64 (DVB-C, DVB-T)
\fB12\fR@DQPSK (ISDB-T)
\fB16\fR@QAM16 (DVB-T, DVB-T2, ISDB-T)
\fB64\fR@QAM64 (DVB-C, DVB-T, DVB-T2, ISDB-T)
\fB128\fR@QAM128 (DVB-C)
\fB256\fR@QAM256 (DVB-C)
\fB256\fR@QAM256 (DVB-C, DVB-T2)
.TE
\fBRolloff:\fR The Nyquist filter rolloff factor for DVB-S (\fB35\fR) and DVB-S2 (\fB35\fR, 25, 20),
35 = 0.35, 25 = 0.25, 20 = 0.20, DVB-S/DVB-S2 default value is 0.35
\fBTransmission mode:\fR Number of DVB-T OFDM carriers, 8 = 8k, 2 = 2k. If in doubt, try 8k.
\fBPLP id:\fR Physical Layer Pipe (PLP) id (\fB0\fR-255) for DVB-T2 multiplex (DVB-T2 only).
\fBTransmission mode:\fR Number of DVB-T OFDM carriers, 32 = 32k, 16 = 16k, 8 = 8k, 4 = 4k, 2 = 2k, 1 = 1k. If in doubt, try 8k.
\fBHierarchy:\fR If set to 1, this transponder uses two streams, high priority and low priority.
If in doubt, try 0 (off). (DVB-T only).
If in doubt, try 0 (off). (DVB-T/DVB-T2 only).
\fBDelivery System:\fR The satellite delivery system (0 = DVB-S, 1 = DVB-S2).
\fBDelivery System:\fR The delivery system (0 = "first generation" (DVB-S/DVB-T), 1 = "second generation" (DVB-S2/DVB-T2).
\fBPolarization:\fR Satellite antenna polarization.
H = horizontal, V = vertical, R = circular right, L = circular left.
@ -152,16 +157,19 @@ The special value \fB999\fR is used for "automatic", which means the driver
will automatically determine the proper value (if possible).
An example of a parameter field for a DVB-T channel might look like this:
\fBB8C23D12G8M16T8Y0\fR
\fBB8C23D12G8M16T8Y0S0\fR
An example of a parameter field for a DVB-T2 channel might look like this:
\fBB8C23D12G8M16T8Y0P0S1\fR
An example of a parameter field for a DVB-C channel might look like this:
\fBC0M64\fR
An example of a parameter field for a DVB-S channel might look like this:
\fBhC56M2O35S0\fR
\fBHC56M2O35S0\fR
An example of a parameter field for a DVB-S2 channel might look like this:
\fBhC910M2O35S1\fR
\fBHC910M2O35S1\fR
Plugins that implement devices that need their own set of parameters may
store those in the parameters string in arbitrary format (not necessarily