about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2021-03-19 18:28:12 +0100
committerGitHub <noreply@github.com>2021-03-19 18:28:12 +0100
commit8fe245607d2bc65ee54babd8511c84ad252dfddd (patch)
tree285781ad2f8f89618c5a404792ce4768f6197c97
parent83a19ff89943c2509ce5037514c406767c6d33df (diff)
parent070334a512ec1da9d1c260721894c4f779b0400a (diff)
Merge pull request #115121 from mitchmindtree/ardour-video
ardour: add a videoSupport option, harvid: init at 0.8.3, xjadeo: init at 0.8.10
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--pkgs/applications/audio/ardour/default.nix15
-rw-r--r--pkgs/tools/video/harvid/default.nix42
-rw-r--r--pkgs/tools/video/xjadeo/default.nix48
-rw-r--r--pkgs/top-level/all-packages.nix4
5 files changed, 112 insertions, 3 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 8b265d59e6f21..4c23685d5a6ca 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -6325,6 +6325,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 26e25c687e776..b664326407107 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 0000000000000..812457f35cbd2
--- /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 0000000000000..bcd6d5601c0fc
--- /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 3b7831d879602..53112c0568b9f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1381,6 +1381,8 @@ in
 
   hakrawler = callPackage ../tools/security/hakrawler { };
 
+  harvid = callPackage ../tools/video/harvid { };
+
   hime = callPackage ../tools/inputmethods/hime {};
 
   hinit = haskell.lib.justStaticExecutables haskellPackages.hinit;
@@ -1427,6 +1429,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 { };