diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 58aa51f66ed..613de13b3db 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1142,6 +1142,12 @@ githubId = 5771456; name = "Chaddaï Fouché"; }; + cfsmp3 = { + email = "carlos@sanz.dev"; + github = "cfsmp3"; + githubId = 5949913; + name = "Carlos Fernandez Sanz"; + }; chaduffy = { email = "charles@dyfis.net"; github = "charles-dyfis-net"; diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix index 78d291e86fa..9ab112dac12 100644 --- a/pkgs/development/libraries/ffmpeg-full/default.nix +++ b/pkgs/development/libraries/ffmpeg-full/default.nix @@ -3,7 +3,7 @@ * Licensing options (yes some are listed twice, filters and such are not listed) */ , gplLicensing ? true # GPL: fdkaac,openssl,frei0r,cdio,samba,utvideo,vidstab,x265,x265,xavs,avid,zvbi,x11grab -, version3Licensing ? true # (L)GPL3: opencore-amrnb,opencore-amrwb,samba,vo-aacenc,vo-amrwbenc +, version3Licensing ? true # (L)GPL3: libvmaf,opencore-amrnb,opencore-amrwb,samba,vo-aacenc,vo-amrwbenc , nonfreeLicensing ? false # NONFREE: openssl,fdkaac,blackmagic-design-desktop-video /* * Build options @@ -87,6 +87,7 @@ , libv4l ? null # Video 4 Linux support , libva ? null # Vaapi hardware acceleration , libvdpau ? null # Vdpau hardware acceleration +, libvmaf ? null # Netflix's VMAF (Video Multi-Method Assessment Fusion) , libvorbis ? null # Vorbis de/encoding, native encoder exists , libvpx ? null # VP8 & VP9 de/encoding , libwebp ? null # WebP encoder @@ -364,6 +365,7 @@ stdenv.mkDerivation rec { (enableFeature ((isLinux || isFreeBSD) && libva != null) "vaapi") (enableFeature (libvdpau != null) "vdpau") (enableFeature (libvorbis != null) "libvorbis") + (enableFeature (!isAarch64 && libvmaf != null && version3Licensing) "libvmaf") (enableFeature (libvpx != null) "libvpx") (enableFeature (libwebp != null) "libwebp") (enableFeature (libX11 != null && libXv != null && libXext != null) "xlib") @@ -425,6 +427,7 @@ stdenv.mkDerivation rec { ] ++ optional openglExtlib libGLU_combined ++ optionals nonfreeLicensing [ fdk_aac openssl ] ++ optional ((isLinux || isFreeBSD) && libva != null) libva + ++ optional (!isAarch64 && libvmaf != null && version3Licensing) libvmaf ++ optionals isLinux [ alsaLib libraw1394 libv4l ] ++ optional (isLinux && !isAarch64 && libmfx != null) libmfx ++ optional nvenc nv-codec-headers diff --git a/pkgs/development/libraries/libvmaf/default.nix b/pkgs/development/libraries/libvmaf/default.nix new file mode 100644 index 00000000000..82c76f7ea37 --- /dev/null +++ b/pkgs/development/libraries/libvmaf/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, autoconf, automake, intltool, libtool, pkgconfig }: + +stdenv.mkDerivation rec { + pname = "libvmaf"; + version = "1.3.15"; + + src = fetchFromGitHub { + owner = "netflix"; + repo = "vmaf"; + rev = "v${version}"; + sha256="10kgcdf06hzhbl5r7zsllq88bxbyn282hfqx5i3hkp66fpq896d2"; + }; + + nativeBuildInputs = [ autoconf automake intltool libtool pkgconfig ]; + outputs = [ "out" "dev" ]; + doCheck = true; + + postFixup = '' + substituteInPlace "$dev/lib/pkgconfig/libvmaf.pc" \ + --replace "includedir=/usr/local/include" "includedir=$dev" + ''; + + makeFlags = [ "INSTALL_PREFIX=${placeholder "out"}" ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/Netflix/vmaf"; + description = "Perceptual video quality assessment based on multi-method fusion (VMAF)"; + platforms = platforms.linux; + license = licenses.asl20; + maintainers = [ maintainers.cfsmp3 ]; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5eece840e3a..9cb9e66a817 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10880,6 +10880,7 @@ in frei0r = if stdenv.isDarwin then null else frei0r; game-music-emu = if stdenv.isDarwin then null else game-music-emu; libjack2 = if stdenv.isDarwin then null else libjack2; + libvmaf = if stdenv.isDarwin then null else libvmaf; libmodplug = if stdenv.isDarwin then null else libmodplug; openal = if stdenv.isDarwin then null else openal; libmfx = if stdenv.isDarwin then null else intel-media-sdk; @@ -12645,6 +12646,8 @@ in libvisual = callPackage ../development/libraries/libvisual { }; + libvmaf = callPackage ../development/libraries/libvmaf { }; + libvncserver = callPackage ../development/libraries/libvncserver {}; libviper = callPackage ../development/libraries/libviper { };