about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/video
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-09-20 19:56:04 +0000
committerAlyssa Ross <hi@alyssa.is>2019-09-28 14:40:49 +0000
commit36bedbe5c162bab9e7ef702f353ae399fdfd0518 (patch)
treefb2926eee09fe0714683074758276739e9e5cda9 /nixpkgs/pkgs/applications/video
parent47852a9ef0e62a2d565f9ec0fba2a3ae77c44221 (diff)
parent262b328b0bad0c4b97ed495679208e4a2eb87704 (diff)
downloadnixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar.gz
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar.bz2
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar.lz
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar.xz
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.tar.zst
nixlib-36bedbe5c162bab9e7ef702f353ae399fdfd0518.zip
Merge commit '262b328b0bad0c4b97ed495679208e4a2eb87704'
Diffstat (limited to 'nixpkgs/pkgs/applications/video')
-rw-r--r--nixpkgs/pkgs/applications/video/handbrake/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/plugins.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/qarte/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/default.nix2
8 files changed, 65 insertions, 32 deletions
diff --git a/nixpkgs/pkgs/applications/video/handbrake/default.nix b/nixpkgs/pkgs/applications/video/handbrake/default.nix
index a15a4cd5999a..2e216369de9c 100644
--- a/nixpkgs/pkgs/applications/video/handbrake/default.nix
+++ b/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -2,10 +2,14 @@
 #
 # Derivation patches HandBrake to use Nix closure dependencies.
 #
+# NOTE: 2019-07-19: This derivation does not currently support the native macOS
+# GUI--it produces the "HandbrakeCLI" CLI version only. In the future it would
+# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
+# requires invoking the Xcode build system, which is non-trivial for now.
 
 { stdenv, lib, fetchurl,
   # Main build tools
-  python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4,
+  python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, lzma,
   # Processing, video codecs, containers
   ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora,
   # Codecs, audio
@@ -14,20 +18,34 @@
   libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
   # Optical media
   libdvdread, libdvdnav, libdvdcss, libbluray,
-  useGtk ? true, wrapGAppsHook ? null,
-                 intltool ? null,
-                 glib ? null,
-                 gtk3 ? null,
-                 libappindicator-gtk3 ? null,
-                 libnotify ? null,
-                 gst_all_1 ? null,
-                 dbus-glib ? null,
-                 udev ? null,
-                 libgudev ? null,
-                 hicolor-icon-theme ? null,
+  # Darwin-specific
+  AudioToolbox ? null,
+  Foundation ? null,
+  libobjc ? null,
+  VideoToolbox ? null,
+  # GTK
+  # NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
+  # which in turn depends on systemd. systemd is not supported on Darwin, so
+  # for now we disable GTK GUI support on Darwin. (It may be possible to remove
+  # this restriction later.)
+  useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
+                             intltool ? null,
+                             glib ? null,
+                             gtk3 ? null,
+                             libappindicator-gtk3 ? null,
+                             libnotify ? null,
+                             gst_all_1 ? null,
+                             dbus-glib ? null,
+                             udev ? null,
+                             libgudev ? null,
+                             hicolor-icon-theme ? null,
+  # FDK
   useFdk ? false, fdk_aac ? null
 }:
 
+assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
+  && libobjc != null && VideoToolbox != null;
+
 stdenv.mkDerivation rec {
   pname = "handbrake";
   version = "1.2.2";
@@ -45,12 +63,13 @@ stdenv.mkDerivation rec {
     ffmpeg-full libogg libtheora x264 x265 libvpx
     libopus lame libvorbis a52dec speex libsamplerate
     libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
-    libdvdread libdvdnav libdvdcss libbluray
+    libdvdread libdvdnav libdvdcss libbluray lzma
   ] ++ lib.optionals useGtk [
     glib gtk3 libappindicator-gtk3 libnotify
     gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
     libgudev hicolor-icon-theme
   ] ++ lib.optional useFdk fdk_aac
+    ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
   # NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
   # look at ./make/configure.py search "enable_nvenc"
     ++ lib.optional stdenv.isLinux nv-codec-headers;
@@ -59,13 +78,16 @@ stdenv.mkDerivation rec {
   # (default distribution bundles&builds 3rd party libs),
   # don't trigger cmake build
   dontUseCmakeConfigure = true;
-  enableParallelBuilding = true;
+  # cp: cannot create regular file './internal_defaults.json': File exists
+  enableParallelBuilding = false;
 
   preConfigure = ''
     patchShebangs scripts
 
     substituteInPlace libhb/module.defs \
       --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
+    substituteInPlace libhb/module.defs \
+      --replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
 
     # Force using nixpkgs dependencies
     sed -i '/MODULES += contrib/d' make/include/main.defs
@@ -75,8 +97,9 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--disable-df-fetch"
     "--disable-df-verify"
-    (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
-    (if useFdk then "--enable-fdk-aac"            else "")
+    (if useGtk          then "--disable-gtk-update-checks" else "--disable-gtk")
+    (if useFdk          then "--enable-fdk-aac"            else "")
+    (if stdenv.isDarwin then "--disable-xcode"             else "")
   ];
 
   # NOTE: 2018-12-27: Check NixOS HandBrake test if changing
diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
index dad52ccb9a7c..1900bf3634ce 100644
--- a/nixpkgs/pkgs/applications/video/kodi/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
@@ -487,7 +487,7 @@ let self = rec {
     src = fetchFromGitHub {
       owner = "peak3d";
       repo = "inputstream.adaptive";
-      rev = "${version}";
+      rev = version;
       sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
     };
 
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index 04ddbbb8c06a..af917981e1cf 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
     (enableFeature withGUI "qt")
   ];
 
+  CXXFLAGS = optional stdenv.cc.isClang "-std=c++14";
+
   dontWrapQtApps = true;
   postFixup = optionalString withGUI ''
     wrapQtApp $out/bin/mkvtoolnix-gui
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index cdcdea3dd26d..5e7cf9353b25 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -42,7 +42,7 @@ in mkDerivation rec {
   src = fetchFromGitHub {
     owner = "jp9000";
     repo = "obs-studio";
-    rev = "${version}";
+    rev = version;
     sha256 = "05brixq2z98mvn1q2rgdl27xj798509nv8yh6h0yzqyk9gly4anz";
   };
 
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
index b7c8e6feeba4..95f89e0eda5a 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   [ imagemagick ffmpeg swig python3 unittest-cpp
     cppzmq czmqpp qtbase qtmultimedia ];
 
-  LIBOPENSHOT_AUDIO_DIR = "${libopenshot-audio}";
+  LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
   "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/video/qarte/default.nix b/nixpkgs/pkgs/applications/video/qarte/default.nix
index f0c3776a4336..cd6416032da2 100644
--- a/nixpkgs/pkgs/applications/video/qarte/default.nix
+++ b/nixpkgs/pkgs/applications/video/qarte/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }:
+{ mkDerivation, lib, fetchbzr, python3, rtmpdump }:
 
 let
-  pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]);
-in stdenv.mkDerivation {
+  pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
+in mkDerivation {
   name = "qarte-4.6.0";
   src = fetchbzr {
     url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4;
@@ -10,28 +10,33 @@ in stdenv.mkDerivation {
     sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
   };
 
-  buildInputs = [ makeWrapper pythonEnv ];
+  buildInputs = [ pythonEnv ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     mv qarte $out/bin/
     substituteInPlace $out/bin/qarte \
       --replace '/usr/share' "$out/share"
-    wrapProgram $out/bin/qarte \
-      --prefix PATH : "${rtmpdump}/bin"
 
     mkdir -p $out/share/man/man1/
     mv qarte.1 $out/share/man/man1/
 
     mkdir -p $out/share/qarte
     mv * $out/share/qarte/
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapQtApp $out/bin/qarte \
+      --prefix PATH : ${rtmpdump}/bin
   '';
 
   meta = {
     homepage = https://launchpad.net/qarte;
     description = "A recorder for Arte TV Guide and Arte Concert";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
-    platforms = stdenv.lib.platforms.linux;
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ vbgl ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index 176c4be4946d..3edee15db5fc 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -7,13 +7,13 @@ assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "19.08.16";
+  version = "19.09.14";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "0alnnfgimfs8fjddkcfx4pzyijwz5dgnqic5qazaza6f4kf60801";
+    sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn";
   };
 
   enableParallelBuilding = true;
@@ -30,13 +30,16 @@ mkDerivation rec {
   prePatch = ''
     sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
     sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
+    sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp
     NICE=$(type -P nice)
     sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
+    # Fix VAAPI auto-config: https://github.com/mltframework/shotcut/issues/771
+    sed 's#"-vaapi_device" << ":0"#"-vaapi_device" << "/dev/dri/renderD128"#' -i src/docks/encodedock.cpp
   '';
 
   qtWrapperArgs = [
     "--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
-    "--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2 ]}"
+    "--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2]}"
     "--prefix PATH : ${mlt}/bin"
     ];
 
diff --git a/nixpkgs/pkgs/applications/video/streamlink/default.nix b/nixpkgs/pkgs/applications/video/streamlink/default.nix
index a5efddc9f1a8..e33610ac4163 100644
--- a/nixpkgs/pkgs/applications/video/streamlink/default.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -7,7 +7,7 @@ pythonPackages.buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
-    rev = "${version}";
+    rev = version;
     sha256 = "1vyf0pifdqygg98azdkfhy5fdckb0w2ca7c46mkrj452gkvmcq33";
   };