diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2012-01-17 15:37:52 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2012-01-17 15:37:52 +0100 |
commit | f8d0f773070e8ac498ff408d35cf9e5daa8f3aa3 (patch) | |
tree | 026905d85689d004b1da2225ecb841de649f0e8d | |
parent | 9cd835b35e7dda160740efc9a03a2d05326a459a (diff) | |
download | vdr-f8d0f773070e8ac498ff408d35cf9e5daa8f3aa3.tar.gz vdr-f8d0f773070e8ac498ff408d35cf9e5daa8f3aa3.tar.bz2 |
Fixed asserting there is a live programme if the primary device is bonded with a device that starts a recording on a different band
-rw-r--r-- | HISTORY | 4 | ||||
-rw-r--r-- | device.c | 10 | ||||
-rw-r--r-- | device.h | 5 | ||||
-rw-r--r-- | dvbdevice.c | 4 |
4 files changed, 19 insertions, 4 deletions
@@ -6836,7 +6836,7 @@ Video Disk Recorder Revision History - Fixed frozen live view with device bonding in case the bonded master is used for 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). - 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. - Improved the way DVB_API_VERSION is checked. - 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. @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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" @@ -531,6 +531,14 @@ bool cDevice::SetPid(cPidHandle *Handle, int Type, bool On) 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) { if (!sectionHandler) { @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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 @@ -354,6 +354,9 @@ protected: ///< Handle->used indicates how many receivers are using this PID. ///< Type indicates some special types of PIDs, which the device may ///< need to set in a specific way. +public: + void DelLivePids(void); + ///< Deletes the live viewing PIDs. // Section filter facilities diff --git a/dvbdevice.c b/dvbdevice.c index 7a6c7508..62f7c753 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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" @@ -502,6 +502,8 @@ void cDvbTuner::SetChannel(const cChannel *Channel) tunerStatus = tsIdle; ResetToneAndVoltage(); } + if (bondedTuner && device->IsPrimaryDevice()) + cDevice::PrimaryDevice()->DelLivePids(); // 'device' is const, so we must do it this way } bool cDvbTuner::Locked(int TimeoutMs) |