mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Try to connect to X11 server, when start fails.
This commit is contained in:
parent
e65572c2e2
commit
9954b939ef
@ -1,6 +1,8 @@
|
|||||||
User johns
|
User johns
|
||||||
Date:
|
Date:
|
||||||
|
|
||||||
|
Release Version 0.6.0
|
||||||
|
Try to start or connect to X11 server with -xx.
|
||||||
Try to use HBR (High Bit-Rate) for EAC3.
|
Try to use HBR (High Bit-Rate) for EAC3.
|
||||||
Improved pass-through (PCM+EAC3) support.
|
Improved pass-through (PCM+EAC3) support.
|
||||||
Support VDR 1.7.36 new build system.
|
Support VDR 1.7.36 new build system.
|
||||||
|
31
softhddev.c
31
softhddev.c
@ -2792,7 +2792,8 @@ const char *CommandLineHelp(void)
|
|||||||
" -f\t\tstart with fullscreen window (only with window manager)\n"
|
" -f\t\tstart with fullscreen window (only with window manager)\n"
|
||||||
" -g geometry\tx11 window geometry wxh+x+y\n"
|
" -g geometry\tx11 window geometry wxh+x+y\n"
|
||||||
" -v device\tvideo driver device (va-api, vdpau, noop)\n"
|
" -v device\tvideo driver device (va-api, vdpau, noop)\n"
|
||||||
" -s\t\tstart in suspended mode\n" " -x\t\tstart x11 server\n"
|
" -s\t\tstart in suspended mode\n"
|
||||||
|
" -x\t\tstart x11 server, with -xx try to connect, if this fails\n"
|
||||||
" -X args\tX11 server arguments (f.e. -nocursor)\n"
|
" -X args\tX11 server arguments (f.e. -nocursor)\n"
|
||||||
" -w workaround\tenable/disable workarounds\n"
|
" -w workaround\tenable/disable workarounds\n"
|
||||||
"\tno-hw-decoder\t\tdisable hw decoder, use software decoder only\n"
|
"\tno-hw-decoder\t\tdisable hw decoder, use software decoder only\n"
|
||||||
@ -2850,7 +2851,7 @@ int ProcessArgs(int argc, char *const argv[])
|
|||||||
VideoSetDevice(optarg);
|
VideoSetDevice(optarg);
|
||||||
continue;
|
continue;
|
||||||
case 'x': // x11 server
|
case 'x': // x11 server
|
||||||
ConfigStartX11Server = 1;
|
ConfigStartX11Server++;
|
||||||
continue;
|
continue;
|
||||||
case 'X': // x11 server arguments
|
case 'X': // x11 server arguments
|
||||||
X11ServerArguments = optarg;
|
X11ServerArguments = optarg;
|
||||||
@ -3001,6 +3002,7 @@ static void StartXServer(void)
|
|||||||
// child
|
// child
|
||||||
signal(SIGUSR1, SIG_IGN); // ignore to force answer
|
signal(SIGUSR1, SIG_IGN); // ignore to force answer
|
||||||
//setpgid(0,getpid());
|
//setpgid(0,getpid());
|
||||||
|
setpgid(pid, 0);
|
||||||
|
|
||||||
// close all open file-handles
|
// close all open file-handles
|
||||||
maxfd = sysconf(_SC_OPEN_MAX);
|
maxfd = sysconf(_SC_OPEN_MAX);
|
||||||
@ -3141,6 +3143,31 @@ void Stop(void)
|
|||||||
*/
|
*/
|
||||||
void Housekeeping(void)
|
void Housekeeping(void)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// when starting an own X11 server fails, try to connect to a already
|
||||||
|
// running X11 server. This can take some time.
|
||||||
|
//
|
||||||
|
if (X11ServerPid) { // check if X11 server still running
|
||||||
|
pid_t wpid;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
wpid = waitpid(X11ServerPid, &status, WNOHANG);
|
||||||
|
if (wpid) {
|
||||||
|
if (WIFEXITED(status)) {
|
||||||
|
Debug(3, "x-setup: x11 server exited (%d)\n",
|
||||||
|
WEXITSTATUS(status));
|
||||||
|
}
|
||||||
|
if (WIFSIGNALED(status)) {
|
||||||
|
Debug(3, "x-setup: x11 server killed (%d)\n",
|
||||||
|
WTERMSIG(status));
|
||||||
|
}
|
||||||
|
X11ServerPid = 0;
|
||||||
|
// video not running
|
||||||
|
if (ConfigStartX11Server > 1 && !MyVideoStream->HwDecoder) {
|
||||||
|
StartVideo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user