diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2015-01-09 09:46:57 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2015-01-09 09:46:57 +0100 |
commit | 7fac1d4ae2284b8789b3042dc261393589649206 (patch) | |
tree | 81b9d0e3d4f173aa3f6b84c0bad3e5e5f00da2ed /ci.c | |
parent | 52620f147b21d979780ca3e2e849caa5138fbeba (diff) | |
download | vdr-7fac1d4ae2284b8789b3042dc261393589649206.tar.gz vdr-7fac1d4ae2284b8789b3042dc261393589649206.tar.bz2 |
Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS
Diffstat (limited to 'ci.c')
-rw-r--r-- | ci.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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" @@ -123,6 +123,7 @@ public: virtual ~cCaPidReceiver() { Detach(); } virtual void Receive(uchar *Data, int Length); bool HasCaPids(void) { return NumPids() - emmPids.Size() - 1 > 0; } + void Reset(void) { DelEmmPids(); } }; cCaPidReceiver::cCaPidReceiver(void) @@ -1931,6 +1932,11 @@ void cCamSlot::SendCaPmt(uint8_t CmdId) else { cCiCaPmt CaPmt(CmdId, 0, 0, 0, NULL); cas->SendPMT(&CaPmt); + if (caPidReceiver) { + if (cDevice *d = Device()) + d->Detach(caPidReceiver); + caPidReceiver->Reset(); + } } } } |