summaryrefslogtreecommitdiff
path: root/dvbspu.c
diff options
context:
space:
mode:
Diffstat (limited to 'dvbspu.c')
-rw-r--r--dvbspu.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/dvbspu.c b/dvbspu.c
index a244578c..44cb7b33 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.10 2005/01/08 09:53:44 kls Exp $
+ * $Id: dvbspu.c 1.11 2005/01/08 09:57:03 kls Exp $
*/
#include <assert.h>
@@ -227,6 +227,7 @@ cDvbSpuDecoder::cDvbSpuDecoder()
spu = NULL;
osd = NULL;
spubmp = NULL;
+ allowedShow = false;
}
cDvbSpuDecoder::~cDvbSpuDecoder()
@@ -236,7 +237,7 @@ cDvbSpuDecoder::~cDvbSpuDecoder()
delete osd;
}
-void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf)
+void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf, bool AllowedShow)
{
setTime(pts);
@@ -252,6 +253,7 @@ void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf)
prev_DCSQ_offset = 0;
clean = true;
+ allowedShow = AllowedShow;
}
void cDvbSpuDecoder::setScaleMode(cSpuDecoder::eScaleMode ScaleMode)
@@ -530,7 +532,7 @@ int cDvbSpuDecoder::setTime(uint32_t pts)
} else if (!clean)
state = spSHOW;
- if (state == spSHOW || state == spMENU)
+ if ((state == spSHOW && allowedShow) || state == spMENU)
Draw();
if (state == spHIDE)