summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2010-04-25 13:05:37 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2010-04-25 13:05:37 +0200
commitb79436fd768db19f772fd0c1c8cf569581828af4 (patch)
tree0b600251350cafc74cf21568609e293ee40f27f6
parent515966cdeae7e0a33911bf467931e803ac392014 (diff)
downloadvdr-b79436fd768db19f772fd0c1c8cf569581828af4.tar.gz
vdr-b79436fd768db19f772fd0c1c8cf569581828af4.tar.bz2
Now handling 'turbo fec' transponders
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY11
-rw-r--r--dvbdevice.c8
3 files changed, 15 insertions, 5 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 47747414..c004c078 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2528,6 +2528,7 @@ Derek Kelly (user.vdr@gmail.com)
units
for updating sources.conf
for reporting a problem where the frame rate was not detected correctly
+ for testing the implementation of FE_CAN_TURBO_FEC
Marcel Unbehaun <frostworks@gmx.de>
for adding cRecordingInfo::GetEvent()
diff --git a/HISTORY b/HISTORY
index b3f4a535..ef7f1c43 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6411,7 +6411,7 @@ Video Disk Recorder Revision History
- The new setup option "Folders in timer menu" controls whether the file names in
the timer menu are shown with their full folder path.
-2010-04-18: Version 1.7.15
+2010-04-25: Version 1.7.15
- Added Macedonian language texts (thanks to Dimitar Petrovski).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
@@ -6437,3 +6437,12 @@ Video Disk Recorder Revision History
spared.
- Fixed generating PMT language descriptors for multi language PIDs (thanks to Rolf
Ahrenberg).
+- Transponders that use "8psk turbo fec" (a non-standard mode used by North American
+ providers) are now identified by assuming that all 8psk transponders on DVB-S use
+ "turbo fec". In order to determine whether a certain device can handle "turbo fec",
+ the new driver flag FE_CAN_TURBO_FEC is checked. If your device can handle "turbo
+ fec", and your driver doesn't have that flag, yet, you can apply the patch from
+ ftp://ftp.tvdr.de/vdr/Developer/v4l-dvb-add-FE_CAN_TURBO_FEC.diff. A temporary
+ macro in dvbdevice.c defines the flag for all those who don't need this in the
+ driver, so that they can continue using an unmodified driver.
+ Thanks to Derek Kelly for testing this.
diff --git a/dvbdevice.c b/dvbdevice.c
index d5310b5b..0d483d52 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 2.36 2010/04/11 10:47:00 kls Exp $
+ * $Id: dvbdevice.c 2.37 2010/04/25 12:36:24 kls Exp $
*/
#include "dvbdevice.h"
@@ -21,7 +21,7 @@
#include "menuitems.h"
#include "sourceparams.h"
-#define FE_CAN_PSK_8 0x8000000 // TODO: remove this once it is defined in the driver
+#define FE_CAN_TURBO_FEC 0x8000000 // TODO: remove this once it is defined in the driver
#define DVBS_TUNE_TIMEOUT 9000 //ms
#define DVBS_LOCK_TIMEOUT 2000 //ms
@@ -712,7 +712,7 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend)
if (frontendInfo.caps & FE_CAN_QAM_256) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_256, ModulationValues)); }
if (frontendInfo.caps & FE_CAN_8VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_8, ModulationValues)); }
if (frontendInfo.caps & FE_CAN_16VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_16, ModulationValues)); }
- if (frontendInfo.caps & FE_CAN_PSK_8) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(PSK_8, ModulationValues)); }
+ if (frontendInfo.caps & FE_CAN_TURBO_FEC){numProvidedSystems++; p += sprintf(p, ",%s", "TURBO FEC"); }
if (p != Modulations)
p = Modulations + 1; // skips first ','
else
@@ -922,7 +922,7 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
dtp.Modulation() == QAM_AUTO && !(frontendInfo.caps & FE_CAN_QAM_AUTO) ||
dtp.Modulation() == VSB_8 && !(frontendInfo.caps & FE_CAN_8VSB) ||
dtp.Modulation() == VSB_16 && !(frontendInfo.caps & FE_CAN_16VSB) ||
- dtp.Modulation() == PSK_8 && !(frontendInfo.caps & FE_CAN_PSK_8))
+ dtp.Modulation() == PSK_8 && dtp.System() == SYS_DVBS && !(frontendInfo.caps & FE_CAN_TURBO_FEC)); // "turbo fec" is a non standard FEC used by North American broadcasters - this is a best guess to determine this conditin
return false; // requires modulation system which frontend doesn't provide
if (!cSource::IsSat(Channel->Source()) ||
!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization()))