From 96ce9817131c79b862916bdf2fdbd31b596bdb29 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 23 Jan 2010 15:39:15 +0100 Subject: [PATCH] Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 1800 --- HISTORY | 4 +++- remux.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/HISTORY b/HISTORY index 73f0da91..d389f6fb 100644 --- a/HISTORY +++ b/HISTORY @@ -6276,7 +6276,7 @@ Video Disk Recorder Revision History - Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to Anssi Hannula). -2010-01-17: Version 1.7.12 +2010-01-23: Version 1.7.12 - Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group". - Updated the Estonian OSD texts (thanks to Arthur Konovalov). @@ -6294,3 +6294,5 @@ Video Disk Recorder Revision History - The new setup option "Miscellaneous/Channels wrap" controls whether the current channel wraps around the beginning or end of the channel list when zapping (thanks to Matti Lehtimäki). +- Fixed determining the frame duration on channels where the PTS deltas jitter by + +/-1 around 1800. diff --git a/remux.c b/remux.c index c8610327..5c41e3cb 100644 --- a/remux.c +++ b/remux.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remux.c 2.37 2009/12/31 15:35:37 kls Exp $ + * $Id: remux.c 2.38 2010/01/23 15:39:15 kls Exp $ */ #include "remux.h" @@ -845,7 +845,7 @@ int cFrameDetector::Analyze(const uchar *Data, int Length) frameDuration = 3600; // PAL, 25 fps else if (Delta % 3003 == 0) frameDuration = 3003; // NTSC, 29.97 fps - else if (Delta == 1800) { + else if (abs(Delta - 1800) <= 1) { frameDuration = 3600; // PAL, 25 fps framesPerPayloadUnit = -2; }