diff -Naur vdr-1.5.8.org/device.h vdr-1.5.8/device.h --- vdr-1.5.8.org/device.h 2008-01-23 17:33:02.469127212 -0500 +++ vdr-1.5.8/device.h 2008-01-23 17:53:27.088661102 -0500 @@ -235,12 +235,12 @@ ///< Direction (only the sign of Direction is evaluated, positive values ///< switch to higher channel numbers). private: - eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView); - ///< Sets the device to the given channel (general setup). protected: virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); ///< Sets the device to the given channel (actual physical setup). public: + eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView); + ///< Sets the device to the given channel (general setup). static int CurrentChannel(void) { return primaryDevice ? currentChannel : 0; } ///< Returns the number of the current channel on the primary device. static void SetCurrentChannel(const cChannel *Channel) { currentChannel = Channel ? Channel->Number() : 0; } diff -Naur vdr-1.5.8.org/dvbosd.c vdr-1.5.8/dvbosd.c --- vdr-1.5.8.org/dvbosd.c 2006-01-28 09:24:04.000000000 -0500 +++ vdr-1.5.8/dvbosd.c 2008-01-23 17:53:27.101662048 -0500 @@ -67,6 +67,10 @@ Cmd(OSD_Close); } } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, 5); + Cmd(OSD_Close); + } } eOsdError cDvbOsd::CanHandleAreas(const tArea *Areas, int NumAreas) @@ -162,6 +166,11 @@ Cmd(OSD_SetWindow, 0, i + 1); Cmd(OSD_MoveWindow, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0()); } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, 5); + Cmd(OSD_OpenRaw, vidWin.bpp, vidWin.x1, vidWin.y1, + vidWin.x2, vidWin.y2, (void *)0); + } shown = true; } } diff -Naur vdr-1.5.8.org/osd.c vdr-1.5.8/osd.c --- vdr-1.5.8.org/osd.c 2008-01-23 17:07:57.066786802 -0500 +++ vdr-1.5.8/osd.c 2008-01-23 17:53:27.102662121 -0500 @@ -858,6 +858,7 @@ top = Top; width = height = 0; isOpen++; + vidWin.bpp = 0; } cOsd::~cOsd() diff -Naur vdr-1.5.8.org/osd.h vdr-1.5.8/osd.h --- vdr-1.5.8.org/osd.h 2008-01-23 17:07:57.074787382 -0500 +++ vdr-1.5.8/osd.h 2008-01-23 17:53:27.103662194 -0500 @@ -374,6 +374,7 @@ ///< 7: vertical, falling, upper virtual void Flush(void); ///< Actually commits all data to the OSD hardware. + tArea vidWin; }; class cOsdProvider {