summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-02-25 15:52:16 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2012-02-25 15:52:16 +0100
commitaaca30f2ac1c9e7a78f05bd2c81d10a5514cba97 (patch)
treeeb4e481e1bdcd176b2631fcc081381730ab2f8e1
parentd0cd92a4559c06fa5801099ee094e3155bd9a3d8 (diff)
downloadvdr-aaca30f2ac1c9e7a78f05bd2c81d10a5514cba97.tar.gz
vdr-aaca30f2ac1c9e7a78f05bd2c81d10a5514cba97.tar.bz2
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
-rw-r--r--HISTORY5
-rw-r--r--eit.c10
2 files changed, 14 insertions, 1 deletions
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 <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 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;