diff --git a/pkgs/applications/video/obs-studio/0001-find-ObsPluginHelpers.cmake-in-the-obs-src.patch b/pkgs/applications/video/obs-studio/0001-find-ObsPluginHelpers.cmake-in-the-obs-src.patch new file mode 100644 index 0000000000000..b642fbc3ada91 --- /dev/null +++ b/pkgs/applications/video/obs-studio/0001-find-ObsPluginHelpers.cmake-in-the-obs-src.patch @@ -0,0 +1,25 @@ +From 5798a2691467604e89fd9fb1cd5289ebd1b1d7b8 Mon Sep 17 00:00:00 2001 +From: Graham Christensen +Date: Fri, 20 Mar 2020 22:32:02 -0400 +Subject: [PATCH] find ObsPluginHelpers.cmake in the obs src + +--- + external/FindLibObs.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/external/FindLibObs.cmake b/external/FindLibObs.cmake +index ab0a3de..53a46b8 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(${OBS_SRC}/cmake/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) +-- +2.25.0 + diff --git a/pkgs/applications/video/obs-studio/v4l2sink.nix b/pkgs/applications/video/obs-studio/v4l2sink.nix new file mode 100644 index 0000000000000..19cfbf14076ed --- /dev/null +++ b/pkgs/applications/video/obs-studio/v4l2sink.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchFromGitHub +, cmake, pkgconfig, wrapQtAppsHook +, obs-studio }: + +stdenv.mkDerivation { + pname = "obs-v4l2sink-unstable"; + version = "20181012"; + + src = fetchFromGitHub { + owner = "CatxFish"; + repo = "obs-v4l2sink"; + rev = "1ec3c8ada0e1040d867ce567f177be55cd278378"; + sha256 = "03ah91cm1qz26k90mfx51l0d598i9bcmw39lkikjs1msm4c9dfxx"; + }; + + nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ]; + buildInputs = [ obs-studio ]; + + patches = [ + ./0001-find-ObsPluginHelpers.cmake-in-the-obs-src.patch + ]; + + cmakeFlags = [ + "-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs" + "-DLIBOBS_LIBRARIES=${obs-studio}/lib" + "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api" + "-DOBS_SRC=${obs-studio.src}" + ]; + + installPhase = '' + mkdir -p $out/share/obs/obs-plugins/v4l2sink/bin/64bit + cp ./v4l2sink.so $out/share/obs/obs-plugins/v4l2sink/bin/64bit/ + ''; + + meta = with stdenv.lib; { + description = "obs studio output plugin for Video4Linux2 device"; + homepage = "https://github.com/CatxFish/obs-v4l2sink"; + maintainers = with maintainers; [ colemickens ]; + license = licenses.gpl2; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bb99a1aa2b40d..648057be15df3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21226,6 +21226,8 @@ in obs-wlrobs = callPackage ../applications/video/obs-studio/wlrobs.nix { }; + obs-v4l2sink = libsForQt5.callPackage ../applications/video/obs-studio/v4l2sink.nix { }; + obs-ndi = callPackage ../applications/video/obs-studio/obs-ndi.nix { }; octoprint = callPackage ../applications/misc/octoprint { };