Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: First experiences with vdr 1.3.0 and UPT-Error
Martin Holst wrote:
>
> Hi
>
> I've installed vdr 1.3 and tested heavily zapping on the secondary card
> while recording on the first card (this situation produces UPT-errors with vdr
> 1.1.28-1.2.6). With 1.3.0 I get _no_ UPT error in this situation. I can't say,
> that this error is gone. But at least in my case it prevent the UPT-error in
> the described case.
>
> But I have some restarts. In the syslog I only found "watchdog expired" and
> nothing more. I will increase the watchdog timer (in the moment I have 30
> seconds) and will continue testing.
This was caused by the EPG scanner when no non-primary device was available.
The attached patch fixes this.
I'll do some other fixes and enhancements today and tomorrow, and then will
release a version 1.3.1.
Klaus
--- eitscan.c 2004/01/04 14:54:01 1.15
+++ eitscan.c 2004/01/05 09:51:25
@@ -110,13 +110,11 @@
for (bool AnyDeviceSwitched = false; !AnyDeviceSwitched; ) {
cScanData *ScanData = NULL;
for (int i = 0; i < cDevice::NumDevices(); i++) {
- cDevice *Device = cDevice::GetDevice(i);
- if (Device) {
- if (Device != cDevice::PrimaryDevice() || (cDevice::NumDevices() == 1 && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
- if (!(Device->Receiving(true) || Device->Replaying())) {
- if (!ScanData)
- ScanData = scanList->First();
- if (ScanData) {
+ if (ScanData || (ScanData = scanList->First()) != NULL) {
+ cDevice *Device = cDevice::GetDevice(i);
+ if (Device) {
+ if (Device != cDevice::PrimaryDevice() || (cDevice::NumDevices() == 1 && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
+ if (!(Device->Receiving(true) || Device->Replaying())) {
cChannel *Channel = ScanData->GetChannel();
//XXX if (Device->ProvidesTransponder(Channel)) {
if ((!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) && Device->ProvidesTransponder(Channel)) { //XXX temporary for the 'sky' plugin
@@ -130,11 +128,11 @@
AnyDeviceSwitched = true;
}
}
- else
- break;
}
}
}
+ else
+ break;
}
if (ScanData && !AnyDeviceSwitched) {
scanList->Del(ScanData);
@@ -146,9 +144,9 @@
break;
}
}
- Channels.Unlock();
- lastScan = time(NULL);
}
+ lastScan = time(NULL);
+ Channels.Unlock();
}
}
}
Home |
Main Index |
Thread Index