From 40b599f1c793ec7b485f626d444044de387cf204 Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <vdr@tvdr.de>
Date: Thu, 18 Jan 2001 19:53:54 +0100
Subject: Encrypted channels no longer need PNR

---
 HISTORY  |  2 ++
 dvbapi.c | 11 ++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/HISTORY b/HISTORY
index d20075e2..716bbaee 100644
--- a/HISTORY
+++ b/HISTORY
@@ -347,3 +347,5 @@ Video Disk Recorder Revision History
 - The current channel is now saved in the 'setup.conf' file when VDR is cancelled,
   and will be restored next time it is started (thanks to Deti Fliegl).
 - The EIT scanning thread is now locked when switching channels to avoid problems.
+- Encrypted channels can now be selected even without knowing the PNR (however, it
+  is still necessary for the EPG info).
diff --git a/dvbapi.c b/dvbapi.c
index 54f6fe53..e583baf9 100644
--- a/dvbapi.c
+++ b/dvbapi.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: dvbapi.c 1.49 2001/01/18 17:03:34 kls Exp $
+ * $Id: dvbapi.c 1.50 2001/01/18 19:53:54 kls Exp $
  */
 
 #include "dvbapi.h"
@@ -844,6 +844,12 @@ int cRecordBuffer::Synchronize(void)
 
   pictureType = NO_PICTURE;
 
+  //XXX remove this once the buffer is handled with two separate threads:
+  if (!synced && Free() < 100000) {
+     dsyslog(LOG_INFO, "unable to synchronize, dropped %d bytes", Available());
+     Clear();
+     return 0;
+     }
   for (int i = 0; Available() > MINVIDEODATA && i < MINVIDEODATA; i++) {
       if (Byte(i) == 0 && Byte(i + 1) == 0 && Byte(i + 2) == 1) {
          switch (Byte(i + 3)) {
@@ -2176,8 +2182,7 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization,
         freq -= Setup.LnbFrequLo;
      else
         freq -= Setup.LnbFrequHi;
-     front.channel_flags = Ca ? DVB_CHANNEL_CA : DVB_CHANNEL_FTA;
-     front.pnr       = Pnr;
+     front.pnr       = 0;
      front.freq      = freq * 1000000UL;
      front.diseqc    = Diseqc;
      front.srate     = Srate * 1000;
-- 
cgit v1.2.3