summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-02-12 15:45:59 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2012-02-12 15:45:59 +0100
commit1e74f596b238358fe0b348208d4ef714ce5dd9f2 (patch)
treedc5f7b77ca5f17747eda8a64351376072790245b
parentcace8bed8d05444168ab82d0042f6ac5193befb4 (diff)
downloadvdr-1e74f596b238358fe0b348208d4ef714ce5dd9f2.tar.gz
vdr-1e74f596b238358fe0b348208d4ef714ce5dd9f2.tar.bz2
Fixed a possible crash when canceling VDR while displaying subtitles, and the primary device is no longer available
-rw-r--r--HISTORY2
-rw-r--r--device.c5
-rw-r--r--dvbdevice.c3
3 files changed, 7 insertions, 3 deletions
diff --git a/HISTORY b/HISTORY
index fe486796..54e72a0d 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6855,3 +6855,5 @@ Video Disk Recorder Revision History
faster in case the file is very large (suggested by Helmut Auer).
- Fixed selecting the primary device for receiving the live viewing channel in
case it is bonded with an other device and has no receiver attached to it.
+- Fixed a possible crash when canceling VDR while displaying subtitles, and the
+ primary device is no longer available.
diff --git a/device.c b/device.c
index 714668db..5ffc28d1 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.46 2012/01/18 10:43:00 kls Exp $
+ * $Id: device.c 2.47 2012/02/12 15:44:06 kls Exp $
*/
#include "device.h"
@@ -41,7 +41,8 @@ cLiveSubtitle::~cLiveSubtitle()
void cLiveSubtitle::Receive(uchar *Data, int Length)
{
- cDevice::PrimaryDevice()->PlayTs(Data, Length);
+ if (cDevice::PrimaryDevice())
+ cDevice::PrimaryDevice()->PlayTs(Data, Length);
}
// --- cDeviceHook -----------------------------------------------------------
diff --git a/dvbdevice.c b/dvbdevice.c
index 2966ef33..ca522e8b 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.60 2012/02/12 12:38:49 kls Exp $
+ * $Id: dvbdevice.c 2.61 2012/02/12 15:45:10 kls Exp $
*/
#include "dvbdevice.h"
@@ -1008,6 +1008,7 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend)
numModulations = 0;
bondedDevice = NULL;
needsDetachBondedReceivers = false;
+ tsBuffer = NULL;
// Devices that are present on all card types: