diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2014-01-20 12:14:30 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2014-01-20 12:14:30 +0100 |
commit | 6e2f0f695f0c537ddeb0c61b51e298caf29bcbb3 (patch) | |
tree | 0f3f2da4fe0d11e0cd997ae3d37916c80e13865a /dvbdevice.c | |
parent | 6f9929b1c0c3a5faa5377eebbc761894b4d98613 (diff) | |
download | vdr-6e2f0f695f0c537ddeb0c61b51e298caf29bcbb3.tar.gz vdr-6e2f0f695f0c537ddeb0c61b51e298caf29bcbb3.tar.bz2 |
Now making sure the primary device goes into transfer mode for live viewing if the CAM wants to receive the TS data
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 6842a4ca..6d1c9562 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 3.9 2014/01/16 11:45:22 kls Exp $ + * $Id: dvbdevice.c 3.10 2014/01/20 11:46:26 kls Exp $ */ #include "dvbdevice.h" @@ -1664,12 +1664,18 @@ void cDvbDevice::CloseDvr(void) bool cDvbDevice::GetTSPacket(uchar *&Data) { if (tsBuffer) { - int Available; - Data = tsBuffer->Get(&Available); - if (Data && CamSlot()) { - Data = CamSlot()->Decrypt(Data, Available); - tsBuffer->Skip(Available); + if (cCamSlot *cs = CamSlot()) { + if (cs->WantsTsData()) { + int Available; + Data = tsBuffer->Get(&Available); + if (Data) { + Data = cs->Decrypt(Data, Available); + tsBuffer->Skip(Available); + } + return true; + } } + Data = tsBuffer->Get(); return true; } return false; |