aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/video
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/tools/video
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/video')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/atomicparsley/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/bento4/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/bento4/libap4.patch5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/dvgrab/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/flvtool2/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/gopro/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/mjpegtools/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/rav1e/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/rtmpdump/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/swfmill/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/swftools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/swftools/swftools.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/untrunc/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/vcsi/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/vnc2flv/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/vncrec/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/video/yamdi/default.nix31
18 files changed, 559 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/atomicparsley/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/atomicparsley/default.nix
new file mode 100644
index 000000000000..9a19a6789e57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/atomicparsley/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchhg, autoreconfHook, zlib, Cocoa }:
+
+stdenv.mkDerivation {
+ pname = "atomicparsley";
+ version = "0.9.6";
+
+ src = fetchhg {
+ url = "https://bitbucket.org/wez/atomicparsley";
+ sha256 = "05n4kbn91ps52h3wi1qb2jwygjsc01qzx4lgkv5mvwl5i49rj8fm";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ zlib ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
+
+ configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ # AC_FUNC_MALLOC is broken on cross builds.
+ "ac_cv_func_malloc_0_nonnull=yes"
+ "ac_cv_func_realloc_0_nonnull=yes"
+ ];
+
+ installPhase = "install -D AtomicParsley $out/bin/AtomicParsley";
+
+ meta = with stdenv.lib; {
+ description = ''
+ A lightweight command line program for reading, parsing and
+ setting metadata into MPEG-4 files
+ '';
+
+ longDescription = ''
+ This is a maintained fork of the original AtomicParsley.
+ '';
+
+ homepage = "https://bitbucket.org/wez/atomicparsley";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ pjones ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/default.nix
new file mode 100644
index 000000000000..94a1a5d04f32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, cmake
+}:
+stdenv.mkDerivation rec {
+ pname = "bento4";
+ version = "1.5.1-629";
+
+ src = fetchFromGitHub {
+ owner = "axiomatic-systems";
+ repo = "Bento4";
+ rev = "v${version}";
+ sha256 = "1614idy0r7qrkiaq4kz3gh1b1bpx592aqvi574kxnjrxc34kpmb3";
+ };
+
+ patches = [ ./libap4.patch ];
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+
+ installPhase = ''
+ mkdir -p $out/{lib,bin}
+ find -iname '*.so' -exec mv --target-directory="$out/lib" {} \;
+ find -maxdepth 1 -executable -type f -exec mv --target-directory="$out/bin" {} \;
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Full-featured MP4 format and MPEG DASH library and tools";
+ homepage = "http://bento4.com";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ makefu ];
+ broken = stdenv.isAarch64;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/libap4.patch b/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/libap4.patch
new file mode 100644
index 000000000000..ca2936003b84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/bento4/libap4.patch
@@ -0,0 +1,5 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36 +36 @@ endif()
+-add_library(ap4 STATIC ${AP4_SOURCES})
++add_library(ap4 ${AP4_SOURCES})
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/dvgrab/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/dvgrab/default.nix
new file mode 100644
index 000000000000..9077d34614df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/dvgrab/default.nix
@@ -0,0 +1,39 @@
+{ fetchFromGitHub, stdenv, libunwind, libraw1394, libjpeg, libiec61883, libdv
+, libavc1394, pkgconfig, autoreconfHook }:
+
+stdenv.mkDerivation {
+ name = "dvgrab-2016-05-16";
+
+ src = fetchFromGitHub {
+ # mirror of original project with some build fixes
+ owner = "ddennedy";
+ repo = "dvgrab";
+ rev = "e46042e0c7b3523b6854ee547b0534e8310b7460";
+ sha256 = "17qy76fjpzrbxm4pj0ljx5lbimxryv24fvr13jwkh24j85dxailn";
+ };
+
+ buildInputs = [
+ libunwind libraw1394 libjpeg libiec61883 libdv libavc1394
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Receive and store audio & video over IEEE1394";
+
+ longDescription = ''
+ dvgrab receives audio and video data from a digital camcorder via an
+ IEEE1394 (widely known as FireWire) or USB link and stores them into
+ one of several file formats. It features autosplit of long video
+ sequences, and supports saving the data as raw frames, AVI type 1,
+ AVI type 2, Quicktime DV, a series of JPEG stills or MPEG2-TS.
+ '';
+
+ homepage = "http://kinodv.org/";
+
+ license = licenses.gpl2Plus;
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/flvtool2/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/flvtool2/default.nix
new file mode 100644
index 000000000000..9a1f9f121031
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/flvtool2/default.nix
@@ -0,0 +1,17 @@
+{ lib, buildRubyGem, ruby }:
+
+buildRubyGem rec {
+ inherit ruby;
+ name = "${gemName}-${version}";
+ gemName = "flvtool2";
+ version = "1.0.6";
+ source.sha256 = "0xsla1061pi4ryh3jbvwsbs8qchprchbqjy7652g2g64v37i74qj";
+
+ meta = {
+ broken = true; # depends on ruby 2.2
+ homepage = "https://github.com/unnu/flvtool2";
+ description = "A tool to manipulate Macromedia Flash Video files";
+ platforms = ruby.meta.platforms;
+ license = lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/gopro/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/gopro/default.nix
new file mode 100644
index 000000000000..9979b224868a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/gopro/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, ffmpeg_3
+, imagemagick
+, makeWrapper
+, mplayer
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gopro";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "KonradIT";
+ repo = "gopro-linux";
+ rev = version;
+ sha256 = "0sb9vpiadrq8g4ag828h8mvq01fg0306j0wjwkxdmwfqync1128l";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 gopro -t $out/bin
+ wrapProgram $out/bin/gopro \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ ffmpeg_3 imagemagick mplayer ]}"
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command line interface for processing media filmed on GoPro HERO 3, 4, 5, 6, and 7 cameras";
+ homepage = "https://github.com/KonradIT/gopro-linux";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jonringer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/mjpegtools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/mjpegtools/default.nix
new file mode 100644
index 000000000000..6c74aab95731
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/mjpegtools/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchurl, gtk2, libdv, libjpeg, libpng, libX11, pkgconfig, SDL, SDL_gfx
+, withMinimal ? true
+}:
+
+# TODO:
+# - make dependencies optional
+# - libpng-apng as alternative to libpng?
+# - libXxf86dga support? checking for XF86DGAQueryExtension in -lXxf86dga... no
+
+stdenv.mkDerivation rec {
+ name = "mjpegtools-2.1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mjpeg/${name}.tar.gz";
+ sha256 = "01y4xpfdvd4zgv6fmcjny9mr1gbfd4y2i4adp657ydw6fqyi8kw6";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libdv libjpeg libpng ]
+ ++ lib.optionals (!withMinimal) [ gtk2 libX11 SDL SDL_gfx ];
+
+ NIX_CFLAGS_COMPILE = lib.optionalString (!withMinimal) "-I${SDL.dev}/include/SDL";
+
+ postPatch = ''
+ sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
+ '';
+
+ enableParallelBuilding = true;
+
+ outputs = [ "out" "lib" ];
+
+ meta = with stdenv.lib; {
+ description = "A suite of programs for processing MPEG or MJPEG video";
+ homepage = "http://mjpeg.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/rav1e/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/rav1e/default.nix
new file mode 100644
index 000000000000..ae7a45b562d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/rav1e/default.nix
@@ -0,0 +1,39 @@
+{ rustPlatform, fetchFromGitHub, lib, nasm, cargo-c }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rav1e";
+ version = "0.3.4";
+
+ src = fetchFromGitHub {
+ owner = "xiph";
+ repo = "rav1e";
+ rev = "v${version}";
+ sha256 = "0zwjg0sv504i1ahzfy2jgng6qwmyvcrvdrp4n3s90r4kvwjkv8xs";
+ };
+
+ cargoSha256 = "1mfzshcbxky27nskxhcyrj99wd3v5f597ymgv7nb67lzp5lsyb24";
+
+ nativeBuildInputs = [ nasm cargo-c ];
+
+ postBuild = ''
+ cargo cbuild --release --frozen --prefix=${placeholder "out"}
+ '';
+
+ postInstall = ''
+ cargo cinstall --release --frozen --prefix=${placeholder "out"}
+ '';
+
+ meta = with lib; {
+ description = "The fastest and safest AV1 encoder";
+ longDescription = ''
+ rav1e is an AV1 video encoder. It is designed to eventually cover all use
+ cases, though in its current form it is most suitable for cases where
+ libaom (the reference encoder) is too slow.
+ Features: https://github.com/xiph/rav1e#features
+ '';
+ inherit (src.meta) homepage;
+ changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/rtmpdump/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/rtmpdump/default.nix
new file mode 100644
index 000000000000..06c035552e54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/rtmpdump/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchgit, fetchpatch, zlib
+, gnutlsSupport ? false, gnutls ? null, nettle ? null
+, opensslSupport ? true, openssl ? null
+}:
+
+# Must have an ssl library enabled
+assert (gnutlsSupport || opensslSupport);
+assert gnutlsSupport -> gnutlsSupport != null && nettle != null && !opensslSupport;
+assert opensslSupport -> openssl != null && !gnutlsSupport;
+
+with stdenv.lib;
+stdenv.mkDerivation {
+ pname = "rtmpdump";
+ version = "2019-03-30";
+
+ src = fetchgit {
+ url = "git://git.ffmpeg.org/rtmpdump";
+ # Currently the latest commit is used (a release has not been made since 2011, i.e. '2.4')
+ rev = "c5f04a58fc2aeea6296ca7c44ee4734c18401aa3";
+ sha256 = "07ias612jgmxpam9h418kvlag32da914jsnjsfyafklpnh8gdzjb";
+ };
+
+ patches = [
+ # Fix build with OpenSSL 1.1
+ (fetchpatch {
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-video/rtmpdump/files/rtmpdump-openssl-1.1.patch?id=1e7bef484f96e7647f5f0911d3c8caa48131c33b";
+ sha256 = "1wds98pk8qr7shkfl8k49iirxiwd972h18w84bamiqln29wv6ql1";
+ })
+ ];
+
+ makeFlags = [ ''prefix=$(out)'' ]
+ ++ optional gnutlsSupport "CRYPTO=GNUTLS"
+ ++ optional opensslSupport "CRYPTO=OPENSSL"
+ ++ optional stdenv.isDarwin "SYS=darwin"
+ ++ optional stdenv.cc.isClang "CC=clang";
+
+ propagatedBuildInputs = [ zlib ]
+ ++ optionals gnutlsSupport [ gnutls nettle ]
+ ++ optional opensslSupport openssl;
+
+ outputs = [ "out" "dev" ];
+
+ separateDebugInfo = true;
+
+ meta = {
+ description = "Toolkit for RTMP streams";
+ homepage = "http://rtmpdump.mplayerhq.hu/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ codyopel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/swfmill/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/swfmill/default.nix
new file mode 100644
index 000000000000..b675c1a57c2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/swfmill/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl
+, pkgconfig, libxslt, freetype, libpng, libxml2
+}:
+
+stdenv.mkDerivation rec {
+ name = "swfmill-0.3.3";
+
+ src = fetchurl {
+ url = "http://swfmill.org/releases/${name}.tar.gz";
+ sha256 = "15mcpql448vvgsbxs7wd0vdk1ln6rdcpnif6i2zjm5l4xng55s7r";
+ };
+
+ # Fixes build with GCC 6
+ NIX_CFLAGS_COMPILE = "-std=c++03";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libxslt freetype libpng libxml2 ];
+
+ meta = {
+ description = "An xml2swf and swf2xml processor with import functionalities";
+ homepage = "http://swfmill.org";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/default.nix
new file mode 100644
index 000000000000..a37f58937b81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, freetype, libjpeg, libungif, zlib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "swftools";
+ version = "0.9.2";
+
+ src = fetchurl {
+ url = "http://www.swftools.org/${pname}-${version}.tar.gz";
+ sha256 = "1w81dyi81019a6jmnm5z7fzarswng27lg1d4k4d5llxzqszr2s5z";
+ };
+
+ patches = [ ./swftools.patch ];
+
+ buildInputs = [ freetype libjpeg libungif zlib ];
+
+ meta = {
+ description = "Collection of SWF manipulation and creation utilities";
+ homepage = "http://www.swftools.org/about.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.koral ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/swftools.patch b/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/swftools.patch
new file mode 100644
index 000000000000..c7eb89f9b3e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/swftools/swftools.patch
@@ -0,0 +1,17 @@
+--- a/swfs/Makefile.in.orig
++++ b/swfs/Makefile.in
+@@ -41,10 +41,10 @@ install:
+ $(INSTALL_DATA) ./PreLoaderTemplate.swf $(pkgdatadir)/swfs/PreLoaderTemplate.swf
+ $(INSTALL_DATA) ./tessel_loader.swf $(pkgdatadir)/swfs/tessel_loader.swf
+ $(INSTALL_DATA) ./swft_loader.swf $(pkgdatadir)/swfs/swft_loader.swf
+- rm -f $(pkgdatadir)/swfs/default_viewer.swf -o -L $(pkgdatadir)/swfs/default_viewer.swf
+- $(LN_S) $(pkgdatadir)/swfs/simple_viewer.swf $(pkgdatadir)/swfs/default_viewer.swf
+- rm -f $(pkgdatadir)/swfs/default_loader.swf -o -L $(pkgdatadir)/swfs/default_loader.swf
+- $(LN_S) $(pkgdatadir)/swfs/tessel_loader.swf $(pkgdatadir)/swfs/default_loader.swf
++ rm -f $(pkgdatadir)/swfs/default_viewer.swf # -o -L $(pkgdatadir)/swfs/default_viewer.swf
++ $(LN_S) $(pkgdatadir)/swfs/simple_viewer.swf $(pkgdatadir)/swfs/default_viewer.swf
++ rm -f $(pkgdatadir)/swfs/default_loader.swf # -o -L $(pkgdatadir)/swfs/default_loader.swf
++ $(LN_S) $(pkgdatadir)/swfs/tessel_loader.swf $(pkgdatadir)/swfs/default_loader.swf
+
+ uninstall:
+ $(UNINSTALL_DATA) $(pkgdatadir)/swfs/simple_viewer.swf
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix
new file mode 100644
index 000000000000..126952850936
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ffmpeg, libui }:
+
+stdenv.mkDerivation {
+ pname = "untrunc-anthwlock";
+ version = "2020.07.18";
+
+ src = fetchFromGitHub {
+ owner = "anthwlock";
+ repo = "untrunc";
+ rev = "a0bf2e8642ecdb7af5897ed9b0dd30a7d03520ae";
+ sha256 = "14i2lq68q990hnm2kkfamlsi67bcml85zl8yjsyxc5h8ncc2f3dp";
+ };
+
+
+ buildInputs = [ ffmpeg libui ];
+
+ postBuild = ''
+ make untrunc-gui
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -D -t $out/bin untrunc untrunc-gui
+ runHook postInstall
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Restore a truncated mp4/mov (improved version of ponchio/untrunc)";
+ homepage = "https://github.com/anthwlock/untrunc";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc/default.nix
new file mode 100644
index 000000000000..1918f4e59745
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/untrunc/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, gcc, libav_12, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "untrunc";
+ version = "2020.02.09";
+
+ src = fetchFromGitHub {
+ owner = "ponchio";
+ repo = "untrunc";
+ rev = "4eed44283168c727ace839ff7590092fda2e0848";
+ sha256 = "0nfj67drc6bxqlkf8a1iazqhi0w38a7rjrb2bpa74gwq6xzygvbr";
+ };
+
+ buildInputs = [ gcc libav_12 ];
+
+ # Untrunc uses the internal libav headers 'h264dec.h' and 'config.h'.
+ # The latter must be created through 'configure'.
+ libavConfiguredSrc = libav_12.overrideAttrs (oldAttrs: {
+ name = "libav-configured-src";
+ outputs = [ "out" ];
+ phases = [ "unpackPhase" "patchPhase" "configurePhase" "installPhase" ];
+ installPhase = "cp -r . $out";
+ });
+
+ buildCommand = ''
+ mkdir -p $out/bin
+ g++ -o $out/bin/untrunc \
+ -Wno-deprecated-declarations \
+ $src/file.cpp $src/main.cpp $src/track.cpp $src/atom.cpp $src/mp4.cpp \
+ -I$libavConfiguredSrc -lavformat -lavcodec -lavutil
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Restore a damaged (truncated) mp4, m4v, mov, 3gp video from a similar, undamaged video";
+ license = licenses.gpl2;
+ homepage = "https://github.com/ponchio/untrunc";
+ maintainers = [ maintainers.earvstedt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/vcsi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/vcsi/default.nix
new file mode 100644
index 000000000000..84e6c2e6d41d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/vcsi/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, ffmpeg }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "vcsi";
+ version = "7.0.12";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ numpy
+ pillow
+ jinja2
+ texttable
+ parsedatetime
+ ];
+
+ makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
+
+ meta = with lib; {
+ description = "Create video contact sheets";
+ homepage = "https://github.com/amietn/vcsi";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dandellion ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/vnc2flv/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/vnc2flv/default.nix
new file mode 100644
index 000000000000..ed2d872b874c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/vnc2flv/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "vnc2flv";
+ version = "20100207";
+
+ src = fetchurl {
+ url = "mirror://pypi/v/vnc2flv/${pname}-${version}.tar.gz";
+ sha256 = "14d4nm8yim0bm0nd3wyj7z4zdsg5zk3d9bhhvwdc36x03r8d0sbq";
+ };
+
+ # error: invalid command 'test'
+ doCheck = false;
+
+ meta = {
+ description = "Tool to record VNC sessions to Flash Video";
+ homepage = "http://www.unixuser.org/~euske/python/vnc2flv/";
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/vncrec/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/vncrec/default.nix
new file mode 100644
index 000000000000..98b644a633c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/vncrec/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, libX11, xorgproto, imake, gccmakedep, libXt, libXmu
+, libXaw, libXext, libSM, libICE, libXpm, libXp
+}:
+
+stdenv.mkDerivation {
+ name = "vncrec-0.2"; # version taken from Arch AUR
+
+ src = fetchurl {
+ url = "http://ronja.twibright.com/utils/vncrec-twibright.tgz";
+ sha256 = "1yp6r55fqpdhc8cgrgh9i0mzxmkls16pgf8vfcpng1axr7cigyhc";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ imake gccmakedep ];
+ buildInputs = [
+ libX11 xorgproto libXt libXmu libXaw
+ libXext libSM libICE libXpm libXp
+ ];
+
+ makeFlags = [
+ "BINDIR=${placeholder "out"}/bin"
+ "MANDIR=${placeholder "out"}/share/man"
+ ];
+ installTargets = [ "install" "install.man" ];
+
+ meta = {
+ description = "VNC recorder";
+ homepage = "http://ronja.twibright.com/utils/vncrec/";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/video/yamdi/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/video/yamdi/default.nix
new file mode 100644
index 000000000000..28861887ed2a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/video/yamdi/default.nix
@@ -0,0 +1,31 @@
+{
+ stdenv,
+ fetchurl,
+}:
+
+stdenv.mkDerivation rec {
+ pname = "yamdi";
+ version = "1.9";
+
+ # Source repo is also available here:
+ # https://github.com/ioppermann/yamdi
+ src = fetchurl {
+ url = "mirror://sourceforge/yamdi/yamdi-${version}.tar.gz";
+ sha256 = "4a6630f27f6c22bcd95982bf3357747d19f40bd98297a569e9c77468b756f715";
+ };
+
+ buildFlags = [ "CC=cc" ];
+
+ installPhase = ''
+ install -D {,$out/bin/}yamdi
+ install -D {,$out/share/man/}man1/yamdi.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Yet Another MetaData Injector for FLV";
+ homepage = "http://yamdi.sourceforge.net/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.ryanartecona ];
+ };
+}