mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Removed scaling coordinates in letterbox mode from cDvbSpu
This commit is contained in:
parent
8b137f8ce5
commit
a20ddc1f22
@ -1166,6 +1166,7 @@ Marco Schl
|
||||
for adding support for setting the video display mode
|
||||
for fixing handling transparent areas in cDvbSpuBitmap
|
||||
for fixing a bug in libsi's SubtitlingDescriptor::getLength()
|
||||
for removing scaling coordinates in letterbox mode from cDvbSpu
|
||||
|
||||
Jürgen Schmitz <j.schmitz@web.de>
|
||||
for reporting a bug in displaying the current channel when switching via the SVDRP
|
||||
|
2
HISTORY
2
HISTORY
@ -3502,3 +3502,5 @@ Video Disk Recorder Revision History
|
||||
this has been put into a separate function.
|
||||
- The timer status now has a new bit that is set when that timer is currently
|
||||
recording (suggested by Matthias Schniedermeyer). See man vdr(5) for details.
|
||||
- Removed scaling coordinates in letterbox mode from cDvbSpu - the DVD plugin, which
|
||||
was the only one needing this, doesn't need it any more (thanks to Marco Schlüßler).
|
||||
|
33
dvbspu.c
33
dvbspu.c
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.c 1.13 2005/05/05 13:19:03 kls Exp $
|
||||
* $Id: dvbspu.c 1.14 2005/05/07 11:13:48 kls Exp $
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
@ -306,24 +306,6 @@ void cDvbSpuDecoder::clearHighlight(void)
|
||||
hlpsize.y2 = -1;
|
||||
}
|
||||
|
||||
int cDvbSpuDecoder::ScaleYcoord(int value)
|
||||
{
|
||||
if (scaleMode == eSpuLetterBox) {
|
||||
int offset = cDevice::PrimaryDevice()->GetVideoSystem() == vsPAL ? 72 : 60;
|
||||
return lround((value * 3.0) / 4.0) + offset;
|
||||
}
|
||||
else
|
||||
return value;
|
||||
}
|
||||
|
||||
int cDvbSpuDecoder::ScaleYres(int value)
|
||||
{
|
||||
if (scaleMode == eSpuLetterBox)
|
||||
return lround((value * 3.0) / 4.0);
|
||||
else
|
||||
return value;
|
||||
}
|
||||
|
||||
sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp)
|
||||
{
|
||||
sDvbSpuRect size;
|
||||
@ -367,22 +349,15 @@ void cDvbSpuDecoder::Draw(void)
|
||||
sDvbSpuRect hlsize;
|
||||
|
||||
hlsize.x1 = hlpsize.x1;
|
||||
hlsize.y1 = ScaleYcoord(hlpsize.y1);
|
||||
hlsize.y1 = hlpsize.y1;
|
||||
hlsize.x2 = hlpsize.x2;
|
||||
hlsize.y2 = ScaleYcoord(hlpsize.y2);
|
||||
hlsize.y2 = hlpsize.y2;
|
||||
|
||||
if (highlight)
|
||||
fg = spubmp->getBitmap(hlpDescr, palette, hlsize);
|
||||
|
||||
if (spubmp->getMinSize(palDescr, bgsize)) {
|
||||
if (spubmp->getMinSize(palDescr, bgsize))
|
||||
bg = spubmp->getBitmap(palDescr, palette, bgsize);
|
||||
if (scaleMode == eSpuLetterBox) {
|
||||
// the coordinates have to be modified for letterbox
|
||||
int y1 = ScaleYres(bgsize.y1) + bgsize.height();
|
||||
bgsize.y2 = y1 + bgsize.height();
|
||||
bgsize.y1 = y1;
|
||||
}
|
||||
}
|
||||
|
||||
sDvbSpuRect areaSize = CalcAreaSize(hlsize, fg, bgsize, bg);
|
||||
|
||||
|
4
dvbspu.h
4
dvbspu.h
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.h 1.8 2005/02/20 11:20:43 kls Exp $
|
||||
* $Id: dvbspu.h 1.9 2005/05/07 11:14:03 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBSPU_H
|
||||
@ -129,8 +129,6 @@ class cDvbSpuDecoder:public cSpuDecoder {
|
||||
return ((spu[0] << 8) | spu[1]);
|
||||
};
|
||||
|
||||
int ScaleYcoord(int value);
|
||||
int ScaleYres(int value);
|
||||
sDvbSpuRect CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp);
|
||||
|
||||
public:
|
||||
|
Loading…
Reference in New Issue
Block a user