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:
parent
23d7402c00
commit
0e22c9ff9e
@ -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
|
||||||
|
1
HISTORY
1
HISTORY
@ -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).
|
||||||
|
12
dvbspu.c
12
dvbspu.c
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user