diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index bf1dd6b62388b2..b5bf4aaa7c5993 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6255,6 +6255,12 @@ githubId = 1776903; name = "Andrew Abbott"; }; + mitchmindtree = { + email = "mail@mitchellnordine.com"; + github = "mitchmindtree"; + githubId = 4587373; + name = "Mitchell Nordine"; + }; mjanczyk = { email = "m@dragonvr.pl"; github = "mjanczyk"; diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 26e25c687e7760..b6643264071070 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -16,6 +16,7 @@ , glibmm , graphviz , gtkmm2 +, harvid , itstool , libarchive , libjack2 @@ -35,6 +36,7 @@ , lilv , lrdf , lv2 +, makeWrapper , pango , perl , pkg-config @@ -49,6 +51,8 @@ , taglib , vamp-plugin-sdk , wafHook +, xjadeo +, videoSupport ? false }: stdenv.mkDerivation rec { pname = "ardour"; @@ -70,6 +74,7 @@ stdenv.mkDerivation rec { doxygen graphviz # for dot itstool + makeWrapper perl pkg-config python3 @@ -121,7 +126,7 @@ stdenv.mkDerivation rec { suil taglib vamp-plugin-sdk - ]; + ] ++ lib.optionals videoSupport [ harvid xjadeo ]; wafConfigureFlags = [ "--cxx11" @@ -158,6 +163,10 @@ stdenv.mkDerivation rec { "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png" done install -vDm 644 "ardour.1"* -t "$out/share/man/man1" + '' + lib.optionalString videoSupport '' + # `harvid` and `xjadeo` must be accessible in `PATH` for video to work. + wrapProgram "$out/bin/ardour6" \ + --prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}" ''; LINKFLAGS = "-lpthread"; @@ -174,8 +183,8 @@ stdenv.mkDerivation rec { https://community.ardour.org/donate ''; homepage = "https://ardour.org/"; - license = licenses.gpl2; + license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [ goibhniu magnetophon ]; + maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ]; }; } diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix new file mode 100644 index 00000000000000..812457f35cbd20 --- /dev/null +++ b/pkgs/tools/video/harvid/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }: + +stdenv.mkDerivation rec { + pname = "harvid"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "harvid"; + rev = "v${version}"; + sha256 = "0l1plfsfh2ixhlzg3hqqvjj42z7g422718a9kgbh7b4p882n71x7"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ ffmpeg libjpeg libpng ]; + + makeFlags = [ "DESTDIR=$(out)" "libdir=\"/lib\"" ]; + + postInstall = '' + mkdir -p $out/bin + mv $out/usr/local/bin/* $out/bin + mv $out/usr/local/share $out/ + rm -r $out/usr + ''; + + meta = with lib; { + description = + "Decodes still images from movie files and serves them via HTTP"; + longDescription = '' + harvid's intended use-case is to efficiently provide frame-accurate data + and act as second level cache for rendering the video-timeline in Ardour, + but it is not limited to that: it has applications for any task that + requires a high-performance frame-accurate online image extraction + processor. + ''; + homepage = "http://x42.github.io/harvid"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mitchmindtree ]; + }; +} diff --git a/pkgs/tools/video/xjadeo/default.nix b/pkgs/tools/video/xjadeo/default.nix new file mode 100644 index 00000000000000..bcd6d5601c0fc4 --- /dev/null +++ b/pkgs/tools/video/xjadeo/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, autoreconfHook, fetchFromGitHub, ffmpeg, freetype, libGLU +, libjack2, liblo, libX11, libXv, pkg-config, portmidi, xorg }: + +stdenv.mkDerivation rec { + pname = "xjadeo"; + version = "0.8.10"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "xjadeo"; + rev = "v${version}"; + sha256 = "0dma4cjgbrpy16x63zvfr0xss4lryl0zw7nvixvhq2f6z8day1ds"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ + ffmpeg + libjack2 + libX11 + xorg.libXext + xorg.libXpm + # The following are recommended in the README, but are seemingly + # unnecessary for a successful build. That said, the result of including + # these in the build process is possibly required at runtime in some cases, + # but I've not the time to test thoroughly for these cases. Should + # consider investigating and splitting these into options in the future. + freetype + libGLU + liblo + libXv + portmidi + ]; + + meta = with lib; { + description = "The X Jack Video Monitor"; + longDescription = '' + Xjadeo is a software video player that displays a video-clip in sync with + an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in + soundtrack composition, video monitoring or any task that requires to + synchronizing movie frames with external events. + ''; + homepage = "http://xjadeo.sourceforge.net"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mitchmindtree ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bf3b59d3f9e66c..f275980961fb42 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1366,6 +1366,8 @@ in hakrawler = callPackage ../tools/security/hakrawler { }; + harvid = callPackage ../tools/video/harvid { }; + hime = callPackage ../tools/inputmethods/hime {}; hinit = haskell.lib.justStaticExecutables haskellPackages.hinit; @@ -1410,6 +1412,8 @@ in passExtensions = recurseIntoAttrs pass.extensions; + xjadeo = callPackage ../tools/video/xjadeo { }; + asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { }; go-audit = callPackage ../tools/system/go-audit { };