diff options
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | 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 <cco@aon.at> 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 <uli@uli-eckhardt.de> for reporting a problem with shutdown after user inactivity in case a plugin is @@ -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). @@ -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) { |