From 30a7b0a70995c1661e5d05c4156f29086801efa6 Mon Sep 17 00:00:00 2001 From: Okina Matara Date: Fri, 4 Dec 2020 08:07:42 -0600 Subject: [PATCH 1/2] svt-av1: init at 0.8.6 --- pkgs/tools/video/svt-av1/default.nix | 24 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/tools/video/svt-av1/default.nix diff --git a/pkgs/tools/video/svt-av1/default.nix b/pkgs/tools/video/svt-av1/default.nix new file mode 100644 index 00000000000..c3d2de311b1 --- /dev/null +++ b/pkgs/tools/video/svt-av1/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake, nasm }: + +stdenv.mkDerivation rec { + pname = "svt-av1"; + version = "0.8.6"; + + src = fetchFromGitHub { + owner = "AOMediaCodec"; + repo = "SVT-AV1"; + rev = "v${version}"; + sha256 = "1wzamg89azi1f93wxvdy7silsgklckc754ca066k33drvyacicyw"; + }; + + nativeBuildInputs = [ cmake nasm ]; + + meta = with stdenv.lib; { + description = "AV1-compliant encoder/decoder library core"; + homepage = "https://github.com/AOMediaCodec/SVT-AV1"; + license = licenses.bsd2; + platforms = platforms.unix; + broken = stdenv.isAarch64; # undefined reference to `cpuinfo_arm_linux_init' + maintainers = with maintainers; [ chiiruno ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f979f56083f..f3a20eb292b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2672,6 +2672,8 @@ in syslogng_incubator = callPackage ../tools/system/syslog-ng-incubator { }; + svt-av1 = callPackage ../tools/video/svt-av1 { }; + inherit (callPackages ../servers/rainloop { }) rainloop-community rainloop-standard; From c378a337059925cb0020068bdbd1052342b4533b Mon Sep 17 00:00:00 2001 From: Okina Matara Date: Fri, 4 Dec 2020 08:07:56 -0600 Subject: [PATCH 2/2] ffmpeg-full: enable svt-av1 --- pkgs/development/libraries/ffmpeg-full/default.nix | 9 ++++++++- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix index a2f5e366e00..f428290e803 100644 --- a/pkgs/development/libraries/ffmpeg-full/default.nix +++ b/pkgs/development/libraries/ffmpeg-full/default.nix @@ -111,6 +111,7 @@ , opensslExtlib ? false, openssl ? null , libpulseaudio ? null # Pulseaudio input support , rav1e ? null # AV1 encoder (focused on speed and safety) +, svt-av1 ? null # AV1 encoder/decoder (focused on speed and correctness) , rtmpdump ? null # RTMP[E] support #, libquvi ? null # Quvi input support , samba ? null # Samba protocol @@ -250,6 +251,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-dqpmpDFETTuWHWolMoLaubU4BeDEuQaBNA0wmzL1f8o="; name = "fix_libsrt.patch"; }) + # Patch ffmpeg for svt-av1 until version 4.4 + (fetchpatch { + url = "https://raw.githubusercontent.com/AOMediaCodec/SVT-AV1/v0.8.4/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1.patch"; + sha256 = "1p4g8skr5gjw5h1648j7qrks81zx49lrnx9g0p81qgnrvxc2wwx0"; + }) ]; prePatch = '' @@ -393,6 +399,7 @@ stdenv.mkDerivation rec { (enableFeature (libpulseaudio != null) "libpulse") #(enableFeature quvi "libquvi") (enableFeature (rav1e != null) "librav1e") + (enableFeature (svt-av1 != null) "libsvtav1") (enableFeature (rtmpdump != null) "librtmp") #(enableFeature (schroedinger != null) "libschroedinger") (enableFeature (SDL2 != null) "sdl2") @@ -429,7 +436,7 @@ stdenv.mkDerivation rec { bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11 - libxcb libXv libXext lzma openal openjpeg libpulseaudio rav1e rtmpdump opencore-amr + libxcb libXv libXext lzma openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr samba SDL2 soxr speex srt vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore zeromq4 zlib ] ++ optionals openglExtlib [ libGL libGLU ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f3a20eb292b..f008ac7b102 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13040,6 +13040,7 @@ in ffmpeg = ffmpeg_4; ffmpeg-full = callPackage ../development/libraries/ffmpeg-full { + svt-av1 = if stdenv.isAarch64 then null else svt-av1; # The following need to be fixed on Darwin libjack2 = if stdenv.isDarwin then null else libjack2; libmodplug = if stdenv.isDarwin then null else libmodplug;