diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix index ec31443dc440..29e122a40155 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -11,6 +11,7 @@ , orc , gstreamer , gobject-introspection +, hotdoc , enableZbar ? false , faacSupport ? false , faac @@ -57,7 +58,7 @@ , neon , openal , opencv4 -, openexr +, openexr_3 , openh264 , libopenmpt , pango @@ -80,6 +81,7 @@ , libGLU , libGL , addOpenGLRunpath +, gtk3 , libintl , game-music-emu , openssl @@ -103,13 +105,13 @@ stdenv.mkDerivation rec { pname = "gst-plugins-bad"; - version = "1.20.3"; + version = "1.22.2"; outputs = [ "out" "dev" ]; src = fetchurl { url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-ehHBO1XdHSOG3ZAiGeQcv83ajh4Ko+c4GGyVB0s12k8="; + hash = "sha256-PY+vHONALIU1zjqMThpslg5LVlXb2mtVlD25rHkCLQ8="; }; patches = [ @@ -129,6 +131,9 @@ stdenv.mkDerivation rec { gettext gstreamer # for gst-tester-1.0 gobject-introspection + + # documentation + hotdoc ] ++ lib.optionals stdenv.isLinux [ wayland # for wayland-scanner ]; @@ -165,7 +170,7 @@ stdenv.mkDerivation rec { neon openal opencv4 - openexr + openexr_3 openh264 rtmpdump pango @@ -178,6 +183,7 @@ stdenv.mkDerivation rec { gnutls libGL libGLU + gtk3 game-music-emu openssl libxml2 @@ -243,10 +249,11 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users - "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing "-Dglib-asserts=disabled" # asserts should be disabled on stable releases + "-Damfcodec=disabled" # Windows-only "-Davtp=disabled" + "-Ddirectshow=disabled" # Windows-only "-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development" "-Dzbar=${if enableZbar then "enabled" else "disabled"}" "-Dfaac=${if faacSupport then "enabled" else "disabled"}" @@ -282,6 +289,8 @@ stdenv.mkDerivation rec { "-Dbluez=${if bluezSupport then "enabled" else "disabled"}" ] ++ lib.optionals (!stdenv.isLinux) [ + "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only + "-Dnvcodec=disabled" # Linux-only "-Dva=disabled" # see comment on `libva` in `buildInputs` ] ++ lib.optionals stdenv.isDarwin [ @@ -299,9 +308,12 @@ stdenv.mkDerivation rec { "-Dladspa=disabled" # requires lrdf "-Dwebrtc=disabled" # requires libnice, which as of writing doesn't work on Darwin in nixpkgs "-Dwildmidi=disabled" # see dependencies above + ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [ + "-Dqsv=disabled" # Linux (and Windows) x86 only ] ++ lib.optionals (!gst-plugins-base.glEnabled) [ "-Dgl=disabled" ] ++ lib.optionals (!gst-plugins-base.waylandEnabled) [ + "-Dgtk3=disabled" # Wayland-based GTK sink "-Dwayland=disabled" ] ++ lib.optionals (!gst-plugins-base.glEnabled) [ # `applemedia/videotexturecache.h` requires `gst/gl/gl.h`, @@ -325,11 +337,6 @@ stdenv.mkDerivation rec { postPatch = '' patchShebangs \ scripts/extract-release-date-from-doap-file.py - - # upstream bumps this version check one minor version at a time - # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/ext/opencv/meson.build#L74 - substituteInPlace ext/opencv/meson.build \ - --replace '< 4.7.0' '< 5.0.0' ''; # This package has some `_("string literal")` string formats diff --git a/pkgs/development/libraries/gstreamer/bad/fix-paths.patch b/pkgs/development/libraries/gstreamer/bad/fix-paths.patch index dfb8f5462c45..ea832cc9f60b 100644 --- a/pkgs/development/libraries/gstreamer/bad/fix-paths.patch +++ b/pkgs/development/libraries/gstreamer/bad/fix-paths.patch @@ -1,21 +1,21 @@ -diff --git a/sys/nvcodec/gstcudaloader.c b/sys/nvcodec/gstcudaloader.c -index 4223ba1fbd..ca8bb5ceb1 100644 ---- a/sys/nvcodec/gstcudaloader.c -+++ b/sys/nvcodec/gstcudaloader.c -@@ -135,6 +135,11 @@ gst_cuda_load_library (void) +diff --git a/gst-libs/gst/cuda/gstcudaloader.c b/gst-libs/gst/cuda/gstcudaloader.c +index fffcbefd2b..6f738d3af3 100644 +--- a/gst-libs/gst/cuda/gstcudaloader.c ++++ b/gst-libs/gst/cuda/gstcudaloader.c +@@ -165,6 +165,11 @@ gst_cuda_load_library (void) return TRUE; module = g_module_open (filename, G_MODULE_BIND_LAZY); + + if (module == NULL) { -+ module = g_module_open("@driverLink@/lib/" CUDA_LIBNAME, G_MODULE_BIND_LAZY); ++ module = g_module_open ("@driverLink@/lib/" CUDA_LIBNAME, G_MODULE_BIND_LAZY); + } + if (module == NULL) { GST_WARNING ("Could not open library %s, %s", filename, g_module_error ()); return FALSE; diff --git a/sys/nvcodec/gstcuvidloader.c b/sys/nvcodec/gstcuvidloader.c -index 3c7505ca36..eeb376fa80 100644 +index e957e062e0..004ec2dcd5 100644 --- a/sys/nvcodec/gstcuvidloader.c +++ b/sys/nvcodec/gstcuvidloader.c @@ -85,6 +85,11 @@ gst_cuvid_load_library (guint api_major_ver, guint api_minor_ver) @@ -31,10 +31,10 @@ index 3c7505ca36..eeb376fa80 100644 GST_WARNING ("Could not open library %s, %s", filename, g_module_error ()); return FALSE; diff --git a/sys/nvcodec/gstnvenc.c b/sys/nvcodec/gstnvenc.c -index 19637671ad..39858ccdee 100644 +index 106857a954..3bab9989f0 100644 --- a/sys/nvcodec/gstnvenc.c +++ b/sys/nvcodec/gstnvenc.c -@@ -874,6 +874,11 @@ gst_nvenc_load_library (guint * api_major_ver, guint * api_minor_ver) +@@ -907,6 +907,11 @@ gst_nvenc_load_library (guint * api_major_ver, guint * api_minor_ver) }; module = g_module_open (NVENC_LIBRARY_NAME, G_MODULE_BIND_LAZY);