Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 1800

This commit is contained in:
Klaus Schmidinger 2010-01-23 15:39:15 +01:00
parent eb394c68f1
commit 96ce981713
2 changed files with 5 additions and 3 deletions

View File

@ -6276,7 +6276,7 @@ Video Disk Recorder Revision History
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to - Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
Anssi Hannula). 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". - Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
- Updated the Estonian OSD texts (thanks to Arthur Konovalov). - 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 - 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 channel wraps around the beginning or end of the channel list when zapping (thanks
to Matti Lehtimäki). to Matti Lehtimäki).
- Fixed determining the frame duration on channels where the PTS deltas jitter by
+/-1 around 1800.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "remux.h"
@ -845,7 +845,7 @@ int cFrameDetector::Analyze(const uchar *Data, int Length)
frameDuration = 3600; // PAL, 25 fps frameDuration = 3600; // PAL, 25 fps
else if (Delta % 3003 == 0) else if (Delta % 3003 == 0)
frameDuration = 3003; // NTSC, 29.97 fps frameDuration = 3003; // NTSC, 29.97 fps
else if (Delta == 1800) { else if (abs(Delta - 1800) <= 1) {
frameDuration = 3600; // PAL, 25 fps frameDuration = 3600; // PAL, 25 fps
framesPerPayloadUnit = -2; framesPerPayloadUnit = -2;
} }