Mageia Bugzilla – Attachment 4143 Details for
Bug 10485
XBMC 12.1 has problems playing back videos on Nvidia driver 319.17 (as shipped in Mageia 3) with VDPAU enabled
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
Patch against 12.2 fixing the vdpau green screen
xbmc-fix-vdpau-nvidia-319.17-track14318.patch (text/plain), 1.26 KB, created by
Buchan Milne
on 2013-06-16 11:46:02 CEST
(
hide
)
Description:
Patch against 12.2 fixing the vdpau green screen
Filename:
MIME Type:
Creator:
Buchan Milne
Created:
2013-06-16 11:46:02 CEST
Size:
1.26 KB
patch
obsolete
>diff -up xbmc-12.2/xbmc/main/main.cpp.fixvdpau xbmc-12.2/xbmc/main/main.cpp >--- xbmc-12.2/xbmc/main/main.cpp.fixvdpau 2013-05-03 07:57:41.000000000 +0200 >+++ xbmc-12.2/xbmc/main/main.cpp 2013-06-15 21:58:37.770000000 +0200 >@@ -66,13 +66,6 @@ int main(int argc, char* argv[]) > if (setrlimit(RLIMIT_CORE, &rlim) == -1) > CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); > #endif >- // Prevent child processes from becoming zombies on exit if not waited upon. See also Util::Command >- struct sigaction sa; >- memset(&sa, 0, sizeof(sa)); >- >- sa.sa_flags = SA_NOCLDWAIT; >- sa.sa_handler = SIG_IGN; >- sigaction(SIGCHLD, &sa, NULL); > #endif > setlocale(LC_NUMERIC, "C"); > g_advancedSettings.Initialize(); >diff -up xbmc-12.2/xbmc/Util.cpp.fixvdpau xbmc-12.2/xbmc/Util.cpp >--- xbmc-12.2/xbmc/Util.cpp.fixvdpau 2013-05-03 07:57:41.000000000 +0200 >+++ xbmc-12.2/xbmc/Util.cpp 2013-06-15 16:52:31.547000000 +0200 >@@ -1632,6 +1632,15 @@ bool CUtil::Command(const CStdStringArra > int n = 0; > if (child == 0) > { >+ if (!waitExit) >+ { >+ // fork again in order not to leave a zombie process >+ child = fork(); >+ if (child == -1) >+ _exit(2); >+ else if (child != 0) >+ _exit(0); >+ } > close(0); > close(1); > close(2);
diff -up xbmc-12.2/xbmc/main/main.cpp.fixvdpau xbmc-12.2/xbmc/main/main.cpp --- xbmc-12.2/xbmc/main/main.cpp.fixvdpau 2013-05-03 07:57:41.000000000 +0200 +++ xbmc-12.2/xbmc/main/main.cpp 2013-06-15 21:58:37.770000000 +0200 @@ -66,13 +66,6 @@ int main(int argc, char* argv[]) if (setrlimit(RLIMIT_CORE, &rlim) == -1) CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); #endif - // Prevent child processes from becoming zombies on exit if not waited upon. See also Util::Command - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - - sa.sa_flags = SA_NOCLDWAIT; - sa.sa_handler = SIG_IGN; - sigaction(SIGCHLD, &sa, NULL); #endif setlocale(LC_NUMERIC, "C"); g_advancedSettings.Initialize(); diff -up xbmc-12.2/xbmc/Util.cpp.fixvdpau xbmc-12.2/xbmc/Util.cpp --- xbmc-12.2/xbmc/Util.cpp.fixvdpau 2013-05-03 07:57:41.000000000 +0200 +++ xbmc-12.2/xbmc/Util.cpp 2013-06-15 16:52:31.547000000 +0200 @@ -1632,6 +1632,15 @@ bool CUtil::Command(const CStdStringArra int n = 0; if (child == 0) { + if (!waitExit) + { + // fork again in order not to leave a zombie process + child = fork(); + if (child == -1) + _exit(2); + else if (child != 0) + _exit(0); + } close(0); close(1); close(2);
View Attachment As Raw
Actions:
View
Attachments on
bug 10485
: 4143