Merge pull request #70797 from cfsmp3/master

Added libvmaf + support for it in ffmpeg-full
This commit is contained in:
Mario Rodas 2019-10-25 09:11:42 -05:00 committed by GitHub
commit 77a5bf5bfb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 1 deletions

View file

@ -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";

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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 { };