1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS

This commit is contained in:
Klaus Schmidinger 2015-01-09 09:46:57 +01:00
parent 52620f147b
commit 7fac1d4ae2
3 changed files with 12 additions and 2 deletions

View File

@ -3293,3 +3293,5 @@ Christian Winkler <winkler_chr@yahoo.de>
Dietmar Spingler <d_spingler@gmx.de> Dietmar Spingler <d_spingler@gmx.de>
for reporting a problem that led to a fix in detaching receivers from devices in case for reporting a problem that led to a fix in detaching receivers from devices in case
a CAM needs to receive the TS a CAM needs to receive the TS
for reporting a problem that led to a fix with EMM pids not being properly reset for
CAMs that need 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-07: Version 2.1.7 2015-01-09: 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
@ -8338,3 +8338,5 @@ Video Disk Recorder Revision History
Rolf Ahrenberg). Rolf Ahrenberg).
- Fixed detaching receivers from devices in case a CAM needs to receive the TS - Fixed detaching receivers from devices in case a CAM needs to receive the TS
(reported by Dietmar Spingler). (reported by Dietmar Spingler).
- Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS
(reported by Dietmar Spingler).

8
ci.c
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: ci.c 3.13 2014/03/26 11:51:09 kls Exp $ * $Id: ci.c 3.14 2015/01/09 09:41:20 kls Exp $
*/ */
#include "ci.h" #include "ci.h"
@ -123,6 +123,7 @@ public:
virtual ~cCaPidReceiver() { Detach(); } virtual ~cCaPidReceiver() { Detach(); }
virtual void Receive(uchar *Data, int Length); virtual void Receive(uchar *Data, int Length);
bool HasCaPids(void) { return NumPids() - emmPids.Size() - 1 > 0; } bool HasCaPids(void) { return NumPids() - emmPids.Size() - 1 > 0; }
void Reset(void) { DelEmmPids(); }
}; };
cCaPidReceiver::cCaPidReceiver(void) cCaPidReceiver::cCaPidReceiver(void)
@ -1931,6 +1932,11 @@ void cCamSlot::SendCaPmt(uint8_t CmdId)
else { else {
cCiCaPmt CaPmt(CmdId, 0, 0, 0, NULL); cCiCaPmt CaPmt(CmdId, 0, 0, 0, NULL);
cas->SendPMT(&CaPmt); cas->SendPMT(&CaPmt);
if (caPidReceiver) {
if (cDevice *d = Device())
d->Detach(caPidReceiver);
caPidReceiver->Reset();
}
} }
} }
} }