about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/video
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/video')
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/catt/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/video/ccextractor/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/video/corrscope/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/video/droidcam/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/epgstation/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/filebot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/go-chromecast/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/kazam/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/requests-cache/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/routing/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/steam-library/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/lightworks/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/video/manim/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix138
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/qarte/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/video/qmplay2/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/srtrelay/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix18
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/video/tartube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/vlc/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/xplayer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/xscast/default.nix2
40 files changed, 462 insertions, 161 deletions
diff --git a/nixpkgs/pkgs/applications/video/avidemux/default.nix b/nixpkgs/pkgs/applications/video/avidemux/default.nix
index fe767759a82b..ddd20d6b7914 100644
--- a/nixpkgs/pkgs/applications/video/avidemux/default.nix
+++ b/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://fixounet.free.fr/avidemux/";
     description = "Free video editor designed for simple video editing tasks";
-    maintainers = with maintainers; [ abbradar ma27 ];
+    maintainers = with maintainers; [ abbradar ];
     # "CPU not supported" errors on AArch64
     platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/video/catt/default.nix b/nixpkgs/pkgs/applications/video/catt/default.nix
index e4225963cb2b..4b285cfc0075 100644
--- a/nixpkgs/pkgs/applications/video/catt/default.nix
+++ b/nixpkgs/pkgs/applications/video/catt/default.nix
@@ -4,11 +4,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "catt";
-  version = "0.12.1";
+  version = "0.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fef58bf7a8ebaba98399d1077cc4615f53d0196aab2a989df369a66f7111963b";
+    sha256 = "sha256-BOETKTkcbLOu5SubiejswU7D47qWS13QZ7rU9x3jf5Y=";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +19,14 @@ buildPythonApplication rec {
     youtube-dl
   ];
 
+  # remove click when 0.12.3 is released
+  # upstream doesn't use zeroconf directly but pins it for pychromecast
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "zeroconf==0.31.0" "" \
+      --replace "Click>=7.1.2,<8" "click"
+  '';
+
   doCheck = false; # attempts to access various URLs
   pythonImportsCheck = [ "catt" ];
 
@@ -29,4 +37,3 @@ buildPythonApplication rec {
     maintainers = with maintainers; [ dtzWill ];
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/video/ccextractor/default.nix b/nixpkgs/pkgs/applications/video/ccextractor/default.nix
index b559a85d44c6..5bb13e116174 100644
--- a/nixpkgs/pkgs/applications/video/ccextractor/default.nix
+++ b/nixpkgs/pkgs/applications/video/ccextractor/default.nix
@@ -1,25 +1,44 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
-, glew, glfw3, leptonica, libiconv, tesseract3, zlib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, libiconv
+, zlib
+, enableOcr ? true
+, makeWrapper
+, tesseract4
+, leptonica
+, ffmpeg
+}:
 
