summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/video/obs-studio/fix-search-path.patch13
-rw-r--r--pkgs/applications/video/obs-studio/obs-ndi.nix39
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/applications/video/obs-studio/fix-search-path.patch b/pkgs/applications/video/obs-studio/fix-search-path.patch
new file mode 100644
index 000000000000..4503447ff5dc
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/fix-search-path.patch
@@ -0,0 +1,13 @@
+diff --git a/external/FindLibObs.cmake b/external/FindLibObs.cmake
+index ab0a3de..19c63ee 100644
+--- a/external/FindLibObs.cmake
++++ b/external/FindLibObs.cmake
+@@ -95,7 +95,7 @@ if(LIBOBS_FOUND)
+
+ set(LIBOBS_INCLUDE_DIRS ${LIBOBS_INCLUDE_DIR} ${W32_PTHREADS_INCLUDE_DIR})
+ set(LIBOBS_LIBRARIES ${LIBOBS_LIB} ${W32_PTHREADS_LIB})
+- include(${LIBOBS_INCLUDE_DIR}/../cmake/external/ObsPluginHelpers.cmake)
++ include(external/ObsPluginHelpers.cmake)
+
+ # allows external plugins to easily use/share common dependencies that are often included with libobs (such as FFmpeg)
+ if(NOT DEFINED INCLUDED_LIBOBS_CMAKE_MODULES)
diff --git a/pkgs/applications/video/obs-studio/obs-ndi.nix b/pkgs/applications/video/obs-studio/obs-ndi.nix
new file mode 100644
index 000000000000..450ebf4ac20d
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -0,0 +1,39 @@
+# We don't have a wrapper which can supply obs-studio plugins so you have to
+# somewhat manually install this:
+
+# nix-env -f "<nixpkgs>" -iA obs-ndi
+# mkdir -p ~/.config/obs-studio/plugins
+# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-ndi ~/.config/obs-studio/plugins/
+
+{ stdenv, fetchFromGitHub, obs-studio, cmake, qt5 }:
+
+stdenv.mkDerivation rec {
+ pname = "obs-ndi";
+ version = "4.7.1";
+
+ src = fetchFromGitHub {
+ owner = "Palakis";
+ repo = "obs-ndi";
+ rev = version;
+ sha256 = "040fkbf3f3qgqcrd3072y3zrjb4fwga8zr10jym744xd7bgyylqh";
+ };
+
+ patches = [ ./fix-search-path.patch ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio qt5.qtbase ];
+
+ cmakeFlags = [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs"
+ "-DLIBOBS_LIB=${obs-studio}/lib"
+ "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Network A/V plugin for OBS Studio";
+ homepage = https://github.com/Palakis/obs-ndi;
+ maintainers = with maintainers; [ peti ];
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6e76c5fefe5c..8c3639c5fe25 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -20332,6 +20332,8 @@ in
obs-wlrobs = callPackage ../applications/video/obs-studio/wlrobs.nix { };
+ obs-ndi = callPackage ../applications/video/obs-studio/obs-ndi.nix { };
+
octoprint = callPackage ../applications/misc/octoprint { };
octoprint-plugins = callPackage ../applications/misc/octoprint/plugins.nix { };