Fixed handling the PrimaryLimit when requesting a device for live viewing

This commit is contained in:
Klaus Schmidinger 2012-02-15 12:22:21 +01:00
parent 8dc6eb0cda
commit 825dd70bc4
3 changed files with 7 additions and 3 deletions

View File

@ -272,6 +272,8 @@ Uwe Scheffler <linux_dvb@uni.de>
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 <matjaz.thaler@guest.arnes.si>
for improving AC3 decoding when replaying DVDs

View File

@ -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).

View File

@ -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