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