mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-12-26 23:06:44 +01:00
Now retuning if the received transponder's SDT doesn't contain the expected values for NID and TID
This commit is contained in:
11
dvbdevice.c
11
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;
|
||||
|
||||
Reference in New Issue
Block a user