1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed asserting there is a live programme if the primary device is bonded with a device that starts a recording on a different band

This commit is contained in:
Klaus Schmidinger 2012-01-17 15:37:52 +01:00
parent 9cd835b35e
commit f8d0f77307
4 changed files with 19 additions and 4 deletions

View File

@ -6836,7 +6836,7 @@ Video Disk Recorder Revision History
- Fixed frozen live view with device bonding in case the bonded master is used for - Fixed frozen live view with device bonding in case the bonded master is used for
live viewing (reported by Uwe Scheffler). live viewing (reported by Uwe Scheffler).
2012-01-16: Version 1.7.24 2012-01-17: Version 1.7.24
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Italian OSD texts (thanks to Diego Pierotto).
- Revoked "Fixed handling symbolic links in cRecordings::ScanVideoDir()". - Revoked "Fixed handling symbolic links in cRecordings::ScanVideoDir()".
@ -6845,3 +6845,5 @@ Video Disk Recorder Revision History
- Fixed a high load in case a transponder can't be received. - Fixed a high load in case a transponder can't be received.
- Improved the way DVB_API_VERSION is checked. - Improved the way DVB_API_VERSION is checked.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed asserting there is a live programme if the primary device is bonded with
a device that starts a recording on a different band.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 2.44 2011/10/16 14:36:43 kls Exp $ * $Id: device.c 2.45 2012/01/17 15:28:57 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -531,6 +531,14 @@ bool cDevice::SetPid(cPidHandle *Handle, int Type, bool On)
return false; return false;
} }
void cDevice::DelLivePids(void)
{
for (int i = ptAudio; i < ptOther; i++) {
if (pidHandles[i].pid)
DelPid(pidHandles[i].pid, ePidType(i));
}
}
void cDevice::StartSectionHandler(void) void cDevice::StartSectionHandler(void)
{ {
if (!sectionHandler) { if (!sectionHandler) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.h 2.30 2011/12/04 13:38:17 kls Exp $ * $Id: device.h 2.31 2012/01/17 15:13:10 kls Exp $
*/ */
#ifndef __DEVICE_H #ifndef __DEVICE_H
@ -354,6 +354,9 @@ protected:
///< Handle->used indicates how many receivers are using this PID. ///< Handle->used indicates how many receivers are using this PID.
///< Type indicates some special types of PIDs, which the device may ///< Type indicates some special types of PIDs, which the device may
///< need to set in a specific way. ///< need to set in a specific way.
public:
void DelLivePids(void);
///< Deletes the live viewing PIDs.
// Section filter facilities // Section filter facilities

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 2.58 2012/01/16 12:52:01 kls Exp $ * $Id: dvbdevice.c 2.59 2012/01/17 15:16:12 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -502,6 +502,8 @@ void cDvbTuner::SetChannel(const cChannel *Channel)
tunerStatus = tsIdle; tunerStatus = tsIdle;
ResetToneAndVoltage(); ResetToneAndVoltage();
} }
if (bondedTuner && device->IsPrimaryDevice())
cDevice::PrimaryDevice()->DelLivePids(); // 'device' is const, so we must do it this way
} }
bool cDvbTuner::Locked(int TimeoutMs) bool cDvbTuner::Locked(int TimeoutMs)