about summary refs log tree commit diff
path: root/pkgs/applications/video
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2024-06-23 09:54:56 -0400
committerGitHub <noreply@github.com>2024-06-23 09:54:56 -0400
commit601cd7299d80d232b2abb45aef634ac3f6536cc3 (patch)
tree2ac096854c8bee78f295c97a1f55f9b34e8cee04 /pkgs/applications/video
parentc6aec80fb98d302747f1e1b4963cf2b97ac89467 (diff)
parent1c107769c7b22c0c923cb9d88dfc3aee3ebec78d (diff)
Merge pull request #319901 from MatthewCroughan/mc/ustreamer-webrtc
ustreamer: add janus-gateway webrtc support
Diffstat (limited to 'pkgs/applications/video')
-rw-r--r--pkgs/applications/video/ustreamer/default.nix39
1 files changed, 35 insertions, 4 deletions
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 230012dbc5323..b612584d8b0f3 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -1,5 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg, libdrm, pkg-config }:
-
+{ lib
+, stdenv
+, fetchFromGitHub
+, libbsd
+, libevent
+, libjpeg
+, libdrm
+, pkg-config
+, janus-gateway
+, glib
+, alsa-lib
+, speex
+, jansson
+, libopus
+, withJanus ? true
+}:
 stdenv.mkDerivation rec {
   pname = "ustreamer";
   version = "6.12";
@@ -11,13 +25,30 @@ stdenv.mkDerivation rec {
     hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
   };
 
-  buildInputs = [ libbsd libevent libjpeg libdrm ];
+  buildInputs = [
+    libbsd
+    libevent
+    libjpeg
+    libdrm
+  ] ++ lib.optionals withJanus [
+    janus-gateway
+    glib
+    alsa-lib
+    jansson
+    speex
+    libopus
+  ];
 
   nativeBuildInputs = [ pkg-config ];
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "WITH_V4P=1"
+  ] ++ lib.optionals withJanus [
+    "WITH_JANUS=1"
+    # Workaround issues with Janus C Headers
+    # https://github.com/pikvm/ustreamer/blob/793f24c4/docs/h264.md#fixing-janus-c-headers
+    "CFLAGS=-I${lib.getDev janus-gateway}/include/janus"
   ];
 
   enableParallelBuilding = true;
@@ -33,7 +64,7 @@ stdenv.mkDerivation rec {
       screencast hardware data with the highest resolution and FPS possible.
     '';
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ tfc ];
+    maintainers = with maintainers; [ tfc matthewcroughan ];
     platforms = platforms.linux;
   };
 }