1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed mapping the frame type bits when detecting independent frames in MPEG 4 video

This commit is contained in:
Klaus Schmidinger 2012-09-14 09:11:18 +02:00
parent cc16e9fdc7
commit c9ac6f5196
3 changed files with 8 additions and 4 deletions

View File

@ -1322,6 +1322,8 @@ Reinhard Nissl <rnissl@gmx.de>
for reporting that the Transfer Mode indicator bitmap in the LCARS skin may not for reporting that the Transfer Mode indicator bitmap in the LCARS skin may not
fit with small font sizes fit with small font sizes
for reporting a race condition when zapping in transfer mode 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> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -7235,7 +7235,9 @@ Video Disk Recorder Revision History
function in order to make use of this new feature. See, for instance, the function function in order to make use of this new feature. See, for instance, the function
cSkinClassicDisplayMenu::SetButtons() in skinclassic.c for details. 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 - 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. 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).

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.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" #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 if (FrameTypeOffset >= TS_SIZE) // the byte to check is in the next TS packet
i = SkipPackets(Data, Length, Processed, FrameTypeOffset); i = SkipPackets(Data, Length, Processed, FrameTypeOffset);
newFrame = true; newFrame = true;
uchar FrameType = Data[FrameTypeOffset]; uchar FrameType = Data[FrameTypeOffset] & 0xE0;
independentFrame = FrameType == 0x10; independentFrame = FrameType == 0x00;
if (synced) { if (synced) {
if (framesPerPayloadUnit < 0) { if (framesPerPayloadUnit < 0) {
payloadUnitOfFrame = (payloadUnitOfFrame + 1) % -framesPerPayloadUnit; payloadUnitOfFrame = (payloadUnitOfFrame + 1) % -framesPerPayloadUnit;