summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2009-12-13 12:16:44 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2009-12-13 12:16:44 +0100
commit140ed23e7e9751b2ed9acbf024ecd967a80e30bf (patch)
tree231e6664b25e97c191fcf2ec24c67b7d3758ce9d
parenta648187de4e10f73a0ee4edcaf7616f73ce2b485 (diff)
downloadvdr-140ed23e7e9751b2ed9acbf024ecd967a80e30bf.tar.gz
vdr-140ed23e7e9751b2ed9acbf024ecd967a80e30bf.tar.bz2
Some fixes to dvbspu.[hc]
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY1
-rw-r--r--dvbspu.c7
-rw-r--r--dvbspu.h4
4 files changed, 9 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f60678d9..a9875cd5 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2477,6 +2477,7 @@ Johann Friedrichs <johann.friedrichs@web.de>
-D_LARGEFILE64_SOURCE" should be added to Make.config.
for adding stream type 11172 AUDIO to cPatPmtParser::ParsePmt()
for removing the workaround for short channel names of "Kabel Deutschland"
+ for some fixes to dvbspu.[hc]
Timo Helkio <timolavi@mbnet.fi>
for reporting a hangup when replaying a TS recording with subtitles activated
diff --git a/HISTORY b/HISTORY
index b0af60d3..ded9c141 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6217,3 +6217,4 @@ Video Disk Recorder Revision History
- Removed the workaround for short channel names of "Kabel Deutschland", because
apparently they now have their data according to the DVB standard (thanks to
Johann Friedrichs).
+- Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs).
diff --git a/dvbspu.c b/dvbspu.c
index a0c71201..f74febdd 100644
--- a/dvbspu.c
+++ b/dvbspu.c
@@ -8,7 +8,7 @@
*
* parts of this file are derived from the OMS program.
*
- * $Id: dvbspu.c 2.4 2009/12/05 16:06:12 kls Exp $
+ * $Id: dvbspu.c 2.5 2009/12/13 12:10:03 kls Exp $
*/
#include "dvbspu.h"
@@ -348,7 +348,7 @@ int cDvbSpuBitmap::getMinBpp(const aDvbSpuPalDescr paldescr)
col++;
}
}
- return col > 2 ? 2 : 1;
+ return col > 2 ? 4 : 1;
}
int cDvbSpuDecoder::CalcAreaBpp(cBitmap *fgbmp, cBitmap *bgbmp)
@@ -386,6 +386,9 @@ void cDvbSpuDecoder::Draw(void)
if (spubmp->getMinSize(palDescr, bgsize))
bg = spubmp->getBitmap(palDescr, palette, bgsize);
+ if (!fg || !bg || !osd)
+ Hide();
+
if (osd == NULL) {
restricted_osd = false;
osd = cOsdProvider::NewOsd(0, 0);
diff --git a/dvbspu.h b/dvbspu.h
index d6f9d343..9e33e454 100644
--- a/dvbspu.h
+++ b/dvbspu.h
@@ -8,7 +8,7 @@
*
* parts of this file are derived from the OMS program.
*
- * $Id: dvbspu.h 2.3 2009/12/05 15:17:08 kls Exp $
+ * $Id: dvbspu.h 2.4 2009/12/13 12:07:00 kls Exp $
*/
#ifndef __DVBSPU_H
@@ -197,7 +197,7 @@ inline uint32_t cDvbSpuPalette::yuv2rgb(uint32_t yuv_color)
inline uint32_t cDvbSpuPalette::getColor(uint8_t idx, uint8_t trans) const
{
- return palette[idx] | (trans == 0x0f) ? 0xff000000 : (trans << 28);
+ return palette[idx] | ((trans == 0x0f) ? 0xff000000 : (trans << 28));
}
#endif // __DVBSPU_H