Removed signal handling and usleep(5000) from cDvbOsd::Cmd()

This commit is contained in:
Klaus Schmidinger 2003-03-09 10:01:02 +01:00
parent 6fae0a6d49
commit dfc60da1d5
3 changed files with 9 additions and 15 deletions

View File

@ -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).

View File

@ -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

View File

@ -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);
}
}