The EIT filter no longer parses data from "other TS"

This commit is contained in:
Klaus Schmidinger 2018-03-31 13:40:32 +02:00
parent 9dea1502eb
commit 77f438ed85
3 changed files with 10 additions and 4 deletions

View File

@ -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.

View File

@ -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:

8
eit.c
View File

@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
*
* $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;