diff options
| author | Klaus Schmidinger <vdr@tvdr.de> | 2005-01-08 09:54:32 +0100 | 
|---|---|---|
| committer | Klaus Schmidinger <vdr@tvdr.de> | 2005-01-08 09:54:32 +0100 | 
| commit | 45e5859ae4cb9f7fd29a2acdd23ecfc5348d55fd (patch) | |
| tree | 131e5ad63c3738101ee4fd4a84fd2b870dadc2ee | |
| parent | 451b268248e93d91b70348978718c8e374f1abd7 (diff) | |
| download | vdr-45e5859ae4cb9f7fd29a2acdd23ecfc5348d55fd.tar.gz vdr-45e5859ae4cb9f7fd29a2acdd23ecfc5348d55fd.tar.bz2 | |
Revoked 'Fixed reusing OSD in cDvbSpuDecoder' by demand of Marco Schluessler
| -rw-r--r-- | CONTRIBUTORS | 1 | ||||
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | dvbspu.c | 28 | 
3 files changed, 5 insertions, 25 deletions
| diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c5398e2a..0b918a57 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -901,7 +901,6 @@ Reinhard Nissl <rnissl@gmx.de>   for reporting a high CPU load in still picture mode after removing the usleep()   call from cDvbPlayer::Action()   for reporting a race condition in starting a thread - for fixing reusing OSD in cDvbSpuDecoder  Richard Robson <richard_robson@beeb.net>   for reporting freezing replay if a timer starts while in Transfer Mode from the @@ -3265,7 +3265,6 @@ Video Disk Recorder Revision History    used to get notified when the audio track has been switched.  - Skins need to implement the new cSkinDisplayTrack class to display the audio    track menu. -- Fixed reusing OSD in cDvbSpuDecoder (thanks to Reinhard Nissl).  - The new setup option "DVB/Audio languages" can be used to control which audio    language shall be selected in case a channel broadcasts in different languages    (see MANUAL for details).  @@ -8,7 +8,7 @@   *   * parts of this file are derived from the OMS program.   * - * $Id: dvbspu.c 1.9 2005/01/02 15:27:07 kls Exp $ + * $Id: dvbspu.c 1.10 2005/01/08 09:53:44 kls Exp $   */  #include <assert.h> @@ -349,20 +349,6 @@ sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDv      return size;  } -static bool OsdMatchesArea(cOsd *osd, tArea &area) -{ -  cBitmap *bmp = osd->GetBitmap(0); -  if (!bmp) -     return false; -  if (bmp->Bpp() != area.bpp) -     return false; -  if (bmp->X0() != area.x1 || bmp->Y0() != area.y1) -     return false; -  if (bmp->Width() != area.Width() || bmp->Height() != area.Height()) -     return false; -  return true; -} -  void cDvbSpuDecoder::Draw(void)  {      if (!spubmp) { @@ -400,16 +386,12 @@ void cDvbSpuDecoder::Draw(void)         }      if (bg || fg) { -        int x2 = areaSize.x2; -        while ((x2 - areaSize.x1 + 1) & 0x03) -              x2++; -        tArea Area = { areaSize.x1, areaSize.y1, x2, areaSize.y2, (fg && bg) ? 4 : 2 }; -        if (osd && !OsdMatchesArea(osd, Area)) { -           delete osd; -           osd = NULL; -           }          if (osd == NULL) {             osd = cOsdProvider::NewOsd(0, 0); +           int x2 = areaSize.x2; +           while ((x2 - areaSize.x1 + 1) & 0x03) +                 x2++; +           tArea Area = { areaSize.x1, areaSize.y1, x2, areaSize.y2, (fg && bg) ? 4 : 2 };             osd->SetAreas(&Area, 1);             } | 
