Dropping bogus EPG events

This commit is contained in:
Klaus Schmidinger 2002-09-15 13:05:57 +02:00
parent 3a3d4c2a5a
commit e165c9ad8b
2 changed files with 6 additions and 1 deletions

View File

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

5
eit.c
View File

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