ardour: add a videoSupport option

This adds a `bool` option that, when set to `true`, enables video
timeline support for the Ardour DAW. This is commonly useful for
soundtrack composition, sound design for film, etc.

When enabled, `videoSupport` ensures that both `harvid` and `xjadeo` are
available to the `ardour6` exe via the PATH. `harvid` decodes the video
stream in real-time to produce still images (I think for thumbnail
support for the timeline?). `xjadeo` acts as a video monitoring window
that whose playback position is synchronised to the Ardour playhead.

`videoSupport` remains disabled by default, preserving the original
behaviour.

Video support can be added to ardour in your system or home
configuration package list with:

```
(ardour.override { videoSupport = true; })
```
This commit is contained in:
mitchmindtree 2021-03-04 19:02:02 +01:00
parent a346a9faa4
commit e14c97185f

View File

@ -16,6 +16,7 @@
, glibmm , glibmm
, graphviz , graphviz
, gtkmm2 , gtkmm2
, harvid
, itstool , itstool
, libarchive , libarchive
, libjack2 , libjack2
@ -35,6 +36,7 @@
, lilv , lilv
, lrdf , lrdf
, lv2 , lv2
, makeWrapper
, pango , pango
, perl , perl
, pkg-config , pkg-config
@ -49,6 +51,8 @@
, taglib , taglib
, vamp-plugin-sdk , vamp-plugin-sdk
, wafHook , wafHook
, xjadeo
, videoSupport ? false
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ardour"; pname = "ardour";
@ -70,6 +74,7 @@ stdenv.mkDerivation rec {
doxygen doxygen
graphviz # for dot graphviz # for dot
itstool itstool
makeWrapper
perl perl
pkg-config pkg-config
python3 python3
@ -121,7 +126,7 @@ stdenv.mkDerivation rec {
suil suil
taglib taglib
vamp-plugin-sdk vamp-plugin-sdk
]; ] ++ lib.optionals videoSupport [ harvid xjadeo ];
wafConfigureFlags = [ wafConfigureFlags = [
"--cxx11" "--cxx11"
@ -158,6 +163,10 @@ stdenv.mkDerivation rec {
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
done done
install -vDm 644 "ardour.1"* -t "$out/share/man/man1" 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"; LINKFLAGS = "-lpthread";
@ -176,6 +185,6 @@ stdenv.mkDerivation rec {
homepage = "https://ardour.org/"; homepage = "https://ardour.org/";
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ goibhniu magnetophon ]; maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ];
}; };
} }