diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 6cb72d1c..a7f9c5cd 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -272,6 +272,8 @@ Uwe Scheffler for helping to test new DVB-T handling for reporting a bug in switching the video format in the Setup/DVB menu for reporting a problem with frozen live view in conjunction with device bonding + for reporting a problem in handling the PrimaryLimit when requesting a device for + live viewing Matjaz Thaler for improving AC3 decoding when replaying DVDs diff --git a/HISTORY b/HISTORY index b1d897a1..ea1ec5f1 100644 --- a/HISTORY +++ b/HISTORY @@ -6847,7 +6847,7 @@ Video Disk Recorder Revision History - Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4 (backport from version 1.7.9, thanks to Ralf Schueler). -2012-02-14: Version 1.7.24 +2012-02-15: Version 1.7.24 - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed a high load in case a transponder can't be received. @@ -6873,3 +6873,5 @@ Video Disk Recorder Revision History log file). - Added a missing '.' after the month in VPS strings. - Added some missing 'const' to cDevice (thanks to Joachim Wilke). +- Fixed handling the PrimaryLimit when requesting a device for live viewing + (reported by Uwe Scheffler). diff --git a/device.c b/device.c index 5ffc28d1..04cc7b5a 100644 --- a/device.c +++ b/device.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 2.47 2012/02/12 15:44:06 kls Exp $ + * $Id: device.c 2.48 2012/02/15 12:14:32 kls Exp $ */ #include "device.h" @@ -271,7 +271,7 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView if (NumUsableSlots && !CamSlots.Get(j)->Assign(device[i], true)) continue; // CAM slot can't be used with this device bool ndr; - if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job + if (device[i]->ProvidesChannel(Channel, (LiveView && device[i]->IsPrimaryDevice()) ? Setup.PrimaryLimit : Priority, &ndr)) { // this device is basicly able to do the job if (NumUsableSlots && device[i]->CamSlot() && device[i]->CamSlot() != CamSlots.Get(j)) ndr = true; // using a different CAM slot requires detaching receivers // Put together an integer number that reflects the "impact" using