summaryrefslogtreecommitdiff
path: root/dvbspu.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-01-08 10:01:52 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2005-01-08 10:01:52 +0100
commit64623e762b0d0ed28f6079ba814511274f5fb428 (patch)
treeb5a8546f63e4c8ab6a33cd51bed049e5fac8dc66 /dvbspu.c
parent45e5859ae4cb9f7fd29a2acdd23ecfc5348d55fd (diff)
downloadvdr-64623e762b0d0ed28f6079ba814511274f5fb428.tar.gz
vdr-64623e762b0d0ed28f6079ba814511274f5fb428.tar.bz2
Implemented displaying mandatory subtitles in the SPU decoder
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)