diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/video/obs-studio | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/applications/video/obs-studio')
-rw-r--r-- | nixpkgs/pkgs/applications/video/obs-studio/default.nix | 88 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix | 48 |
2 files changed, 136 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix new file mode 100644 index 000000000000..3bb8f31b9872 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix @@ -0,0 +1,88 @@ +{ stdenv +, fetchFromGitHub +, cmake +, fdk_aac +, ffmpeg +, jansson +, libjack2 +, libxkbcommon +, libpthreadstubs +, libXdmcp +, qtbase +, qtx11extras +, speex +, libv4l +, x264 +, curl +, xorg +, makeWrapper +, pkgconfig +, vlc +, mbedtls + +, alsaSupport ? false +, alsaLib +, pulseaudioSupport ? false +, libpulseaudio +}: + +let + optional = stdenv.lib.optional; +in stdenv.mkDerivation rec { + name = "obs-studio-${version}"; + version = "22.0.3"; + + src = fetchFromGitHub { + owner = "jp9000"; + repo = "obs-studio"; + rev = "${version}"; + sha256 = "0ri9qkqk3h71b1a5bwpjzqdr21bbmfqbykg48l779d20zln23n1i"; + }; + + nativeBuildInputs = [ cmake + pkgconfig + ]; + + buildInputs = [ curl + fdk_aac + ffmpeg + jansson + libjack2 + libv4l + libxkbcommon + libpthreadstubs + libXdmcp + qtbase + qtx11extras + speex + x264 + vlc + makeWrapper + mbedtls + ] + ++ optional alsaSupport alsaLib + ++ optional pulseaudioSupport libpulseaudio; + + # 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. + cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\"" ]; + + postInstall = '' + wrapProgram $out/bin/obs \ + --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${vlc}/lib" + ''; + + meta = with stdenv.lib; { + description = "Free and open source software for video recording and live streaming"; + longDescription = '' + This project is a rewrite of what was formerly known as "Open Broadcaster + Software", software originally designed for recording and streaming live + video content, efficiently + ''; + homepage = https://obsproject.com; + maintainers = with maintainers; [ jb55 MP2E ]; + license = licenses.gpl2; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix b/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix new file mode 100644 index 000000000000..b8bd6ce07eb9 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix @@ -0,0 +1,48 @@ +# 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 { + name = "obs-linuxbrowser-${version}"; + version = "0.5.2"; + src = fetchFromGitHub { + owner = "bazukas"; + repo = "obs-linuxbrowser"; + rev = version; + sha256 = "1vwgdgcmab5442wh2rjww6lzij9g2c5ccnv79rs7vx3rdl8wqg4f"; + }; + 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; + }; +} |