From 568ca0e773b5a04bfde9d855d1df524630c550b3 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Wed, 1 Jul 2020 15:16:21 +0200 Subject: [PATCH] Fixed handling inactive shared CA pids --- CONTRIBUTORS | 1 + HISTORY | 1 + ci.c | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index cbac654d..a89bfd3c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3616,6 +3616,7 @@ Helmut Binder for adding CRC check of the CAT in cCaPidReceiver::Receive() for reporting that the 'else if' branch in cDevice::GetDeviceForTransponder() hasn't been active since version 1.7.29 + for fixing handling inactive shared CA pids Ulrich Eckhardt for reporting a problem with shutdown after user inactivity in case a plugin is diff --git a/HISTORY b/HISTORY index c478d6f5..3b3a4074 100644 --- a/HISTORY +++ b/HISTORY @@ -9507,3 +9507,4 @@ Video Disk Recorder Revision History - Now setting currentDisplayChannel = NULL before calling cStatus::MsgOsdClear() in ~cDisplayChannel(), to avoid possible problems in case a plugin calls IsOpen() (reported by Thomas Reufer). +- Fixed handling inactive shared CA pids (thanks to Helmut Binder). diff --git a/ci.c b/ci.c index 2951273a..db79b723 100644 --- a/ci.c +++ b/ci.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 4.29 2020/06/27 10:05:56 kls Exp $ + * $Id: ci.c 4.30 2020/07/01 15:16:21 kls Exp $ */ #include "ci.h" @@ -2557,7 +2557,7 @@ void cCamSlot::KeepSharedCaPids(int ProgramNumber, const int *CaSystemIds, int * return; int CaPids2[MAXRECEIVEPIDS + 1]; for (cCiCaProgramData *p = caProgramList.First(); p; p = caProgramList.Next(p)) { - if (p->programNumber != ProgramNumber) { + if (p->Active()) { if (GetCaPids(source, transponder, p->programNumber, CaSystemIds, MAXRECEIVEPIDS + 1, CaPids2) > 0) { int *pCaPids2 = CaPids2; while (*pCaPids2) {