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

Fixed scaling subtitles (their areas could sometimes extend outside the actual OSD)

This commit is contained in:
Klaus Schmidinger 2015-03-25 12:39:01 +01:00
parent 909e6c6249
commit 577d43facf
2 changed files with 4 additions and 4 deletions

View File

@ -8596,7 +8596,7 @@ Video Disk Recorder Revision History
- Bumped all version numbers to 2.2.0. - Bumped all version numbers to 2.2.0.
- Official release. - Official release.
2015-03-17: Version 2.3.1 2015-03-25: Version 2.3.1
- The new function cOsd::MaxPixmapSize() can be called to determine the maximum size - The new function cOsd::MaxPixmapSize() can be called to determine the maximum size
a cPixmap may have on the current OSD. The 'osddemo' example has been modified a cPixmap may have on the current OSD. The 'osddemo' example has been modified
@ -8619,3 +8619,4 @@ Video Disk Recorder Revision History
- Added some comment to cPixmap about the relation between OSD, ViewPort and DrawPort - Added some comment to cPixmap about the relation between OSD, ViewPort and DrawPort
(suggested by Thomas Reufer). (suggested by Thomas Reufer).
- Improved syncing on sections when parsing the NIT and SDT. - Improved syncing on sections when parsing the NIT and SDT.
- Fixed scaling subtitles (their areas could sometimes extend outside the actual OSD).

View File

@ -7,7 +7,7 @@
* Original author: Marco Schluessler <marco@lordzodiac.de> * Original author: Marco Schluessler <marco@lordzodiac.de>
* With some input from the "subtitles plugin" by Pekka Virtanen <pekka.virtanen@sci.fi> * With some input from the "subtitles plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
* *
* $Id: dvbsubtitle.c 3.10 2015/01/20 14:53:57 kls Exp $ * $Id: dvbsubtitle.c 4.1 2015/03/25 12:37:08 kls Exp $
*/ */
#include "dvbsubtitle.h" #include "dvbsubtitle.h"
@ -1516,8 +1516,7 @@ void cDvbSubtitleConverter::SetOsdData(void)
osdDeltaX = osdDeltaY = 0; osdDeltaX = osdDeltaY = 0;
} }
else { else {
osdFactorX = VideoAspect * OsdHeight / displayWidth; osdFactorX = osdFactorY = min(double(OsdWidth) / displayWidth, double(OsdHeight) / displayHeight);
osdFactorY = double(OsdHeight) / displayHeight;
osdDeltaX = (OsdWidth - displayWidth * osdFactorX) / 2; osdDeltaX = (OsdWidth - displayWidth * osdFactorX) / 2;
osdDeltaY = (OsdHeight - displayHeight * osdFactorY) / 2; osdDeltaY = (OsdHeight - displayHeight * osdFactorY) / 2;
} }