Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: EPG scanning not working correctly



vdr@continuity.cjb.net wrote:
> 
> Hi!
> 
> [Vanilla vdr-1.1.32, linux-dvb.2003-05-10, FTA only (no CI), one Galaxis
> DVB-s card]
> 
> It often happens that as soon as the EPG scan timeout triggers, VDR does
> not switch channels but continues to switch to the same channel:
> 
> May 21 00:12:46 bb vdr[1057]: switching to channel 27
> May 21 00:14:12 bb last message repeated 3 times
> May 21 00:14:55 bb last message repeated 2 times
> May 21 00:15:58 bb last message repeated 2 times
> May 21 00:17:02 bb last message repeated 2 times
> May 21 00:18:07 bb last message repeated 3 times
> 
> Any ideas?

The attached patch should fix this.

I'd like to give you proper credit in the CONTRIBUTORS file for
reporting this, but for that I'd need your real name...

Greetings
Klaus
-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________
--- ./dvbdevice.c	2003/05/03 14:03:20	1.59
+++ ./dvbdevice.c	2003/05/24 13:23:51
@@ -27,6 +27,7 @@
 #include "channels.h"
 #include "diseqc.h"
 #include "dvbosd.h"
+#include "eitscan.h"
 #include "player.h"
 #include "receiver.h"
 #include "status.h"
@@ -657,6 +658,11 @@
   TurnOffLivePIDs = TurnOnLivePIDs = true;
   StartTransferMode = false;
 #endif
+
+  if (EITScanner.Active()) {
+     StartTransferMode = false;
+     TurnOnLivePIDs = false;
+     }
 
   // Stop SI filtering:
 
--- ./eitscan.c	2003/03/16 13:29:55	1.12
+++ ./eitscan.c	2003/05/24 13:34:59
@@ -12,6 +12,8 @@
 #include "channels.h"
 #include "dvbdevice.h"
 
+cEITScanner EITScanner;
+
 cEITScanner::cEITScanner(void)
 {
   lastScan = lastActivity = time(NULL);
@@ -61,8 +63,9 @@
                          if (Channel) {
                             lastChannel[Device->DeviceNumber()] = Channel->Number();
                             if (Channel->Sid() && Device->ProvidesChannel(Channel) && !TransponderScanned(Channel)) {
-                               if (Device == cDevice::PrimaryDevice() && !currentChannel)
+                               if (Device == cDevice::PrimaryDevice() && !currentChannel) {
                                   currentChannel = Device->CurrentChannel();
+                                  }
                                Device->SwitchChannel(Channel, false);
                                break;
                                }
--- ./eitscan.h	2003/03/16 13:20:40	1.2
+++ ./eitscan.h	2003/05/24 13:21:36
@@ -31,4 +31,6 @@
   void Process(void);
   };
 
+extern cEITScanner EITScanner;
+
 #endif //__EITSCAN_H
--- ./vdr.c	2003/05/16 12:11:45	1.155
+++ ./vdr.c	2003/05/24 13:35:13
@@ -429,8 +429,6 @@
   else
      cDevice::PrimaryDevice()->SetVolume(Setup.CurrentVolume, true);
 
-  cEITScanner EITScanner;
-
   cSIProcessor::Read();
 
   // Signal handlers:
@@ -469,7 +467,7 @@
         // Attach launched player control:
         cControl::Attach();
         // Make sure we have a visible programme in case device usage has changed:
-        if (cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
+        if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
            static time_t lastTime = 0;
            if (time(NULL) - lastTime > MINCHANNELWAIT) {
               if (!Channels.SwitchTo(cDevice::CurrentChannel()))

Home | Main Index | Thread Index