From 7bbbfb0dee56942458968e538830a3e5ec785bb5 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Wed, 11 Oct 2017 09:22:24 +0200 Subject: [PATCH] Fixed handling VPS events outside the LingerLimit, which could cause recordings to stop prematurely --- CONTRIBUTORS | 2 ++ HISTORY | 4 +++- eit.c | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 2c713a2d..3c02c1c1 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2837,6 +2837,8 @@ Johann Friedrichs false for reporting an invalid lock sequence in the epgsearch plugin, which turned out to be an abandoned member of class cSchedulesLock + for fixing handling VPS events outside the LingerLimit, which could cause recordings to + stop prematurely Timo Helkio for reporting a hangup when replaying a TS recording with subtitles activated diff --git a/HISTORY b/HISTORY index 933b815b..823fc060 100644 --- a/HISTORY +++ b/HISTORY @@ -9162,9 +9162,11 @@ Video Disk Recorder Revision History a subdirectory. - SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details). -2017-08-31: Version 2.3.9 +2017-10-11: Version 2.3.9 - Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed a possible crash when stopping VDR (thanks to Matthias Senzel for reporting and helping to debug this one). +- Fixed handling VPS events outside the LingerLimit, which could cause recordings to + stop prematurely (thanks to Johann Friedrichs). diff --git a/eit.c b/eit.c index ade79286..68872525 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 4.3 2017/05/03 08:58:41 kls Exp $ + * $Id: eit.c 4.4 2017/10/11 09:19:42 kls Exp $ */ #include "eit.h" @@ -94,10 +94,10 @@ cEIT::cEIT(cSectionSyncerHash &SectionSyncerHash, int Source, u_char Tid, const // 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 (StartTime == 0 || StartTime > 0 && Duration == 0) continue; + Empty = false; // Ignore events that ended before the "EPG linger time": if (StartTime + Duration < LingerLimit) continue; - Empty = false; if (!SegmentStart) SegmentStart = StartTime; SegmentEnd = StartTime + Duration;