aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix4
6 files changed, 120 insertions, 57 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index c8d70c72fbac..cdecde6b869a 100644
--- a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -32,6 +32,7 @@
, alsaLib
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
, libpulseaudio
+, libcef
}:
let
@@ -39,13 +40,14 @@ let
in mkDerivation rec {
pname = "obs-studio";
- version = "26.0.0";
+ version = "26.0.2";
src = fetchFromGitHub {
owner = "obsproject";
repo = "obs-studio";
- rev = version;
- sha256 = "09y57b3c88szl3wyx3cxq8jrm3pfnyg2n25hxl1ynkq3rgaavdq2";
+ rev = "refs/tags/${version}";
+ sha256 = "1bf56z2yb7gq1knqwcqj369c3wl9jr3wll5vlngmfy2gwqrczjmw";
+ fetchSubmodules = true;
};
nativeBuildInputs = [ addOpenGLRunpath cmake pkgconfig ];
@@ -55,6 +57,7 @@ in mkDerivation rec {
fdk_aac
ffmpeg
jansson
+ libcef
libjack2
libv4l
libxkbcommon
@@ -73,6 +76,18 @@ in mkDerivation rec {
++ optional alsaSupport alsaLib
++ optional pulseaudioSupport libpulseaudio;
+ # Copied from the obs-linuxbrowser
+ postUnpack = ''
+ mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
+ for i in ${libcef}/share/cef/*; do
+ cp -r $i cef/Release/
+ cp -r $i cef/Resources/
+ done
+ cp -r ${libcef}/lib/libcef.so cef/Release/
+ cp -r ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
+ cp -r ${libcef}/include cef/
+ '';
+
# obs attempts to dlopen libobs-opengl, it fails unless we make sure
# DL_OPENGL is an explicit path. Not sure if there's a better way
# to handle this.
@@ -80,6 +95,9 @@ in mkDerivation rec {
"-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\""
"-DOBS_VERSION_OVERRIDE=${version}"
"-Wno-dev" # kill dev warnings that are useless for packaging
+ # Add support for browser source
+ "-DBUILD_BROWSER=ON"
+ "-DCEF_ROOT_DIR=../../cef"
];
postInstall = ''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix
deleted file mode 100644
index a33383937fb8..000000000000
--- a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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-linuxbrowser
-# mkdir -p ~/.config/obs-studio/plugins
-# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-linuxbrowser ~/.config/obs-studio/plugins/
-
-{ stdenv, fetchFromGitHub, obs-studio, cmake, libcef }:
-
-stdenv.mkDerivation rec {
- pname = "obs-linuxbrowser";
- version = "0.6.1-6-gf86dba6";
-
- src = fetchFromGitHub {
- owner = "bazukas";
- repo = "obs-linuxbrowser";
- rev = version;
- sha256 = "08d7qz0721va88bcyia8p0ycw50f6x3yk97s3vzhsc9xpq691kpi";
- };
-
- nativeBuildInputs = [ cmake ];
- buildInputs = [ obs-studio ];
- postUnpack = ''
- mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
- for i in ${libcef}/share/cef/*; do
- ln -s $i cef/Release/
- ln -s $i cef/Resources/
- done
- ln -s ${libcef}/lib/libcef.so cef/Release/
- ln -s ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
- ln -s ${libcef}/include cef/
- '';
- cmakeFlags = [
- "-DCEF_ROOT_DIR=../../cef"
- "-DOBS_INCLUDE_SEARCH_DIR=${obs-studio}/include/obs"
- ];
- installPhase = ''
- mkdir -p $out/share/obs/obs-plugins
- cp -r build/obs-linuxbrowser $out/share/obs/obs-plugins/
- '';
-
- meta = with stdenv.lib; {
- description = "Browser source plugin for obs-studio based on Chromium Embedded Framework";
- homepage = "https://github.com/bazukas/obs-linuxbrowser";
- maintainers = with maintainers; [ puffnfresh ];
- license = licenses.gpl2;
- platforms = with platforms; linux;
- };
-}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix
new file mode 100644
index 000000000000..70985b438c6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchurl
+, cmake
+, obs-studio
+}:
+
+stdenv.mkDerivation rec {
+ pname = "obs-move-transition";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "exeldro";
+ repo = "obs-move-transition";
+ rev = version;
+ sha256 = "0kr868lxlanq0y98f2hb70y92ac2nla8khsj879kjf3z6dqdpd66";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio ];
+
+ cmakeFlags = with lib; [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
+ "-Wno-dev"
+ ];
+
+ preConfigure = ''
+ cp ${obs-studio.src}/cmake/external/FindLibobs.cmake FindLibobs.cmake
+ '';
+
+ patches = [ ./rename-obs-move-transition-cmake.patch ];
+
+ postPatch = ''
+ substituteInPlace move-source-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ substituteInPlace move-value-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ substituteInPlace move-transition.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ '';
+
+ # obs-studio expects the shared object to be located in bin/32bit or bin/64bit
+ # https://github.com/obsproject/obs-studio/blob/d60c736cb0ec0491013293c8a483d3a6573165cb/libobs/obs-nix.c#L48
+ postInstall = let
+ pluginPath = {
+ i686-linux = "bin/32bit";
+ x86_64-linux = "bin/64bit";
+ }.${stdenv.targetPlatform.system} or (throw "Unsupported system: ${stdenv.targetPlatform.system}");
+ in ''
+ mkdir -p $out/share/obs/obs-plugins/move-transition/${pluginPath}
+ ln -s $out/lib/obs-plugins/move-transition.so $out/share/obs/obs-plugins/move-transition/${pluginPath}
+ '';
+
+ meta = with lib; {
+ description = "Plugin for OBS Studio to move source to a new position during scene transition";
+ homepage = "https://github.com/exeldro/obs-move-transition";
+ maintainers = with maintainers; [ starcraft66 ];
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
index f22ddd39ee4b..a250a365ac63 100644
--- a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -9,7 +9,7 @@
stdenv.mkDerivation rec {
pname = "obs-ndi";
- version = "4.7.1";
+ version = "4.9.1";
nativeBuildInputs = [ cmake ];
buildInputs = [ obs-studio qtbase ndi ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
owner = "Palakis";
repo = "obs-ndi";
rev = version;
- sha256 = "040fkbf3f3qgqcrd3072y3zrjb4fwga8zr10jym744xd7bgyylqh";
+ sha256 = "1y3xdqp55jayhg4sinwiwpk194zc4f4jf0abz647x2fprsk9jz7s";
};
patches = [ ./fix-search-path.patch ./hardcode-ndi-path.patch ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Network A/V plugin for OBS Studio";
homepage = "https://github.com/Palakis/obs-ndi";
- maintainers = with maintainers; [ peti ];
+ maintainers = with maintainers; [ peti jshcmpbll ];
license = licenses.gpl2;
platforms = with platforms; linux;
};
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch
new file mode 100644
index 000000000000..24c1848c10ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d116619..a1366ce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,17 @@
++if (POLICY CMP0048)
++ cmake_policy(SET CMP0048 NEW)
++endif (POLICY CMP0048)
++
+ project(move-transition VERSION 2.0.2)
+ set(PROJECT_FULL_NAME "Move Transition")
+
++include(FindLibobs.cmake)
++find_package(LibObs REQUIRED)
++
++include_directories(
++ "${LIBOBS_INCLUDE_DIR}/../plugins/obs-transitions"
++ "${LIBOBS_INCLUDE_DIR}/../UI/obs-frontend-api")
++
+ set(move-transition_HEADERS
+ move-transition.h
+ easing.h)
+@@ -34,4 +45,10 @@ target_link_libraries(move-transition
+ libobs)
+
+ set_target_properties(move-transition PROPERTIES FOLDER "plugins/exeldro")
+-install_obs_plugin_with_data(move-transition data)
++set_target_properties(move-transition PROPERTIES PREFIX "")
++
++install(TARGETS move-transition
++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/obs-plugins)
++
++install(DIRECTORY data/locale/
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/obs/obs-plugins/move-transition/locale")
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
index 99486a9ccc0c..14bc80dd3880 100644
--- a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
@@ -7,7 +7,7 @@
# ln -s ~/.nix-profile/share/obs/obs-plugins/wlrobs/bin/64bit/libwlrobs.so ~/.config/obs-studio/plugins/wlrobs/bin/64bit
{ stdenv, fetchhg, wayland, obs-studio
, meson, ninja, pkgconfig, libX11
-, dmabufSupport ? false, libdrm ? null, libGL ? null}:
+, dmabufSupport ? false, libdrm ? null, libGL ? null, lib}:
assert dmabufSupport -> libdrm != null && libGL != null;
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
'';
mesonFlags = [
- "-Duse_dmabuf=${if dmabufSupport then "true" else "false"}"
+ "-Duse_dmabuf=${lib.boolToString dmabufSupport}"
];
meta = with stdenv.lib; {