diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2020-05-04 08:50:20 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2020-05-04 08:50:20 +0200 |
commit | 5705ffbd2ba1cd6644e7bc7b10686963d3d8ef9f (patch) | |
tree | 0ca2f43b1c5d9e2674e364bd01ba8cdd30dbac74 /dvbdevice.c | |
parent | 6e0f5287ea4df66847f97489f00f2c8214bad605 (diff) | |
download | vdr-5705ffbd2ba1cd6644e7bc7b10686963d3d8ef9f.tar.gz vdr-5705ffbd2ba1cd6644e7bc7b10686963d3d8ef9f.tar.bz2 |
Now retuning if the received transponder's SDT doesn't contain the expected values for NID and TID
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 70671b30..562d2697 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 4.21 2019/05/28 14:40:49 kls Exp $ + * $Id: dvbdevice.c 4.22 2020/05/04 08:50:20 kls Exp $ */ #include "dvbdevice.h" @@ -1701,6 +1701,7 @@ void cDvbTuner::Action(void) } } tunerStatus = tsTuned; + device->SectionHandler()->SetStatus(true); // may have been turned off when retuning Timer.Set(tuneTimeout + (scr ? rand() % SCR_RANDOM_TIMEOUT : 0)); if (positioner) continue; @@ -1733,6 +1734,14 @@ void cDvbTuner::Action(void) isyslog("frontend %d/%d regained lock on channel %d (%s), tp %d", adapter, frontend, channel.Number(), channel.Name(), channel.Transponder()); LostLock = false; } + if (device->SdtFilter()->TransponderWrong()) { + isyslog("frontend %d/%d is not receiving transponder %d for channel %d (%s) - retuning", adapter, frontend, channel.Transponder(), channel.Number(), channel.Name()); + device->SectionHandler()->SetStatus(false); + tunerStatus = tsSet; + lastDiseqc = NULL; + lastSource = 0; + continue; + } tunerStatus = tsLocked; locked.Broadcast(); lastTimeoutReport = 0; |