summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY4
-rw-r--r--pat.c6
3 files changed, 8 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 12746d53..6b29cd93 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -3636,6 +3636,8 @@ Helmut Binder <cco@aon.at>
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
for fixing "read incomplete section" errors
for fixing generating the HashId in cEIT::cEIT()
+ for fixing a bug in handling shared PMTs, where after the first pass not all SIDs of a
+ PMT pid were checked any more
Ulrich Eckhardt <uli@uli-eckhardt.de>
for reporting a problem with shutdown after user inactivity in case a plugin is
diff --git a/HISTORY b/HISTORY
index 6a5ade48..aa45d400 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9536,7 +9536,7 @@ Video Disk Recorder Revision History
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
(thanks to Helmut Binder).
-2020-12-05:
+2020-12-09:
- Fixed multiple recording entries in case a recording is started during the initial
reading of the video directory (reported by Claus Muus).
@@ -9549,3 +9549,5 @@ Video Disk Recorder Revision History
- Fixed "read incomplete section" errors (thanks to Helmut Binder).
- Fixed generating the HashId in cEIT::cEIT() (thanks to Helmut Binder).
- Added initialization of cDvbFrontend::frontendInfo (thanks to Winfried Köhler).
+- Fixed a bug in handling shared PMTs, where after the first pass not all SIDs of a
+ PMT pid were checked any more (thanks to Helmut Binder).
diff --git a/pat.c b/pat.c
index 2f2e286c..eccec25b 100644
--- a/pat.c
+++ b/pat.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: pat.c 4.6 2020/06/19 12:19:15 kls Exp $
+ * $Id: pat.c 4.7 2020/12/09 21:42:26 kls Exp $
*/
#include "pat.h"
@@ -389,8 +389,7 @@ bool cPatFilter::PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNew
if (se->Sid() == Sid && se->Pid() == PmtPid) {
if (!se->Received()) {
se->SetReceived(true);
- if (PmtPidComplete(PmtPid))
- se->PidEntry()->SetComplete(true);
+ se->PidEntry()->SetComplete(PmtPidComplete(PmtPid));
}
if (se->Version() != Version) {
DBGLOG("PMT %d %2d %5d/%d %2d -> %2d", Transponder(), i, PmtPid, Sid, se->Version(), Version);
@@ -411,6 +410,7 @@ void cPatFilter::SwitchToNextPmtPid(void)
if (!(activePmt = pmtPidList.Next(activePmt)))
activePmt = pmtPidList.First();
PmtPidReset(activePmt->Pid());
+ activePmt->SetComplete(false);
Add(activePmt->Pid(), SI::TableIdPMT);
}
}