Fixed detaching receivers from devices in case a CAM needs to receive the TS

This commit is contained in:
Klaus Schmidinger 2015-01-07 13:00:33 +01:00
parent f3d583b124
commit 52620f147b
3 changed files with 12 additions and 5 deletions

View File

@ -3289,3 +3289,7 @@ Tony Houghton <h@realh.co.uk>
Christian Winkler <winkler_chr@yahoo.de> Christian Winkler <winkler_chr@yahoo.de>
for reporting a problem with transfer mode on full featured DVB cards for encrypted for reporting a problem with transfer mode on full featured DVB cards for encrypted
channels that have no audio pid channels that have no audio pid
Dietmar Spingler <d_spingler@gmx.de>
for reporting a problem that led to a fix in detaching receivers from devices in case
a CAM needs to receive the TS

View File

@ -8307,7 +8307,7 @@ Video Disk Recorder Revision History
- The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and - The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
the functional modification to cFont::CreateFont(). the functional modification to cFont::CreateFont().
2015-01-06: Version 2.1.7 2015-01-07: Version 2.1.7
- No longer logging an error message in DirSizeMB() if the given directory doesn't - No longer logging an error message in DirSizeMB() if the given directory doesn't
exist. This avoids lots of log entries in case several VDRs use the same video exist. This avoids lots of log entries in case several VDRs use the same video
@ -8336,3 +8336,5 @@ Video Disk Recorder Revision History
the scaling in hardware or otherwise more efficiently (thanks to Thomas Reufer). the scaling in hardware or otherwise more efficiently (thanks to Thomas Reufer).
- Increased the PMT_SCAN_TIMEOUT to avoid timeouts when scanning PMTs (thanks to - Increased the PMT_SCAN_TIMEOUT to avoid timeouts when scanning PMTs (thanks to
Rolf Ahrenberg). Rolf Ahrenberg).
- Fixed detaching receivers from devices in case a CAM needs to receive the TS
(reported by Dietmar Spingler).

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: device.c 3.15 2014/03/15 13:23:28 kls Exp $ * $Id: device.c 3.16 2015/01/07 12:53:55 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -1699,10 +1699,11 @@ void cDevice::Detach(cReceiver *Receiver)
receiversLeft = true; receiversLeft = true;
} }
if (camSlot) { if (camSlot) {
if (Receiver->priority > MINPRIORITY) // priority check to avoid an infinite loop with the CAM slot's caPidReceiver if (Receiver->priority > MINPRIORITY) { // priority check to avoid an infinite loop with the CAM slot's caPidReceiver
camSlot->StartDecrypting(); camSlot->StartDecrypting();
if (!camSlot->IsDecrypting()) if (!camSlot->IsDecrypting())
camSlot->Assign(NULL); camSlot->Assign(NULL);
}
} }
if (!receiversLeft) if (!receiversLeft)
Cancel(-1); Cancel(-1);