depot/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix
Default email 83627f9931 Project import generated by Copybara.
GitOrigin-RevId: 2893f56de08021cffd9b6b6dfc70fd9ccd51eb60
2024-06-24 14:47:55 -04:00

70 lines
1.6 KiB
Nix

{ 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";
src = fetchFromGitHub {
owner = "pikvm";
repo = "ustreamer";
rev = "v${version}";
hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
};
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;
meta = with lib; {
homepage = "https://github.com/pikvm/ustreamer";
description = "Lightweight and fast MJPG-HTTP streamer";
longDescription = ''
µStreamer is a lightweight and very quick server to stream MJPG video from
any V4L2 device to the net. All new browsers have native support of this
video format, as well as most video players such as mplayer, VLC etc.
µStreamer is a part of the Pi-KVM project designed to stream VGA and HDMI
screencast hardware data with the highest resolution and FPS possible.
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ tfc matthewcroughan ];
platforms = platforms.linux;
};
}