summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/patches/obs-modules-location.patch36
-rw-r--r--gnu/packages/video.scm32
2 files changed, 36 insertions, 32 deletions
diff --git a/gnu/packages/patches/obs-modules-location.patch b/gnu/packages/patches/obs-modules-location.patch
index 18b286d006..742119470a 100644
--- a/gnu/packages/patches/obs-modules-location.patch
+++ b/gnu/packages/patches/obs-modules-location.patch
@@ -5,29 +5,23 @@ Subject: [PATCH] Use environment variable for a default module location
diff --git a/libobs/obs-nix.c b/libobs/obs-nix.c
index 382fa0546..481ea0f14 100644
-*** a/libobs/obs-nix.c
---- b/libobs/obs-nix.c
-@@ -66,8 +66,19 @@
+--- a.c 2025-02-10 12:48:39.885858056 +0800
++++ b.c 2025-02-10 12:57:18.913869843 +0800
+@@ -83,6 +83,17 @@ void add_default_module_paths(void)
+ bfree(module_bin_path);
+ bfree(module_data_path);
- void add_default_module_paths(void)
- {
-- for (int i = 0; i < module_patterns_size; i++)
-- obs_add_module_path(module_bin[i], module_data[i]);
-+ char *bin_directory = getenv("OBS_PLUGINS_DIRECTORY");
-+ char *data_directory = getenv("OBS_PLUGINS_DATA_DIRECTORY");
-+ if (bin_directory && data_directory) {
++ module_bin_path = getenv("OBS_PLUGINS_DIRECTORY");
++ module_data_path = getenv("OBS_PLUGINS_DATA_DIRECTORY");
++ if (module_bin_path && module_data_path) {
+ struct dstr dstr_data_directory;
-+ dstr_init_copy(&dstr_data_directory, data_directory);
++ dstr_init_copy(&dstr_data_directory, module_data_path);
+ dstr_cat(&dstr_data_directory, "/%module%");
-+ obs_add_module_path(bin_directory, dstr_data_directory.array);
++ obs_add_module_path(module_bin_path, dstr_data_directory.array);
+ dstr_free(&dstr_data_directory);
-+
-+ } else {
-+ for (int i = 0; i < module_patterns_size; i++)
-+ obs_add_module_path(module_bin[i], module_data[i]);
++ return;
+ }
- }
-
- /*
---
-2.29.2 \ No newline at end of file
++
+ for (int i = 0; i < module_patterns_size; i++) {
+ obs_add_module_path(module_bin[i], module_data[i]);
+ }
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1891885e40..41940fc497 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -130,12 +130,14 @@
#:use-module (gnu packages cdrom)
#:use-module (gnu packages certs)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages datastructures)
#:use-module (gnu packages dbm)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages dns)
@@ -4071,7 +4073,7 @@ be used for realtime video capture via Linux-specific APIs.")
(define-public obs
(package
(name "obs")
- (version "30.1.2")
+ (version "31.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4081,21 +4083,27 @@ be used for realtime video capture via Linux-specific APIs.")
(file-name (git-file-name name version))
(sha256
(base32
- "02pm6397h7l0xhdpscbh1kq8y98zx236z95wvw60kbhq38s0i0ik"))
+ "02l1qr7pbmg0va1m9ydmzamg3kh4h05if1hbg0kzfngq93vvy13p"))
(patches
(search-patches "obs-modules-location.patch"))))
(build-system cmake-build-system)
(arguments
(list
+ #:cmake cmake-next ;needs cmake >= 3.28
#:configure-flags
- #~(list (string-append "-DOBS_VERSION_OVERRIDE=" #$version)
- "-DENABLE_UNIT_TESTS=ON"
- "-DENABLE_NEW_MPEGTS_OUTPUT=OFF"
- "-DENABLE_AJA=OFF"
- "-DENABLE_QSV11=OFF"
- ;; Browser plugin requires cef, but it is not packaged yet.
- ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
- "-DBUILD_BROWSER=OFF")
+ #~(let ((libdir (string-append (assoc-ref %outputs "out") "/lib")))
+ (list (string-append "-DOBS_VERSION_OVERRIDE=" #$version)
+ (string-append "-DOBS_EXECUTABLE_RPATH=" libdir)
+ (string-append "-DOBS_LIBRARY_RPATH=" libdir)
+ (string-append "-DOBS_MODULE_RPATH=" libdir)
+ "-DENABLE_UNIT_TESTS=ON"
+ "-DENABLE_NEW_MPEGTS_OUTPUT=OFF"
+ "-DENABLE_AJA=OFF"
+ "-DENABLE_QSV11=OFF"
+ "-DENABLE_NVENC=OFF"
+ ;; Browser plugin requires cef, but it is not packaged yet.
+ ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
+ "-DBUILD_BROWSER=OFF"))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-executable
@@ -4151,10 +4159,12 @@ be used for realtime video capture via Linux-specific APIs.")
qtbase
qtsvg
qtwayland
+ rnnoise
speexdsp
v4l-utils
- vulkan-headers
+ uthash
vlc
+ vulkan-headers
wayland
wayland-protocols
websocketpp