From 11e98079baf57342c62d1a6a320b0db773287e83 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 13 Nov 2019 14:17:32 +0100 Subject: [PATCH] obs-studio: add build for obs-ndi plugin Note that the plugin won't do anything without the NDI library packaged, too. I'll add that one ASAP. --- .../video/obs-studio/fix-search-path.patch | 13 +++++++ .../applications/video/obs-studio/obs-ndi.nix | 39 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 54 insertions(+) create mode 100644 pkgs/applications/video/obs-studio/fix-search-path.patch create mode 100644 pkgs/applications/video/obs-studio/obs-ndi.nix 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 00000000000..4503447ff5d --- /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 00000000000..450ebf4ac20 --- /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 "" -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 6e76c5fefe5..8c3639c5fe2 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 { };