From dfc60da1d5fb03c6007e66df16f5979080171a4b Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 9 Mar 2003 10:01:02 +0100 Subject: [PATCH] Removed signal handling and usleep(5000) from cDvbOsd::Cmd() --- HISTORY | 7 ++++++- config.h | 4 ++-- dvbosd.c | 13 +------------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/HISTORY b/HISTORY index 50e5bf56..f5d7d095 100644 --- a/HISTORY +++ b/HISTORY @@ -1959,7 +1959,7 @@ Video Disk Recorder Revision History 2003-02-16: Version 1.1.25 -- Fixed high CPU load during replay (thanks Marcel Wiesweg for pointing out this +- Fixed high CPU load during replay (thanks to Marcel Wiesweg for pointing out this one). - Fixed margin handling in cRingBufferLinear. - Now polling the output device in 'Transfer Mode' and retrying to put packets @@ -1970,3 +1970,8 @@ Video Disk Recorder Revision History - Fixed broken support for raw OSDs of plugins (thanks to Marcel Wiesweg for reporting this one). - Broken CAM connections are now restored automatically. + +2003-03-09: Version 1.1.26 + +- Removed signal handling and usleep(5000) from cDvbOsd::Cmd() (apparently this + is no longer necessary with DVB driver 1.0.0pre2 or later). diff --git a/config.h b/config.h index d050516c..20604586 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.149 2003/02/15 11:01:04 kls Exp $ + * $Id: config.h 1.150 2003/03/09 10:01:02 kls Exp $ */ #ifndef __CONFIG_H @@ -19,7 +19,7 @@ #include "device.h" #include "tools.h" -#define VDRVERSION "1.1.25" +#define VDRVERSION "1.1.26" #define MAXPRIORITY 99 #define MAXLIFETIME 99 diff --git a/dvbosd.c b/dvbosd.c index 4b0c1ea8..428a3f04 100644 --- a/dvbosd.c +++ b/dvbosd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.19 2002/08/25 09:53:51 kls Exp $ + * $Id: dvbosd.c 1.20 2003/03/09 09:59:13 kls Exp $ */ #include "dvbosd.h" @@ -60,18 +60,7 @@ void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, co dc.x1 = x1; dc.y1 = y1; dc.data = (void *)data; - // must block all signals, otherwise the command might not be fully executed - sigset_t set, oldset; - sigfillset(&set); - sigdelset(&set, SIGALRM); - sigprocmask(SIG_BLOCK, &set, &oldset); ioctl(osdDev, OSD_SEND_CMD, &dc); - if (cmd == OSD_SetBlock) // XXX this is the only command that takes longer - usleep(5000); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed texts at wrong places - // XXX and sometimes the OSD was no longer displayed). - // XXX Increase the value if the problem still persists on your particular system. - // TODO Check if this is still necessary with driver versions after 0.7. - sigprocmask(SIG_SETMASK, &oldset, NULL); } }