1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Improved OSD area handling in cDvbSpuDecoder

This commit is contained in:
Klaus Schmidinger 2006-02-12 11:52:53 +01:00
parent 23d7402c00
commit 0e22c9ff9e
3 changed files with 8 additions and 6 deletions

View File

@ -1308,6 +1308,7 @@ Marco Schl
for removing leftover 'needsBufferReserve' variable from cTransfer for removing leftover 'needsBufferReserve' variable from cTransfer
for adding an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier for adding an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier
process the audio data process the audio data
for improving OSD area handling in cDvbSpuDecoder
Jürgen Schmitz <j.schmitz@web.de> Jürgen Schmitz <j.schmitz@web.de>
for reporting a bug in displaying the current channel when switching via the SVDRP for reporting a bug in displaying the current channel when switching via the SVDRP

View File

@ -4326,3 +4326,4 @@ Video Disk Recorder Revision History
- Now stopping scanning the video directory if there are too many levels of - Now stopping scanning the video directory if there are too many levels of
symbolic links, which might indicate a recursive link loop (based on a patch symbolic links, which might indicate a recursive link loop (based on a patch
from Helmut Auer). from Helmut Auer).
- Improved OSD area handling in cDvbSpuDecoder (thanks to Marco Schlüßler).

View File

@ -8,7 +8,7 @@
* *
* parts of this file are derived from the OMS program. * parts of this file are derived from the OMS program.
* *
* $Id: dvbspu.c 1.19 2006/01/08 11:39:46 kls Exp $ * $Id: dvbspu.c 1.20 2006/02/12 11:50:20 kls Exp $
*/ */
#include "dvbspu.h" #include "dvbspu.h"
@ -368,11 +368,11 @@ void cDvbSpuDecoder::Draw(void)
if (bg || fg) { if (bg || fg) {
if (osd == NULL) { if (osd == NULL) {
osd = cOsdProvider::NewOsd(0, 0); osd = cOsdProvider::NewOsd(0, 0);
int x2 = areaSize.x2; if ((areaSize.width() & 3) != 0)
while ((x2 - areaSize.x1 + 1) & 0x03) areaSize.x2 += 4 - (areaSize.width() & 3);
x2++; tArea Area = { areaSize.x1, areaSize.y1, areaSize.x2, areaSize.y2, (fg && bg) ? 4 : 2 };
tArea Area = { areaSize.x1, areaSize.y1, x2, areaSize.y2, (fg && bg) ? 4 : 2 }; if (osd->SetAreas(&Area, 1) != oeOk)
osd->SetAreas(&Area, 1); dsyslog("dvbspu: AreaSize (%d, %d) (%d, %d) Bpp %d", areaSize.x1, areaSize.y1, areaSize.x2, areaSize.y2, (fg && bg) ? 4 : 2 );
} }
if (bg) if (bg)