Fixed dropping EPG events that have a zero start time or duration, in case it's an NVOD event

This commit is contained in:
Klaus Schmidinger 2005-06-11 16:05:11 +02:00
parent 3513e3d07e
commit 903a2d5850
3 changed files with 7 additions and 3 deletions

View File

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

View File

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

6
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 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;