diff options
| -rw-r--r-- | CONTRIBUTORS | 2 | ||||
| -rw-r--r-- | HISTORY | 4 | ||||
| -rw-r--r-- | remux.c | 6 | 
3 files changed, 8 insertions, 4 deletions
| diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 8d2496d1..ec8163ed 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1322,6 +1322,8 @@ Reinhard Nissl <rnissl@gmx.de>   for reporting that the Transfer Mode indicator bitmap in the LCARS skin may not   fit with small font sizes   for reporting a race condition when zapping in transfer mode + for reporting an error in mapping the frame type bits when detecting independent + frames in MPEG 4 video  Richard Robson <richard_robson@beeb.net>   for reporting freezing replay if a timer starts while in Transfer Mode from the @@ -7235,7 +7235,9 @@ Video Disk Recorder Revision History    function in order to make use of this new feature. See, for instance, the function    cSkinClassicDisplayMenu::SetButtons() in skinclassic.c for details. -2012-09-13: Version 1.7.31 +2012-09-14: Version 1.7.31  - If regenerating an index file fails and no data is written to the file, VDR now    reports this error and removes the empty index file. +- Fixed mapping the frame type bits when detecting independent frames in MPEG 4 +  video (reported by Reinhard Nissl). @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: remux.c 2.64 2012/03/02 10:56:49 kls Exp $ + * $Id: remux.c 2.65 2012/09/14 09:06:14 kls Exp $   */  #include "remux.h" @@ -974,8 +974,8 @@ int cFrameDetector::Analyze(const uchar *Data, int Length)                                 if (FrameTypeOffset >= TS_SIZE) // the byte to check is in the next TS packet                                    i = SkipPackets(Data, Length, Processed, FrameTypeOffset);                                 newFrame = true; -                               uchar FrameType = Data[FrameTypeOffset]; -                               independentFrame = FrameType == 0x10; +                               uchar FrameType = Data[FrameTypeOffset] & 0xE0; +                               independentFrame = FrameType == 0x00;                                 if (synced) {                                    if (framesPerPayloadUnit < 0) {                                       payloadUnitOfFrame = (payloadUnitOfFrame + 1) % -framesPerPayloadUnit; | 
