diff -ruN vdr-1.5.3.orig/device.h vdr-1.5.3/device.h --- vdr-1.5.3.orig/device.h 2007-01-13 03:33:57.000000000 -0800 +++ vdr-1.5.3/device.h 2007-06-11 16:07:14.000000000 -0700 @@ -233,12 +233,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 -ruN vdr-1.5.3.orig/dvbosd.c vdr-1.5.3/dvbosd.c --- vdr-1.5.3.orig/dvbosd.c 2006-01-28 06:24:04.000000000 -0800 +++ vdr-1.5.3/dvbosd.c 2007-06-11 16:07:14.000000000 -0700 @@ -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 -ruN vdr-1.5.3.orig/osd.c vdr-1.5.3/osd.c --- vdr-1.5.3.orig/osd.c 2007-06-10 05:16:36.000000000 -0700 +++ vdr-1.5.3/osd.c 2007-06-11 16:07:14.000000000 -0700 @@ -654,6 +654,7 @@ top = Top; width = height = 0; isOpen++; + vidWin.bpp = 0; } cOsd::~cOsd() diff -ruN vdr-1.5.3.orig/osd.h vdr-1.5.3/osd.h --- vdr-1.5.3.orig/osd.h 2007-06-10 05:15:52.000000000 -0700 +++ vdr-1.5.3/osd.h 2007-06-11 16:07:14.000000000 -0700 @@ -362,6 +362,7 @@ ///< 7: vertical, falling, upper virtual void Flush(void); ///< Actually commits all data to the OSD hardware. + tArea vidWin; }; class cOsdProvider {