Merge #190023: gst-plugins-bad: patch nvcodec to check opengl path

...into staging

+58
+10
pkgs/development/libraries/gstreamer/bad/default.nix
··· 1 { lib 2 , stdenv 3 , fetchurl 4 , meson 5 , ninja 6 , gettext ··· 78 , mjpegtools 79 , libGLU 80 , libGL 81 , libintl 82 , game-music-emu 83 , openssl ··· 108 url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz"; 109 sha256 = "sha256-ehHBO1XdHSOG3ZAiGeQcv83ajh4Ko+c4GGyVB0s12k8="; 110 }; 111 112 nativeBuildInputs = [ 113 meson
··· 1 { lib 2 , stdenv 3 , fetchurl 4 + , substituteAll 5 , meson 6 , ninja 7 , gettext ··· 79 , mjpegtools 80 , libGLU 81 , libGL 82 + , addOpenGLRunpath 83 , libintl 84 , game-music-emu 85 , openssl ··· 110 url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz"; 111 sha256 = "sha256-ehHBO1XdHSOG3ZAiGeQcv83ajh4Ko+c4GGyVB0s12k8="; 112 }; 113 + 114 + patches = [ 115 + # Add fallback paths for nvidia userspace libraries 116 + (substituteAll { 117 + src = ./fix-paths.patch; 118 + inherit (addOpenGLRunpath) driverLink; 119 + }) 120 + ]; 121 122 nativeBuildInputs = [ 123 meson
+48
pkgs/development/libraries/gstreamer/bad/fix-paths.patch
···
··· 1 + diff --git a/sys/nvcodec/gstcudaloader.c b/sys/nvcodec/gstcudaloader.c 2 + index 4223ba1fbd..ca8bb5ceb1 100644 3 + --- a/sys/nvcodec/gstcudaloader.c 4 + +++ b/sys/nvcodec/gstcudaloader.c 5 + @@ -135,6 +135,11 @@ gst_cuda_load_library (void) 6 + return TRUE; 7 + 8 + module = g_module_open (filename, G_MODULE_BIND_LAZY); 9 + + 10 + + if (module == NULL) { 11 + + module = g_module_open("@driverLink@/lib/" CUDA_LIBNAME, G_MODULE_BIND_LAZY); 12 + + } 13 + + 14 + if (module == NULL) { 15 + GST_WARNING ("Could not open library %s, %s", filename, g_module_error ()); 16 + return FALSE; 17 + diff --git a/sys/nvcodec/gstcuvidloader.c b/sys/nvcodec/gstcuvidloader.c 18 + index 3c7505ca36..eeb376fa80 100644 19 + --- a/sys/nvcodec/gstcuvidloader.c 20 + +++ b/sys/nvcodec/gstcuvidloader.c 21 + @@ -85,6 +85,11 @@ gst_cuvid_load_library (guint api_major_ver, guint api_minor_ver) 22 + return TRUE; 23 + 24 + module = g_module_open (filename, G_MODULE_BIND_LAZY); 25 + + 26 + + if (module == NULL) { 27 + + module = g_module_open ("@driverLink@/lib/" NVCUVID_LIBNAME, G_MODULE_BIND_LAZY); 28 + + } 29 + + 30 + if (module == NULL) { 31 + GST_WARNING ("Could not open library %s, %s", filename, g_module_error ()); 32 + return FALSE; 33 + diff --git a/sys/nvcodec/gstnvenc.c b/sys/nvcodec/gstnvenc.c 34 + index 19637671ad..39858ccdee 100644 35 + --- a/sys/nvcodec/gstnvenc.c 36 + +++ b/sys/nvcodec/gstnvenc.c 37 + @@ -874,6 +874,11 @@ gst_nvenc_load_library (guint * api_major_ver, guint * api_minor_ver) 38 + }; 39 + 40 + module = g_module_open (NVENC_LIBRARY_NAME, G_MODULE_BIND_LAZY); 41 + + 42 + + if (module == NULL) { 43 + + module = g_module_open ("@driverLink@/lib/" NVENC_LIBRARY_NAME, G_MODULE_BIND_LAZY); 44 + + } 45 + + 46 + if (module == NULL) { 47 + GST_WARNING ("Could not open library %s, %s", 48 + NVENC_LIBRARY_NAME, g_module_error ());