From 21186ced9724572d95b62e8643677e3ba23fe627 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 25 Nov 2012 14:02:47 +0100 Subject: [PATCH] Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() --- CONTRIBUTORS | 2 ++ HISTORY | 4 +++- cutter.c | 6 ++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 9e2317ff..027a99bf 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2970,6 +2970,8 @@ S for a patch that was used to move cleaning up the EPG data and writing the epg.data file into a separate thread to avoid sluggish response to user input on slow systems for fixing sorting folders before recordings in case of UTF-8 + for reporting that cCuttingThread::GetPendingPackets() should get only non-video + packets Peter Münster for fixing 'make install' to not overwrite existing configuration files diff --git a/HISTORY b/HISTORY index cee01aa2..64c1b664 100644 --- a/HISTORY +++ b/HISTORY @@ -7339,10 +7339,12 @@ Video Disk Recorder Revision History - Modified editing marks are now written to disk whenever the replay progress display gets hidden (thanks to Christoph Haubrich). -2012-11-21: Version 1.7.33 +2012-11-25: Version 1.7.33 - In order to be able to play TS recordings from other sources, in which there is more than one PMT PID in the PAT, 'int cPatPmtParser::PatPmt(void)' has been changed to 'bool cPatPmtParser::IsPatPmt(int Pid)'. - Fixed learning remote control keys with the LCARS skin. - Updated the Macedonian OSD texts (thanks to Dimitar Petrovski). +- Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() (reported + by Sören Moch). diff --git a/cutter.c b/cutter.c index 42b966aa..e6de47ea 100644 --- a/cutter.c +++ b/cutter.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: cutter.c 2.17 2012/11/19 10:21:44 kls Exp $ + * $Id: cutter.c 2.18 2012/11/25 13:59:07 kls Exp $ */ #include "cutter.h" @@ -408,8 +408,10 @@ void cCuttingThread::GetPendingPackets(uchar *Data, int &Length, int Index, int6 int Pid = TsPid(p); if (Pid == PATPID) PatPmtParser.ParsePat(p, TS_SIZE); - else if (PatPmtParser.IsPmtPid(Pid)) + else if (PatPmtParser.IsPmtPid(Pid)) { PatPmtParser.ParsePmt(p, TS_SIZE); + Processed[PatPmtParser.Vpid()] = true; // we only want non-video packets + } else if (!Processed[Pid]) { int64_t Pts = TsGetPts(p, TS_SIZE); if (Pts >= 0) {