-with lib;
 stdenv.mkDerivation rec {
   pname = "ccextractor";
-  version = "0.90";
+  version = "0.93";
 
   src = fetchFromGitHub {
     owner = "CCExtractor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NVFCwUZZVt8GrWXWyvoF8UrUZ/ix+GWubKtc3218k7o=";
+    sha256 = "sha256-usVAKBkdd8uz9cD5eLd0hnwGonOJLscRdc+iWDlNXVc=";
   };
 
   sourceRoot = "source/src";
 
-  nativeBuildInputs = [ pkg-config cmake ];
+  nativeBuildInputs = [ pkg-config cmake makeWrapper ];
 
-  buildInputs = [ glew glfw3 leptonica tesseract3 zlib ] ++ lib.optional (!stdenv.isLinux) libiconv;
+  buildInputs = [ zlib ]
+    ++ lib.optional (!stdenv.isLinux) libiconv
+    ++ lib.optionals enableOcr [ leptonica tesseract4 ffmpeg ];
 
-  meta = {
+  cmakeFlags = lib.optionals enableOcr [ "-DWITH_OCR=on" "-DWITH_HARDSUBX=on" ];
+
+  postInstall = lib.optionalString enableOcr ''
+    wrapProgram "$out/bin/ccextractor" \
+      --set TESSDATA_PREFIX "${tesseract4}/share/"
+  '';
+
+  meta = with lib; {
     homepage = "https://www.ccextractor.org";
     description = "Tool that produces subtitles from closed caption data in videos";
     longDescription = ''
@@ -28,7 +47,13 @@ stdenv.mkDerivation rec {
       It works on Linux, Windows, and OSX.
     '';
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    # undefined reference to `png_do_expand_palette_rgba8_neon'
+    # undefined reference to `png_riffle_palette_neon'
+    # undefined reference to `png_do_expand_palette_rgb8_neon'
+    # undefined reference to `png_init_filter_functions_neon'
+    # during Linking C executable ccextractor
+    broken = stdenv.isAarch64;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ titanous ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/corrscope/default.nix b/nixpkgs/pkgs/applications/video/corrscope/default.nix
index d691882a2c6f..727541e3b53d 100644
--- a/nixpkgs/pkgs/applications/video/corrscope/default.nix
+++ b/nixpkgs/pkgs/applications/video/corrscope/default.nix
@@ -1,6 +1,8 @@
 { lib
 , mkDerivationWith
 , python3Packages
+, fetchFromGitHub
+, fetchpatch
 , wrapQtAppsHook
 , ffmpeg
 , qtbase
@@ -8,36 +10,41 @@
 
 mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "corrscope";
-  version = "0.7.0";
+  version = "0.7.1";
 
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "0m62p3jlbx5dlp3j8wn1ka1sqpffsxbpsgv2h5cvj1n1lsgbss2s";
+  src = fetchFromGitHub {
+    owner = "corrscope";
+    repo = "corrscope";
+    rev = version;
+    sha256 = "0c9kmrw6pcda68li04b5j2kmsgdw1q463qlc32wn96zn9hl82v6m";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'attrs>=18.2.0,<19.0.0' 'attrs>=18.2.0' \
-      --replace 'numpy>=1.15,<2.0,!=1.19.4' 'numpy>=1.15,<2.0'
-  '';
+  format = "pyproject";
+
+  patches = [
+    # Remove when bumping past 0.7.1
+    (fetchpatch {
+      name = "0001-Use-poetry-core.patch";
+      url = "https://github.com/corrscope/corrscope/commit/d40d1846dd54b8bccd7b8055d6aece48aacbb943.patch";
+      sha256 = "0xxsbmxdbh3agfm6ww3rpa7ab0ysppan490w0gaqwmwzrxmmdljv";
+    })
+  ];
 
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [ wrapQtAppsHook ] ++ (with python3Packages; [ poetry-core ]);
 
   buildInputs = [ ffmpeg qtbase ];
 
-  propagatedBuildInputs = with python3Packages; [ appdirs attrs click matplotlib numpy pyqt5 ruamel_yaml ];
+  propagatedBuildInputs = with python3Packages; [ appdirs atomicwrites attrs click matplotlib numpy pyqt5 ruamel_yaml ];
 
   dontWrapQtApps = true;
 
   preFixup = ''
     makeWrapperArgs+=(
-      --prefix PATH : ${ffmpeg}/bin
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
       "''${qtWrapperArgs[@]}"
     )
   '';
 
-  preCheck = "export HOME=$TEMP";
-
   meta = with lib; {
     description = "Render wave files into oscilloscope views, featuring advanced correlation-based triggering algorithm";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/video/droidcam/default.nix b/nixpkgs/pkgs/applications/video/droidcam/default.nix
index 38d3d6304c68..4284d6dbf9f6 100644
--- a/nixpkgs/pkgs/applications/video/droidcam/default.nix
+++ b/nixpkgs/pkgs/applications/video/droidcam/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "1.7.3";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-Ok8FJweSzmewjYzfBJQ28xGHKK/Y32ng1hOCPVwc8eU=";
+    sha256 = "sha256-A8FHTAeDFaSDp5Bnfv5NmCC7xIFAw3IcHSD4hZp4vwU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/epgstation/default.nix b/nixpkgs/pkgs/applications/video/epgstation/default.nix
index f1f89b109074..3d910ad4c0e8 100644
--- a/nixpkgs/pkgs/applications/video/epgstation/default.nix
+++ b/nixpkgs/pkgs/applications/video/epgstation/default.nix
@@ -27,7 +27,7 @@ let
     # FIXME: This should be removed when a complete fix is available
     # https://github.com/svanderburg/node2nix/issues/145
     name = "workaround-opencollective-buildfailures";
-    phases = [ "installPhase" ];
+    dontUnpack = true;
     installPhase = ''
       mkdir -p $out/bin
       touch $out/bin/opencollective-postinstall
diff --git a/nixpkgs/pkgs/applications/video/filebot/default.nix b/nixpkgs/pkgs/applications/video/filebot/default.nix
index 92c15fea9a35..a32228176cb9 100644
--- a/nixpkgs/pkgs/applications/video/filebot/default.nix
+++ b/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "filebot";
-  version = "4.9.3";
+  version = "4.9.4";
 
   src = fetchurl {
     url = "https://web.archive.org/web/20210326102451/https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "sha256-T+y8k757/qFCVOCc/SNc7a+KmyscPlowubNQYzMr8jY=";
+    sha256 = "sha256-fz0B9P/UBrlKGPZkheMd/4cFnWHt+brS3zRTv4nVt9o=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/nixpkgs/pkgs/applications/video/go-chromecast/default.nix b/nixpkgs/pkgs/applications/video/go-chromecast/default.nix
index 2e3d0221709f..7c0894ee06d8 100644
--- a/nixpkgs/pkgs/applications/video/go-chromecast/default.nix
+++ b/nixpkgs/pkgs/applications/video/go-chromecast/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "go-chromecast";
-  version = "0.2.9";
+  version = "0.2.10";
 
   src = fetchFromGitHub {
     owner = "vishen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KhJMgr57pDnuFLhsbf0/4n9w0EfjuuKA46ENPLXox3A=";
+    sha256 = "sha256-8216YaDgjy9Fp94Y5SQwEQpAP4NwvEhsJHe6xpQLAk8=";
   };
 
   vendorSha256 = "sha256-idxElk4Sy7SE9G1OMRw8YH4o8orBa80qhBXPA+ar620=";
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
+  ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" "-X main.date=unknown" ];
 
   meta = with lib; {
     homepage = "https://github.com/vishen/go-chromecast";
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix b/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
index f7abc95cb0c9..8c23bfc5c298 100644
--- a/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -26,13 +26,13 @@
 
 mkDerivation rec {
   pname = "jellyfin-media-player";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-media-player";
     rev = "v${version}";
-    sha256 = "sha256-u19WJupSqIzA8W0QG9mue8Ticy+HxBAniuKIUFl7ONs=";
+    sha256 = "sha256-iqwOv95JFxQ1j/9B+oBFAp7mD1/1g2EJYvvUKbrDQes=";
   };
 
   jmpDist = fetchzip {
@@ -105,7 +105,7 @@ mkDerivation rec {
     description = "Jellyfin Desktop Client based on Plex Media Player";
     license = with licenses; [ gpl2Only mit ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = with maintainers; [ jojosch ];
+    maintainers = with maintainers; [ jojosch kranzes ];
     mainProgram = "jellyfinmediaplayer";
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/kazam/default.nix b/nixpkgs/pkgs/applications/video/kazam/default.nix
index f99b4930870e..4ba0fe98df05 100644
--- a/nixpkgs/pkgs/applications/video/kazam/default.nix
+++ b/nixpkgs/pkgs/applications/video/kazam/default.nix
@@ -1,24 +1,44 @@
-{ lib, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
-, gtk3, libwnck, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio
-, fetchpatch }:
-
-python3.pkgs.buildPythonApplication rec {
-  name = "kazam-${version}";
-  version = "1.4.5";
-  namePrefix = "";
-
-  src = fetchurl {
-    url = "https://launchpad.net/kazam/stable/${version}/+download/kazam-${version}.tar.gz";
-    sha256 = "1qygnrvm6aqixbyivhssp70hs0llxwk7lh3j7idxa2jbkk06hj4f";
+{ lib
+, fetchFromGitHub
+, substituteAll
+, python3Packages
+, gst_all_1
+, wrapGAppsHook
+, gobject-introspection
+, gtk3
+, libwnck
+, keybinder3
+, intltool
+, libcanberra-gtk3
+, libappindicator-gtk3
+, libpulseaudio
+, libgudev
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "kazam";
+  version = "unstable-2021-06-22";
+
+  src = fetchFromGitHub {
+    owner = "niknah";
+    repo = "kazam";
+    rev = "13f6ce124e5234348f56358b9134a87121f3438c";
+    sha256 = "1jk6khwgdv3nmagdgp5ivz3156pl0ljhf7b6i4b52w1h5ywsg9ah";
   };
 
-  nativeBuildInputs = [ gobject-introspection python3.pkgs.distutils_extra intltool wrapGAppsHook ];
+  nativeBuildInputs = [ gobject-introspection python3Packages.distutils_extra intltool wrapGAppsHook ];
   buildInputs = [
-    gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gtk3 libwnck
-    keybinder3 libappindicator-gtk3
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gtk3
+    libwnck
+    keybinder3
+    libappindicator-gtk3
+    libgudev
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [ pygobject3 pyxdg pycairo dbus-python ];
+  propagatedBuildInputs = with python3Packages; [ pygobject3 pyxdg pycairo dbus-python xlib ];
 
   # workaround https://github.com/NixOS/nixpkgs/issues/56943
   strictDeps = false;
@@ -30,11 +50,6 @@ python3.pkgs.buildPythonApplication rec {
       libcanberra = libcanberra-gtk3;
       inherit libpulseaudio;
     })
-    # https://github.com/hzbd/kazam/pull/21
-    (fetchpatch {
-      url = "https://github.com/hzbd/kazam/commit/37e53a5aa61f4223a9ea03ceeda26eeba2b9d37b.patch";
-      sha256 = "1q5dpmdm6cvgzw8xa7bwclnqa05xc73ja1lszwmwv5glyik0fk4z";
-    })
   ];
 
   # no tests
@@ -42,7 +57,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A screencasting program created with design in mind";
-    homepage = "https://code.launchpad.net/kazam";
+    homepage = "https://github.com/niknah/kazam";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.domenkozar ];
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
index 784e0f7faf01..f8d3054cc8b2 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "2.6.20";
+  version = "2.6.23";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "0g0pvfdmnd3frsd5sdckv3llwyjiw809rqy1slq3xj6i08xhcmd5";
+    sha256 = "sha256-3w/fMaGqaOHSE7GUJtYoWovBKSOv3sNOIX1UOcp8hQE=";
   };
 
   extraNativeBuildInputs = [ gtest ];
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/requests-cache/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/requests-cache/default.nix
new file mode 100644
index 000000000000..de785ab9bb52
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/requests-cache/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
+buildKodiAddon rec {
+  pname = "requests-cache";
+  namespace = "script.module.requests-cache";
+  version = "0.5.2+matrix.2";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "0fgl4jayq6hbhqxg16nfy9qizwf54c8nvg0icv93knaj13zfzkz8";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  passthru = {
+    pythonPath = "lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.requests-cache";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/reclosedev/requests-cache";
+    description = "Persistent cache for requests library";
+    license = licenses.bsd2;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/routing/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/routing/default.nix
new file mode 100644
index 000000000000..a75e786cf1ff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/routing/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "routing";
+  namespace = "script.module.routing";
+  version = "0.2.3+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1qhp40xd8mbcvzwlamqw1j5l224ry086593948g24drpqiiyc8x6";
+  };
+
+  passthru = {
+    pythonPath = "lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.routing";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/tamland/kodi-plugin-routing";
+    description = "A routing module for kodi plugins";
+    license = licenses.gpl3Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/steam-library/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/steam-library/default.nix
new file mode 100644
index 000000000000..5660be94987f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/steam-library/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildKodiAddon, fetchFromGitHub, requests, requests-cache, routing }:
+
+buildKodiAddon rec {
+  pname = "steam-library";
+  namespace = "plugin.program.steam.library";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "aanderse";
+    repo = namespace;
+    rev = "v${version}";
+    sha256 = "1d8n8zkprjql0nw5ff752yr994hw2ikd0ny3m9hjr90s4kdykjzr";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests-cache
+    routing
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/aanderse/plugin.program.steam.library";
+    description = "View your entire Steam library right from Kodi";
+    license = licenses.gpl3Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/lightworks/default.nix b/nixpkgs/pkgs/applications/video/lightworks/default.nix
index 352af7754c7e..affc585ed351 100644
--- a/nixpkgs/pkgs/applications/video/lightworks/default.nix
+++ b/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -38,7 +38,6 @@ let
     nativeBuildInputs = [ makeWrapper ];
     buildInputs = [ dpkg ];
 
-    phases = [ "unpackPhase" "installPhase" ];
     unpackPhase = "dpkg-deb -x ${src} ./";
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/applications/video/makemkv/default.nix b/nixpkgs/pkgs/applications/video/makemkv/default.nix
index 9ab35b92a862..180d5e8e8293 100644
--- a/nixpkgs/pkgs/applications/video/makemkv/default.nix
+++ b/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -13,22 +13,23 @@
 }:
 
 let
-  version = "1.16.3";
+  version = "1.16.4";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    hash = "sha256-G2XceMwiFu4fWT4L3HJzDB/rD3eSX6ko6RdVw72QLzg=";
+    sha256 = "18kalql846b9ggl3nsz2dpbg51byn8pj0y68fsdcgwwkgvsx7yr2";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    hash = "sha256-YUGozP9B6vmWQ4WxctSbezzu+0yLJXNKQk9TwnQF8F0=";
+    sha256 = "0ssg3q1z80652d4gkv1z7kpsxx82xcw6kpsw266c8q4y2n8x7c76";
   };
+
 in mkDerivation {
   pname = "makemkv";
   inherit version;
@@ -51,9 +52,15 @@ in mkDerivation {
   installPhase = ''
     runHook preInstall
 
-    install -Dm555 -t $out/bin           out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon
-    install -D     -t $out/lib           out/lib{driveio,makemkv,mmbd}.so.*
-    install -D     -t $out/share/MakeMKV ../makemkv-bin-${version}/src/share/*
+    install -Dm555 -t $out/bin                          out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon
+    install -D     -t $out/lib                          out/lib{driveio,makemkv,mmbd}.so.*
+    install -D     -t $out/share/MakeMKV                ../makemkv-bin-${version}/src/share/*
+    install -Dm444 -t $out/share/applications           ../makemkv-oss-${version}/makemkvgui/share/makemkv.desktop
+    install -Dm444 -t $out/share/icons/hicolor/16x16    ../makemkv-oss-${version}/makemkvgui/share/icons/16x16/*
+    install -Dm444 -t $out/share/icons/hicolor/32x32    ../makemkv-oss-${version}/makemkvgui/share/icons/32x32/*
+    install -Dm444 -t $out/share/icons/hicolor/64x64    ../makemkv-oss-${version}/makemkvgui/share/icons/64x64/*
+    install -Dm444 -t $out/share/icons/hicolor/128x128  ../makemkv-oss-${version}/makemkvgui/share/icons/128x128/*
+    install -Dm444 -t $out/share/icons/hicolor/256x256  ../makemkv-oss-${version}/makemkvgui/share/icons/256x256/*
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/video/manim/default.nix b/nixpkgs/pkgs/applications/video/manim/default.nix
index 0f224a5b1057..5da81eff50e6 100644
--- a/nixpkgs/pkgs/applications/video/manim/default.nix
+++ b/nixpkgs/pkgs/applications/video/manim/default.nix
@@ -44,7 +44,7 @@ buildPythonApplication rec {
       python3 manim.py example_scenes.py $scene -l
       tail -n 20 files/Tex/*.log  # Print potential LaTeX erorrs
       ${file}/bin/file videos/example_scenes/480p15/$scene.mp4 \
-        | tee | grep -F "ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]"
+        | tee | grep -F "ISO Media, MP4 Base Media v1 [ISO 14496-12:2003]"
     done
   '';
 
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index 23bad049d6f8..0f271dd889e8 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -1,69 +1,141 @@
-{ lib, stdenv, fetchFromGitLab, pkg-config, autoconf, automake, libiconv, drake
-, ruby, docbook_xsl, file, xdg-utils, gettext, expat, boost, libebml, zlib
-, fmt, libmatroska, libogg, libvorbis, flac, libxslt, cmark, pcre2
+{ lib
+, stdenv
+, fetchFromGitLab
+, pkg-config
+, autoreconfHook
+, qmake
+, rake
+, boost
+, cmark
+, docbook_xsl
+, expat
+, file
+, flac
+, fmt
+, gettext
+, gmp
+, gtest
+, libdvdread
+, libebml
+, libiconv
+, libmatroska
+, libogg
+, libvorbis
+, libxslt
+, nlohmann_json
+, pugixml
+, qtbase
+, qtmultimedia
+, xdg-utils
+, zlib
 , withGUI ? true
-  , qtbase ? null
-  , qtmultimedia ? null
-  , wrapQtAppsHook ? null
+, wrapQtAppsHook
 }:
 
-assert withGUI -> qtbase != null && qtmultimedia != null && wrapQtAppsHook != null;
+let
+  inherit (lib) enableFeature optional optionals optionalString;
 
-with lib;
+  phase = name: args:
+    ''
+      runHook pre${name}
 
+      rake ${args}
+
+      runHook post${name}
+    '';
+
+in
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "56.0.0";
+  version = "60.0.0";
 
   src = fetchFromGitLab {
-    owner  = "mbunkus";
-    repo   = "mkvtoolnix";
-    rev    = "release-${version}";
-    sha256 = "0nhpp1zkggxqjj7lhj6as5mcjcz5yk3l1d1xcgs7i9153blam1yj";
+    owner = "mbunkus";
+    repo = "mkvtoolnix";
+    rev = "release-${version}";
+    sha256 = "sha256-WtEC/EH0G1Tm6OK6hmVRzloLkO8mxxOYYZY7k/Wi2zE=";
   };
 
   nativeBuildInputs = [
-    pkg-config autoconf automake gettext
-    drake ruby docbook_xsl libxslt
-  ];
+    autoreconfHook
+    docbook_xsl
+    gettext
+    gtest
+    libxslt
+    pkg-config
+    rake
+  ]
+  ++ optional withGUI wrapQtAppsHook;
 
+  # 1. qtbase and qtmultimedia are needed without the GUI
+  # 2. we have utf8cpp in nixpkgs but it doesn't find it
   buildInputs = [
-    expat file xdg-utils boost libebml zlib fmt
-    libmatroska libogg libvorbis flac cmark pcre2
-  ] ++ optional  stdenv.isDarwin libiconv
-    ++ optionals withGUI [ qtbase qtmultimedia wrapQtAppsHook ];
+    boost
+    expat
+    file
+    flac
+    fmt
+    gmp
+    libdvdread
+    libebml
+    libmatroska
+    libogg
+    libvorbis
+    nlohmann_json
+    pugixml
+    qtbase
+    qtmultimedia
+    xdg-utils
+    zlib
+  ]
+  ++ optional withGUI cmark
+  ++ optional stdenv.isDarwin libiconv;
 
-  preConfigure = "./autogen.sh; patchShebangs .";
-  buildPhase   = "drake -j $NIX_BUILD_CORES";
-  installPhase = "drake install -j $NIX_BUILD_CORES";
+  # autoupdate is not needed but it silences a ton of pointless warnings
+  postPatch = ''
+    patchShebangs . > /dev/null
+    autoupdate configure.ac ac/*.m4
+  '';
 
   configureFlags = [
-    "--enable-magic"
-    "--enable-optimization"
-    "--with-boost-libdir=${boost.out}/lib"
     "--disable-debug"
-    "--disable-profiling"
     "--disable-precompiled-headers"
+    "--disable-profiling"
     "--disable-static-qt"
-    "--with-gettext"
+    "--enable-optimization"
+    "--with-boost-libdir=${boost.out}/lib"
     "--with-docbook-xsl-root=${docbook_xsl}/share/xml/docbook-xsl"
-    (enableFeature withGUI "qt")
+    "--with-gettext"
+    (enableFeature withGUI "gui")
   ];
 
+  buildPhase = phase "Build" "";
+
+  installPhase = phase "Install" "install";
+
+  doCheck = true;
+
+  checkPhase = phase "Check" "tests:run_unit";
+
   CXXFLAGS = optional stdenv.cc.isClang "-std=c++17";
   LDFLAGS = optional stdenv.cc.isClang "-lc++fs";
 
   dontWrapQtApps = true;
+
+  # Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
+  qtWrapperArgs = lib.optionals stdenv.isDarwin [
+    "--set QT_MAC_WANTS_LAYER 1"
+  ];
+
   postFixup = optionalString withGUI ''
     wrapQtApp $out/bin/mkvtoolnix-gui
   '';
 
   meta = with lib; {
     description = "Cross-platform tools for Matroska";
-    homepage    = "http://www.bunkus.org/videotools/mkvtoolnix/";
-    license     = licenses.gpl2Only;
+    homepage = "https://mkvtoolnix.download/";
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ codyopel rnhmjoj ];
-    platforms   = platforms.linux
-      ++ optionals (!withGUI) platforms.darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
index 3bde15430579..93c3b2203b75 100644
--- a/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -97,6 +97,8 @@ in stdenv.mkDerivation rec {
   pname = "mpv";
   version = "0.33.1";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchFromGitHub {
     owner  = "mpv-player";
     repo   = "mpv";
@@ -153,8 +155,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     addOpenGLRunpath docutils perl pkg-config python3 wafHook which
-  ]
-    ++ optional swiftSupport swift;
+  ] ++ optional swiftSupport swift;
 
   buildInputs = [
     ffmpeg freetype libass libpthreadstubs
@@ -206,6 +207,9 @@ in stdenv.mkDerivation rec {
     cp TOOLS/umpv $out/bin
     cp $out/share/applications/mpv.desktop $out/share/applications/umpv.desktop
     sed -i '/Icon=/ ! s/mpv/umpv/g' $out/share/applications/umpv.desktop
+
+    substituteInPlace $out/lib/pkgconfig/mpv.pc \
+      --replace "$out/include" "$dev/include"
   '' + optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     cp -r build/mpv.app $out/Applications
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
index b7e95324f58e..0b750332ea7f 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "mpv-playlistmanager";
-  version = "unstable-2021-03-09";
+  version = "unstable-2021-08-17";
 
   src = fetchFromGitHub {
     owner = "jonniek";
     repo = "mpv-playlistmanager";
-    rev = "c15a0334cf6d4581882fa31ddb1e6e7f2d937a3e";
-    sha256 = "uxcvgcSGS61UU8MmuD6qMRqpIa53iasH/vkg1xY7MVc=";
+    rev = "44d6911856a39e9a4057d19b70f21a9bc18bd6a9";
+    sha256 = "IwH6XngfrZlKGDab/ut43hzHeino8DmWzWRX8Av21Sk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
index 99b731757ff9..01f2c3a099fa 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
@@ -2,13 +2,13 @@
 , fetchFromGitHub }:
 stdenvNoCC.mkDerivation rec {
   pname = "simple-mpv-ui";
-  version = "1.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "open-dynaMIX";
     repo = "simple-mpv-webui";
     rev = "v${version}";
-    sha256 = "1glrnnl1slcl0ri0zs4j64lc9aa52p9ffh6av0d81fk95nm98917";
+    sha256 = "1z0y8sdv5mbxznxqh43w5592ym688vkvqg7w26p8cinrhf09pbw8";
   };
 
   dontBuild = true;
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     description = "A web based user interface with controls for the mpv mediaplayer";
     homepage = "https://github.com/open-dynaMIX/simple-mpv-webui";
-    maintainers = [ maintainers.cript0nauta ];
+    maintainers = with maintainers; [ cript0nauta zopieux ];
     longDescription = ''
       You can access the webui when accessing http://127.0.0.1:8080 or
       http://[::1]:8080 in your webbrowser. By default it listens on
diff --git a/nixpkgs/pkgs/applications/video/mpv/wrapper.nix b/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
index 4d61971956e9..5225197772c7 100644
--- a/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
@@ -61,7 +61,8 @@ let
     symlinkJoin {
       name = "mpv-with-scripts-${mpv.version}";
 
-      paths = [ mpv ];
+      # TODO: don't link all mpv outputs and convert package to mpv-unwrapped?
+      paths = [ mpv.all ];
 
       buildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index d7784279c315..82040203c4f3 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -1,4 +1,6 @@
-{ config, lib, stdenv
+{ config
+, lib
+, stdenv
 , mkDerivation
 , fetchFromGitHub
 , addOpenGLRunpath
@@ -41,7 +43,8 @@
 let
   inherit (lib) optional optionals;
 
-in mkDerivation rec {
+in
+mkDerivation rec {
   pname = "obs-studio";
   version = "27.0.0";
 
@@ -61,7 +64,13 @@ in mkDerivation rec {
     ./Change-product_version-to-user_agent_product.patch
   ];
 
-  nativeBuildInputs = [ addOpenGLRunpath cmake pkg-config ];
+  nativeBuildInputs = [
+    addOpenGLRunpath
+    cmake
+    pkg-config
+    makeWrapper
+  ]
+  ++ optional scriptingSupport swig;
 
   buildInputs = [
     curl
@@ -81,10 +90,9 @@ in mkDerivation rec {
     wayland
     x264
     libvlc
-    makeWrapper
     mbedtls
   ]
-  ++ optionals scriptingSupport [ luajit swig python3 ]
+  ++ optionals scriptingSupport [ luajit python3 ]
   ++ optional alsaSupport alsa-lib
   ++ optional pulseaudioSupport libpulseaudio
   ++ optional pipewireSupport pipewire;
@@ -132,7 +140,7 @@ in mkDerivation rec {
     '';
     homepage = "https://obsproject.com";
     maintainers = with maintainers; [ jb55 MP2E V ];
-    license = licenses.gpl2;
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    license = licenses.gpl2Plus;
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/default.nix
index ef360487a6b1..95b41c1c86f1 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/default.nix
@@ -5,6 +5,8 @@
   obs-move-transition = callPackage ./obs-move-transition.nix {};
   obs-multi-rtmp = libsForQt5.callPackage ./obs-multi-rtmp.nix {};
   obs-ndi = libsForQt5.callPackage ./obs-ndi.nix {};
+  obs-websocket = libsForQt5.callPackage ./obs-websocket.nix {};
   wlrobs = callPackage ./wlrobs.nix {};
   looking-glass-obs = callPackage ./looking-glass-obs.nix {};
+  obs-nvfbc = callPackage ./obs-nvfbc.nix {};
 }
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
index 0122cba0f3d8..9985b7fd0f15 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-multi-rtmp.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-multi-rtmp";
-  version = "0.2.6";
+  version = "0.2.6.1";
 
   src = fetchFromGitHub {
     owner = "sorayuki";
     repo = "obs-multi-rtmp";
     rev = version;
-    sha256 = "sha256-SMcVL54HwFIc7/wejEol2XiZhlZCMVCwHHtIKJ/CoYY=";
+    sha256 = "sha256-ZcvmiE9gbDUHAO36QAIaUdjV14ZfPabD9CW7Ogeqdro=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix
new file mode 100644
index 000000000000..e64031ce7bbe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitLab, meson, ninja, pkg-config
+, obs-studio, libGL, libX11
+}:
+
+stdenv.mkDerivation rec {
+  pname = "obs-nvfbc";
+  version = "0.0.3";
+
+  src = fetchFromGitLab {
+    owner = "fzwoch";
+    repo = "obs-nvfbc";
+    rev = "v${version}";
+    sha256 = "0zyvks6gc6fr0a1j5b4y20rcx6ah35v6yiz05f6g3x6bhqi92l33";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja ];
+  buildInputs = [ obs-studio libGL libX11 ];
+
+  meta = with lib; {
+    description = "OBS Studio source plugin for NVIDIA FBC API";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ babbaj ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/default.nix b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
index c25e53b657b6..11f102085bc2 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "openshot-qt";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "OpenShot";
     repo = "openshot-qt";
     rev = "v${version}";
-    sha256 = "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq";
+    sha256 = "0b11h335krvflpksdlhsrq3rqkb8asipnyaf62di2z32ci3irrpq";
   };
 
   nativeBuildInputs = [ doxygen wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix b/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix
index d1b88da37fae..b82b7fd2436d 100644
--- a/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix
+++ b/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "plex-mpv-shim";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18bd2nvlwzkmadimlkh7rs8rnp0ppfx1dzkxb11dq84pdpbl25pc";
+    sha256 = "1ql7idkm916f1wlkqxqmq1i2pc94gbgq6pvb8szhb21icyy5d1y0";
   };
 
   propagatedBuildInputs = [ mpv requests python-mpv-jsonipc ];
diff --git a/nixpkgs/pkgs/applications/video/qarte/default.nix b/nixpkgs/pkgs/applications/video/qarte/default.nix
index 26b3153019fb..116cf39e3fb8 100644
--- a/nixpkgs/pkgs/applications/video/qarte/default.nix
+++ b/nixpkgs/pkgs/applications/video/qarte/default.nix
@@ -3,17 +3,20 @@
 let
   pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
 in mkDerivation {
-  name = "qarte-4.6.0";
+  pname = "qarte";
+  version = "4.12.0";
+
   src = fetchbzr {
     url = "http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4";
-    rev = "22";
-    sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
+    rev = "56";
+    sha256 = "0cq9dg04grl45xw43gi9wsb0vm8c4bcvh813h5lm4ry8b94lfx2i";
   };
 
   buildInputs = [ pythonEnv ];
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/bin
     mv qarte $out/bin/
     substituteInPlace $out/bin/qarte \
@@ -24,6 +27,7 @@ in mkDerivation {
 
     mkdir -p $out/share/qarte
     mv * $out/share/qarte/
+
     runHook postInstall
   '';
 
@@ -32,11 +36,11 @@ in mkDerivation {
       --prefix PATH : ${rtmpdump}/bin
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://launchpad.net/qarte";
     description = "A recorder for Arte TV Guide and Arte Concert";
-    license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ vbgl ];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ vbgl ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/qmplay2/default.nix b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
index 0e0580b9f2ae..538f540c63be 100644
--- a/nixpkgs/pkgs/applications/video/qmplay2/default.nix
+++ b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , cmake
@@ -19,25 +20,27 @@
 , vulkan-tools
 , wrapQtAppsHook
 }:
-
-let
+stdenv.mkDerivation rec {
   pname = "qmplay2";
-  version = "20.12.16";
-in stdenv.mkDerivation {
-  inherit pname version;
+  version = "21.06.07";
 
   src = fetchFromGitHub {
     owner = "zaps166";
     repo = "QMPlay2";
     rev = version;
-    sha256 = "sha256-+XXlQI9MyENioYmzqbbZYQ6kaMATBjPrPaErR2Vqhus=";
+    sha256 = "sha256-NV9uglYnqebXhMx8uL0DhGe9l5TBVjlSIaB4IWC8YAc=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
   buildInputs = [
     alsa-lib
     ffmpeg
+    libXv
     libass
     libcddb
     libcdio
@@ -45,7 +48,6 @@ in stdenv.mkDerivation {
     libpulseaudio
     libsidplayfp
     libva
-    libXv
     qtbase
     qttools
     taglib
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index 3a9c4809c623..6ea41b4d9259 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -34,7 +34,6 @@ mkDerivation rec {
     sha256 = "UdeHbNkJ0U9FeTmpbcU4JxiyIHkrlC8ErhtY6zdCZEk=";
   };
 
-  enableParallelBuilding = true;
   nativeBuildInputs = [ pkg-config qmake ];
   buildInputs = [
     SDL2
diff --git a/nixpkgs/pkgs/applications/video/srtrelay/default.nix b/nixpkgs/pkgs/applications/video/srtrelay/default.nix
new file mode 100644
index 000000000000..5fffdca9e38d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/srtrelay/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, srt, ffmpeg }:
+
+buildGoModule rec {
+  pname = "srtrelay-unstable";
+  version = "2021-07-28";
+
+  src = fetchFromGitHub {
+    owner = "voc";
+    repo = "srtrelay";
+    rev = "c4f02ff2e9637b01a0679b29e5a76f4521eeeef3";
+    sha256 = "06zbl97bjjyv51zp27qk37ffpbh1ylm9bsr0s5qlyd73pyavcj1g";
+  };
+
+  vendorSha256 = "1pdpb0my7gdvjjkka6jhj19b9nx575k6117hg536b106ij2n4zd2";
+
+  buildInputs = [ srt ];
+  checkInputs = [ ffmpeg ];
+
+  meta = with lib; {
+    description = "Streaming-Relay for the SRT-protocol";
+    homepage = "https://github.com/voc/srtrelay";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 32a35eca9200..53e87fbb2b9d 100644
--- a/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -28,6 +28,7 @@
 let
   basename = "streamlink-twitch-gui";
   runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+  runtimeBins = lib.makeBinPath [ streamlink ];
   arch =
     if stdenv.hostPlatform.system == "x86_64-linux"
     then
@@ -90,16 +91,23 @@ stdenv.mkDerivation rec {
   dontConfigure = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/{bin,opt/${basename},share}
 
     # Install all files, remove unnecessary ones
     cp -a . $out/opt/${basename}/
     rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/}
-
-    wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
-
     ln -s "$out/opt/${basename}/${basename}" $out/bin/
-    ln -s "${desktopItem}/share/applications" $out/share/
+    cp -r "${desktopItem}/share/applications" $out/share/
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --add-flags "--no-version-check" \
+      --prefix LD_LIBRARY_PATH : ${runtimeLibs} \
+      --prefix PATH : ${runtimeBins}
+    )
   '';
 
   desktopItem = makeDesktopItem {
@@ -115,7 +123,7 @@ stdenv.mkDerivation rec {
     description = "Twitch.tv browser for Streamlink";
     longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
     homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
-    downloadPage = https://github.com/streamlink/streamlink-twitch-gui/releases;
+    downloadPage = "https://github.com/streamlink/streamlink-twitch-gui/releases";
     license = licenses.mit;
     maintainers = with maintainers; [ rileyinman ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/nixpkgs/pkgs/applications/video/streamlink/default.nix b/nixpkgs/pkgs/applications/video/streamlink/default.nix
index fde2833c98c3..8097c5dbe92a 100644
--- a/nixpkgs/pkgs/applications/video/streamlink/default.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -7,13 +7,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "streamlink";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
     rev = version;
-    sha256 = "1323v1pavmbb2vk3djdkxd8j6i3yrcgrkyl2d7xwkb7nwlla1x1v";
+    sha256 = "sha256-lsurDFvVHn1rxR3bgG7BY512ISavpja36/UaKXauf+g=";
   };
 
   checkInputs = with python3.pkgs; [
@@ -35,9 +35,11 @@ python3.pkgs.buildPythonApplication rec {
     ffmpeg
   ];
 
-  disabledTests = [
-    "test_plugin_not_in_removed_list"
-  ];
+  # note that upstream currently uses requests 2.25.1 in Windows builds
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'requests>=2.26.0,<3.0' 'requests>=2.25.1,<3.0'
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/streamlink/streamlink";
diff --git a/nixpkgs/pkgs/applications/video/tartube/default.nix b/nixpkgs/pkgs/applications/video/tartube/default.nix
index 69f777541a46..74ce4446a195 100644
--- a/nixpkgs/pkgs/applications/video/tartube/default.nix
+++ b/nixpkgs/pkgs/applications/video/tartube/default.nix
@@ -15,13 +15,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.3.110";
+  version = "2.3.332";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "v${version}";
-    sha256 = "0sdbd2lsc4bvgkwi55arjwbzwmq05abfmv6vsrvz4gsdv8s8wha5";
+    sha256 = "1m7p4chpvbh4mswsymh89dksdgwhmnkpfbx9zi2jzqgkinfd6a2k";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/vdr/wrapper.nix b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
index 50d3b9d65a8d..04984212b249 100644
--- a/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
@@ -24,7 +24,7 @@ in symlinkJoin {
     inherit license homepage;
     description = description
     + " (with plugins: "
-    + lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
+    + lib.concatStringsSep ", " (map (x: ""+x.name) plugins)
     + ")";
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/vlc/default.nix b/nixpkgs/pkgs/applications/video/vlc/default.nix
index 6098aeba0514..46669dff5306 100644
--- a/nixpkgs/pkgs/applications/video/vlc/default.nix
+++ b/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook
+{ lib, stdenv, fetchurl, autoreconfHook, fetchpatch
 , libarchive, perl, xorg, libdvdnav, libbluray
 , zlib, a52dec, libmad, faad2, ffmpeg, alsa-lib
 , pkg-config, dbus, fribidi, freefont_ttf, libebml, libmatroska
@@ -8,6 +8,7 @@
 , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
 , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
 , libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
+, ncurses, srt
 , onlyLibVLC ? false
 , withQt5 ? true, qtbase, qtsvg, qtx11extras, wrapQtAppsHook
 , jackSupport ? false
@@ -42,7 +43,7 @@ stdenv.mkDerivation rec {
     libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
     xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
     libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
-    fluidsynth wayland wayland-protocols
+    fluidsynth wayland wayland-protocols ncurses srt
   ] ++ optional (!stdenv.hostPlatform.isAarch64) live555
     ++ optionals withQt5    [ qtbase qtsvg qtx11extras ]
     ++ optionals skins2Support (with xorg; [ libXpm freetype libXext libXinerama ])
@@ -60,6 +61,13 @@ stdenv.mkDerivation rec {
   # set the path to the compiler
   BUILDCC = "${stdenv.cc}/bin/gcc";
 
+  patches = [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/4250fe8f28c220d883db454cec2b2c76a07473eb/trunk/vlc-3.0.11.1-srt_1.4.2.patch";
+      sha256 = "53poWjZfwq/6l316sqiCp0AtcGweyXBntcLDFPSokHQ=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \
       /usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
@@ -79,6 +87,7 @@ stdenv.mkDerivation rec {
   # "--enable-foo" flags here
   configureFlags = [
     "--with-kde-solid=$out/share/apps/solid/actions"
+    "--enable-srt" # Explicit enable srt to ensure the patch is applied.
   ] ++ optional onlyLibVLC "--disable-vlc"
     ++ optional skins2Support "--enable-skins2"
     ++ optionals chromecastSupport [
diff --git a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
index 3b486654aeb9..b4f8af61fca5 100644
--- a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -63,7 +63,6 @@
       url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
       sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
     };
-    phases = [ "unpackPhase" "installPhase" ];
     nativeBuildInputs = [ dpkg ];
     installPhase = ''
       mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
diff --git a/nixpkgs/pkgs/applications/video/xplayer/default.nix b/nixpkgs/pkgs/applications/video/xplayer/default.nix
index d3f87f879c59..a4b03e91501d 100644
--- a/nixpkgs/pkgs/applications/video/xplayer/default.nix
+++ b/nixpkgs/pkgs/applications/video/xplayer/default.nix
@@ -34,13 +34,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "xplayer";
-  version = "2.4.0";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1xcv6nr2gc0vji5afwy283v7bgx46kzgrq79hl8q9pz995qq2kbp";
+    sha256 = "sha256-qoBJKY0CZyhp9foUehq5hInEENRGZuy1D6jAMjbjYhA=";
   };
 
   # configure wants to find gst-inspect-1.0 via pkgconfig but
diff --git a/nixpkgs/pkgs/applications/video/xscast/default.nix b/nixpkgs/pkgs/applications/video/xscast/default.nix
index d740efe0c9b2..f3b44bf7c6aa 100644
--- a/nixpkgs/pkgs/applications/video/xscast/default.nix
+++ b/nixpkgs/pkgs/applications/video/xscast/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/KeyboardFire/xscast";
     license = licenses.mit;
     description = "Screencasts of windows with list of keystrokes overlayed";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }