diff --git a/HISTORY b/HISTORY index bc54e6fa..1c31efac 100644 --- a/HISTORY +++ b/HISTORY @@ -1471,3 +1471,5 @@ Video Disk Recorder Revision History - Only calling cStatus::MsgChannelSwitch() if a channel is actually going to be switched or has actually been switched successfully (thanks to Stefan Huelswitt). +- The EPG now drops events from "other" streams that have a duration of 86400 + seconds or more (this avoids bogus entries like "PROGRAMMES ALLEMANDS"). diff --git a/eit.c b/eit.c index 86590490..812cd353 100644 --- a/eit.c +++ b/eit.c @@ -16,7 +16,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: eit.c 1.49 2002/08/25 10:43:36 kls Exp $ + * $Id: eit.c 1.50 2002/09/15 13:02:28 kls Exp $ ***************************************************************************/ #include "eit.h" @@ -895,6 +895,9 @@ int cEIT::ProcessEIT(unsigned char *buffer) if (VdrProgramInfos) { for (VdrProgramInfo = (struct VdrProgramInfo *) VdrProgramInfos->Head; VdrProgramInfo; VdrProgramInfo = (struct VdrProgramInfo *) xSucc (VdrProgramInfo)) { + // Drop events that belong to an "other TS" and are very long (some stations broadcast bogus data for "other" channels): + if (VdrProgramInfo->Duration >= 86400 && (tid == 0x4F || tid == 0x60 || tid == 0x61)) + continue; pSchedule = (cSchedule *)schedules->GetSchedule(VdrProgramInfo->ServiceID); if (!pSchedule) { schedules->Add(new cSchedule(VdrProgramInfo->ServiceID));