diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2017-03-19 13:33:53 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2017-03-19 13:33:53 +0100 |
commit | e2756f8e9ad544ff085a44a0e26338257172e85a (patch) | |
tree | 4a44bca60a5f67993a9e31bcf0cdc2bc7f0736b0 /mtd.c | |
parent | 367557039aae419f28c2ff44700f77bec8f498e4 (diff) | |
download | vdr-e2756f8e9ad544ff085a44a0e26338257172e85a.tar.gz vdr-e2756f8e9ad544ff085a44a0e26338257172e85a.tar.bz2 |
Now clearing the MTD buffer
Diffstat (limited to 'mtd.c')
-rw-r--r-- | mtd.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: mtd.c 1.1 2017/03/18 14:31:34 kls Exp $ + * $Id: mtd.c 1.2 2017/03/19 13:33:53 kls Exp $ */ #include "mtd.h" @@ -223,6 +223,7 @@ cMtdCamSlot::cMtdCamSlot(cCamSlot *MasterSlot, int Index) mtdBuffer = new cRingBufferLinear(MTD_BUFFER_SIZE, TS_SIZE, true, "MTD buffer"); mtdMapper = new cMtdMapper(Index + 1, MasterSlot->SlotNumber()); delivered = false; + clearBuffer = false; ciAdapter = MasterSlot->ciAdapter; // we don't pass the CI adapter in the constructor, to prevent this one from being inserted into CamSlots } @@ -271,7 +272,7 @@ void cMtdCamSlot::StopDecrypting(void) { cCamSlot::StopDecrypting(); mtdMapper->Clear(); - //XXX mtdBuffer->Clear(); //XXX would require locking? + clearBuffer = true; } bool cMtdCamSlot::IsDecrypting(void) @@ -297,6 +298,10 @@ uchar *cMtdCamSlot::Decrypt(uchar *Data, int &Count) mtdBuffer->Del(TS_SIZE); delivered = false; } + if (clearBuffer) { + mtdBuffer->Clear(); + clearBuffer = false; + } // Receive data from buffer: int c = 0; uchar *d = mtdBuffer->Get(c); |