summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--eit.c6
3 files changed, 7 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ac282fd2..edfeae3c 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1327,6 +1327,8 @@ Chad Flynt <hoochster@sofnet.com>
Chris Warren <dvb@ixalon.net>
for pointing out that the call to system("sync") in SpinUpDisk() should be
replaced with fsync(f) to avoid problems on NPTL systems
+ for fixing dropping EPG events that have a zero start time or duration, in case it's
+ an NVOD event
Luca Olivetti <luca@ventoso.org>
for making cDevice::AttachPlayer() keep the track language codes and descriptions
diff --git a/HISTORY b/HISTORY
index 79b2a1de..5953fd82 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3599,3 +3599,5 @@ Video Disk Recorder Revision History
first day not as full date, but just day of month (thanks to Henrik Niehaus for
reporting this one).
- Removed an unnecessary #include from osd.c (thanks to Wolfgang Rohdewald).
+- Fixed dropping EPG events that have a zero start time or duration, in case it's
+ an NVOD event (thanks to Chris Warren).
diff --git a/eit.c b/eit.c
index a8ac9df2..ef21e327 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 1.107 2005/05/28 11:35:55 kls Exp $
+ * $Id: eit.c 1.108 2005/06/11 15:31:21 kls Exp $
*/
#include "eit.h"
@@ -48,8 +48,8 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data)
SI::EIT::Event SiEitEvent;
for (SI::Loop::Iterator it; eventLoop.getNext(SiEitEvent, it); ) {
- // Drop bogus events.
- if (SiEitEvent.getStartTime() == 0 || SiEitEvent.getDuration() == 0)
+ // Drop bogus events - but keep NVOD reference events, where all bits of the start time field are set to 1, resulting in a negative number.
+ if (SiEitEvent.getStartTime() == 0 || SiEitEvent.getStartTime() > 0 && SiEitEvent.getDuration() == 0)
continue;
Empty = false;
cEvent *newEvent = NULL;