diff options
-rw-r--r-- | CONTRIBUTORS | 2 | ||||
-rw-r--r-- | HISTORY | 6 | ||||
-rw-r--r-- | eit.c | 4 | ||||
-rw-r--r-- | epg.c | 6 | ||||
-rw-r--r-- | epg.h | 4 |
5 files changed, 16 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 9e865a94..aa2d9967 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3672,6 +3672,8 @@ Jürgen Schneider <jsffm@web.de> use VPS and fully overlaps a second event that is longer than the original one for reporting a missing EPISODE macro expansion in case the event doesn't yet have a short text when generating the pattern timer file name + for reporting a problem with spawned timers jumping to the next event in case + Setup.EPGLinger is very small Stefan Verse <Verse@amotronics.de> for fixing an occasional black screen when switching channels @@ -9662,3 +9662,9 @@ Video Disk Recorder Revision History the start/stop times of timers in the main menu. - EXPIRELATENCY now only applies to VPS timers. - Deleting expired timers is now triggered immediately after the timers are modified. + +2021-04-28: + +- Now using a separate fixed value for internal EPG linger time. This fixes problems with + spawned timers jumping to the next event in case Setup.EPGLinger is very small. (reported + by Jürgen Schneider). @@ -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 5.2 2021/04/04 11:06:30 kls Exp $ + * $Id: eit.c 5.3 2021/04/28 20:44:56 kls Exp $ */ // The various ways in which broadcasters handle (or screw up) their EPG: @@ -133,7 +133,7 @@ cEIT::cEIT(cEitTablesHash &EitTablesHash, int Source, u_char Tid, const u_char * bool Empty = true; bool Modified = false; - time_t LingerLimit = Now - Setup.EPGLinger * 60; + time_t LingerLimit = Now - EPG_LINGER_TIME; time_t SegmentStart = 0; // these are actually "section" start/end times time_t SegmentEnd = 0; struct tm t = { 0 }; @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * - * $Id: epg.c 5.4 2021/04/13 13:35:17 kls Exp $ + * $Id: epg.c 5.5 2021/04/28 20:44:56 kls Exp $ */ #include "epg.h" @@ -450,7 +450,7 @@ cString cEvent::GetVpsString(void) const void cEvent::Dump(FILE *f, const char *Prefix, bool InfoOnly) const { - if (InfoOnly || startTime + duration + Setup.EPGLinger * 60 >= time(NULL)) { + if (InfoOnly || startTime + duration + EPG_LINGER_TIME >= time(NULL)) { fprintf(f, "%sE %u %ld %d %X %X\n", Prefix, eventID, startTime, duration, tableID, version); if (!isempty(title)) fprintf(f, "%sT %s\n", Prefix, title); @@ -1135,7 +1135,7 @@ void cSchedule::Cleanup(time_t Time) { cEvent *Event; while ((Event = events.First()) != NULL) { - if (!Event->HasTimer() && Event->EndTime() + Setup.EPGLinger * 60 < Time) + if (!Event->HasTimer() && Event->EndTime() + EPG_LINGER_TIME < Time) DelEvent(Event); else break; @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * - * $Id: epg.h 5.1 2021/04/04 11:06:30 kls Exp $ + * $Id: epg.h 5.2 2021/04/28 20:44:56 kls Exp $ */ #ifndef __EPG_H @@ -20,6 +20,8 @@ #define MAXEPGBUGFIXLEVEL 3 +#define EPG_LINGER_TIME (max(Setup.EPGLinger, 180) * 60) // seconds to keep old EPG data (internal, must be at least Setup.EPGLinger) + enum { MaxEventContents = 4 }; enum eEventContentGroup { |