linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / libavif / default.nix
blob173422fa71e0b41d6ff282899b4c6c0a8049dde6
1 { lib, stdenv
2 , fetchFromGitHub
3 , libaom
4 , cmake
5 , pkg-config
6 , zlib
7 , libpng
8 , libjpeg
9 , dav1d
12 stdenv.mkDerivation rec {
13   pname = "libavif";
14   version = "0.9.0";
16   src = fetchFromGitHub {
17     owner = "AOMediaCodec";
18     repo = pname;
19     rev = "v${version}";
20     sha256 = "sha256-7p0w94Od33vjTI5wGLxmDC5P2hebAl7OwJPl1lANhKs=";
21   };
23   # reco: encode libaom slowest but best, decode dav1d fastest
25   cmakeFlags = [
26     "-DBUILD_SHARED_LIBS=ON"
27     "-DAVIF_CODEC_AOM=ON" # best encoder (slow but small)
28     "-DAVIF_CODEC_DAV1D=ON" # best decoder (fast)
29     "-DAVIF_CODEC_AOM_DECODE=OFF"
30     "-DAVIF_BUILD_APPS=ON"
31   ];
33   nativeBuildInputs = [
34     cmake
35     pkg-config
36   ];
38   buildInputs = [
39     libaom
40     zlib
41     libpng
42     libjpeg
43     dav1d
44   ];
46   meta = with lib; {
47     description  = "C implementation of the AV1 Image File Format";
48     longDescription = ''
49       Libavif aims to be a friendly, portable C implementation of the
50       AV1 Image File Format. It is a work-in-progress, but can already
51       encode and decode all AOM supported YUV formats and bit depths
52       (with alpha). It also features an encoder and a decoder
53       (avifenc/avifdec).
54     '';
55     homepage    = "https://github.com/AOMediaCodec/libavif";
56     changelog   = "https://github.com/AOMediaCodec/libavif/blob/v${version}/CHANGELOG.md";
57     maintainers = with maintainers; [ mkg20001 ];
58     platforms   = platforms.all;
59     license     = licenses.bsd2;
60   };