summaryrefslogtreecommitdiff
path: root/dvbdevice.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2014-01-20 12:14:30 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2014-01-20 12:14:30 +0100
commit6e2f0f695f0c537ddeb0c61b51e298caf29bcbb3 (patch)
tree0f3f2da4fe0d11e0cd997ae3d37916c80e13865a /dvbdevice.c
parent6f9929b1c0c3a5faa5377eebbc761894b4d98613 (diff)
downloadvdr-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.c18
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;