diff --git a/CONTRIBUTORS b/CONTRIBUTORS index ac282fd2..edfeae3c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1327,6 +1327,8 @@ Chad Flynt Chris Warren 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 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 and Rolf Hakenes . * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg . * - * $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;