summaryrefslogtreecommitdiff
path: root/dvbspu.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-11-05 12:12:18 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2005-11-05 12:12:18 +0100
commit596e965a5334fec97b4ee4fd19223b6acfacf680 (patch)
treec4b91241f306ef94c9736bdad5e4137c863c66e7 /dvbspu.c
parent9607fd33a061530b3e26e2ffae14e87548b016ba (diff)
downloadvdr-596e965a5334fec97b4ee4fd19223b6acfacf680.tar.gz
vdr-596e965a5334fec97b4ee4fd19223b6acfacf680.tar.bz2
Fixed a race condition in the SPU decoder
Diffstat (limited to 'dvbspu.c')
-rw-r--r--dvbspu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/dvbspu.c b/dvbspu.c
index f9a1df41..9887cc05 100644
--- a/dvbspu.c
+++ b/dvbspu.c
@@ -8,7 +8,7 @@
*
* parts of this file are derived from the OMS program.
*
- * $Id: dvbspu.c 1.16 2005/11/04 14:19:07 kls Exp $
+ * $Id: dvbspu.c 1.17 2005/11/05 12:08:15 kls Exp $
*/
#include <assert.h>
@@ -338,6 +338,7 @@ sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDv
void cDvbSpuDecoder::Draw(void)
{
+ cMutexLock MutexLock(&mutex);
if (!spubmp) {
Hide();
return;
@@ -390,6 +391,7 @@ void cDvbSpuDecoder::Draw(void)
void cDvbSpuDecoder::Hide(void)
{
+ cMutexLock MutexLock(&mutex);
delete osd;
osd = NULL;
}