summaryrefslogtreecommitdiff
path: root/nit.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2021-03-16 15:10:54 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2021-03-16 15:10:54 +0100
commit36a833053b4b1d51ffe51ca75d06478819e92eeb (patch)
tree5eaf3ab1e809f7c8ceeb13832629deead6dbfc0d /nit.c
parentad35c9c2d331e8c87886ce559fe838b5ac60776b (diff)
downloadvdr-36a833053b4b1d51ffe51ca75d06478819e92eeb.tar.gz
vdr-36a833053b4b1d51ffe51ca75d06478819e92eeb.tar.bz2
Improved cSectionSyncer
Diffstat (limited to 'nit.c')
-rw-r--r--nit.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/nit.c b/nit.c
index 785aba52..980a3b2d 100644
--- a/nit.c
+++ b/nit.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: nit.c 4.9 2019/05/31 13:25:00 kls Exp $
+ * $Id: nit.c 5.1 2021/03/16 15:10:54 kls Exp $
*/
#include "nit.h"
@@ -43,7 +43,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
SI::NIT nit(Data, false);
if (!nit.CheckCRCAndParse())
return;
- if (!sectionSyncer.Sync(nit.getVersionNumber(), nit.getSectionNumber(), nit.getLastSectionNumber()))
+ if (!sectionSyncer.Check(nit.getVersionNumber(), nit.getSectionNumber()))
return;
if (DebugNit) {
char NetworkName[MAXNETWORKNAME] = "";
@@ -63,10 +63,8 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
cStateKey StateKey;
cChannels *Channels = cChannels::GetChannelsWrite(StateKey, 10);
- if (!Channels) {
- sectionSyncer.Repeat(); // let's not miss any section of the NIT
+ if (!Channels)
return;
- }
bool ChannelsModified = false;
SI::NIT::TransportStream ts;
for (SI::Loop::Iterator it; nit.transportStreamLoop.getNext(ts, it); ) {
@@ -371,7 +369,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
delete d;
}
}
- if (nit.getSectionNumber() == nit.getLastSectionNumber()) {
+ if (sectionSyncer.Processed(nit.getSectionNumber(), nit.getLastSectionNumber())) {
dbgnit(" trigger sdtFilter for current tp %d\n", Transponder());
sdtFilter->Trigger(Source());
}