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