From aaca30f2ac1c9e7a78f05bd2c81d10a5514cba97 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 25 Feb 2012 15:52:16 +0100 Subject: If the first event in a schedule has a table id of 0x00, any incoming EIT data for that schedule from the DVB stream will be completely ignored --- HISTORY | 5 +++++ eit.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/HISTORY b/HISTORY index 224875dc..f2b73f6e 100644 --- a/HISTORY +++ b/HISTORY @@ -6917,3 +6917,8 @@ Video Disk Recorder Revision History won't notice this change, anyway. - Since cReceivers can have priorities between -99 and 99, the priority for an unused device has been changed from -1 to -100. +- If the first event in a schedule has a table id of 0x00, any incoming EIT data for + that schedule from the DVB stream will be completely ignored. This way an external + EPG source can fill the schedules with EPG data that will not be messed up with + that from the DVB data stream. Note, though, that this means VDR can not do VPS + controlled recordings with such events! diff --git a/eit.c b/eit.c index ed16163f..cc10003d 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 2.12 2010/05/14 14:08:35 kls Exp $ + * $Id: eit.c 2.13 2012/02/25 15:25:51 kls Exp $ */ #include "eit.h" @@ -38,6 +38,14 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo return; // only collect data for known channels cSchedule *pSchedule = (cSchedule *)Schedules->GetSchedule(channel, true); + if (pSchedule) { + if (cEvent *Event = pSchedule->Events()->First()) { + if (Event->TableID() == 0x00) + return; // never touch schedules with events from external sources + } + } + else + return; bool Empty = true; bool Modified = false; -- cgit v1.2.3