From a20ddc1f22428eacc579c6b4e86ab9b526ca65cd Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 7 May 2005 11:17:25 +0200 Subject: [PATCH] Removed scaling coordinates in letterbox mode from cDvbSpu --- CONTRIBUTORS | 1 + HISTORY | 2 ++ dvbspu.c | 33 ++++----------------------------- dvbspu.h | 4 +--- 4 files changed, 8 insertions(+), 32 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 1d1bf103..0539ffb9 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -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 for reporting a bug in displaying the current channel when switching via the SVDRP diff --git a/HISTORY b/HISTORY index 3e84b446..c5b038e8 100644 --- a/HISTORY +++ b/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). diff --git a/dvbspu.c b/dvbspu.c index 5839d705..9c8da3b4 100644 --- a/dvbspu.c +++ b/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 @@ -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); diff --git a/dvbspu.h b/dvbspu.h index c60567a3..8a7d9051 100644 --- a/dvbspu.h +++ b/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: