1{ lib
2, stdenv
3, fetchFromGitHub
4, ffmpeg-full
5, libaom
6, meson
7, nasm
8, ninja
9, testers
10, xxd
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "libvmaf";
15 version = "3.0.0";
16
17 src = fetchFromGitHub {
18 owner = "netflix";
19 repo = "vmaf";
20 rev = "v${finalAttrs.version}";
21 sha256 = "sha256-6mwU2so1YM2pyWkJbDHVl443GgWtQazbBv3gTMBq5NA=";
22 };
23
24 sourceRoot = "${finalAttrs.src.name}/libvmaf";
25
26 nativeBuildInputs = [ meson ninja nasm xxd ];
27
28 mesonFlags = [ "-Denable_avx512=true" ];
29
30 outputs = [ "out" "dev" ];
31 doCheck = false;
32
33 passthru.tests = {
34 inherit libaom ffmpeg-full;
35 version = testers.testVersion {
36 package = finalAttrs.finalPackage;
37 };
38 pkg-config = testers.hasPkgConfigModules {
39 package = finalAttrs.finalPackage;
40 moduleNames = [ "libvmaf" ];
41 };
42 };
43
44 meta = with lib; {
45 description = "Perceptual video quality assessment based on multi-method fusion (VMAF)";
46 homepage = "https://github.com/Netflix/vmaf";
47 changelog = "https://github.com/Netflix/vmaf/blob/v${finalAttrs.version}/CHANGELOG.md";
48 license = licenses.bsd2Patent;
49 maintainers = [ maintainers.cfsmp3 ];
50 mainProgram = "vmaf";
51 platforms = platforms.unix;
52 };
53})