mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed the OSD alignment in the SPU decoder
This commit is contained in:
parent
8eff25b8de
commit
b239e8e2ba
@ -980,3 +980,6 @@ Drazen Dupor <drazen.dupor@dupor.com>
|
|||||||
|
|
||||||
Prakash K. Cheemplavam <PrakashKC@gmx.de>
|
Prakash K. Cheemplavam <PrakashKC@gmx.de>
|
||||||
for fixing some issues with gcc 3.4
|
for fixing some issues with gcc 3.4
|
||||||
|
|
||||||
|
Miko Wohlgemuth <weak@chello.at>
|
||||||
|
for reporting a problem with the OSD alignment in the SPU decoder
|
||||||
|
2
HISTORY
2
HISTORY
@ -2821,3 +2821,5 @@ Video Disk Recorder Revision History
|
|||||||
can be called with a time_t value to get the day of week for that time.
|
can be called with a time_t value to get the day of week for that time.
|
||||||
- When processing XPM data, the color name "None" is no mapped to #00000000, which
|
- When processing XPM data, the color name "None" is no mapped to #00000000, which
|
||||||
is "fully transparent" (suggested by Sascha Volkenandt).
|
is "fully transparent" (suggested by Sascha Volkenandt).
|
||||||
|
- Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting
|
||||||
|
this one and helping to test the fix).
|
||||||
|
9
dvbspu.c
9
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.6 2004/04/30 13:45:02 kls Exp $
|
* $Id: dvbspu.c 1.7 2004/05/22 14:02:32 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@ -321,8 +321,13 @@ int cDvbSpuDecoder::ScaleYres(int value)
|
|||||||
|
|
||||||
void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp)
|
void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp)
|
||||||
{
|
{
|
||||||
tArea Area = { size.x1, size.y1, size.x2, size.y2, 2 };
|
int x2 = size.x2;
|
||||||
|
while ((x2 - size.x1 + 1) & 0x03)
|
||||||
|
x2++;
|
||||||
|
tArea Area = { size.x1, size.y1, x2, size.y2, 2 };
|
||||||
osd->SetAreas(&Area, 1);
|
osd->SetAreas(&Area, 1);
|
||||||
|
if (x2 > size.x2)
|
||||||
|
osd->DrawRectangle(size.x2 + 1, size.y1, x2, size.y2, clrTransparent);
|
||||||
osd->DrawBitmap(size.x1, size.y1, *bmp);
|
osd->DrawBitmap(size.x1, size.y1, *bmp);
|
||||||
delete bmp;
|
delete bmp;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user