From 77f438ed85ef37dbb5c443725ebaea152426ba23 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 31 Mar 2018 13:40:32 +0200 Subject: [PATCH] The EIT filter no longer parses data from "other TS" --- HISTORY | 4 +++- UPDATE-2.4.0 | 2 ++ eit.c | 8 +++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index fbdd9163..d06c05ce 100644 --- a/HISTORY +++ b/HISTORY @@ -9317,7 +9317,7 @@ Video Disk Recorder Revision History - Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting the user. -2018-03-24: Version 2.4.0 +2018-03-31: Version 2.4.0 - Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk). - Fixed processing SVDRP client responses in case the caller doesn't want the actual @@ -9331,3 +9331,5 @@ Video Disk Recorder Revision History Jürgen Schneider). - Fixed setting the initial offset of the cursor in a list menu (reported by Matthias Senzel). +- The EIT filter no longer parses data from "other TS", to avoid problems with + broadcasters who transmit faulty EIT data. diff --git a/UPDATE-2.4.0 b/UPDATE-2.4.0 index cdf56dc7..417959f3 100644 --- a/UPDATE-2.4.0 +++ b/UPDATE-2.4.0 @@ -265,6 +265,8 @@ EPG: made for such an event. - Changed the default return value of cEpgHandler::BeginSegmentTransfer() to true, to avoid problems with derived classes that don't implement this function. +- The EIT filter no longer parses data from "other TS", to avoid problems with + broadcasters who transmit faulty EIT data. OSD: diff --git a/eit.c b/eit.c index 68872525..c4c83691 100644 --- a/eit.c +++ b/eit.c @@ -8,7 +8,7 @@ * Robert Schneider and Rolf Hakenes . * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg . * - * $Id: eit.c 4.4 2017/10/11 09:19:42 kls Exp $ + * $Id: eit.c 4.5 2018/03/31 13:40:32 kls Exp $ */ #include "eit.h" @@ -388,7 +388,8 @@ time_t cEitFilter::disableUntil = 0; cEitFilter::cEitFilter(void) { - Set(0x12, 0x40, 0xC0); // event info now&next actual/other TS (0x4E/0x4F), future actual/other TS (0x5X/0x6X) +//Set(0x12, 0x40, 0xC0); // event info now&next actual/other TS (0x4E/0x4F), future actual/other TS (0x5X/0x6X) // TODO: remove later + Set(0x12, 0x40, 0xE0); // event info now&next actual/other TS (0x4E/0x4F), future actual TS (0x5X) Set(0x14, 0x70); // TDT } @@ -415,7 +416,8 @@ void cEitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length } switch (Pid) { case 0x12: { - if (Tid >= 0x4E && Tid <= 0x6F) + //if (Tid >= 0x4E && Tid <= 0x6F) // TODO: remove later + if (Tid == 0x4E || Tid >= 0x50 && Tid <= 0x5F) cEIT EIT(sectionSyncerHash, Source(), Tid, Data); } break;