diff --git a/pkgs/development/libraries/libavif/default.nix b/pkgs/development/libraries/libavif/default.nix new file mode 100644 index 000000000000..7b6d1ecfbb27 --- /dev/null +++ b/pkgs/development/libraries/libavif/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, fetchFromGitHub +, libaom +, cmake +, pkg-config +, zlib +, libpng +, libjpeg +, dav1d +}: + +stdenv.mkDerivation rec { + pname = "libavif"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "AOMediaCodec"; + repo = pname; + rev = "v${version}"; + sha256 = "1fs222cn1d60pv5fjsr92axk5dival70b6yqw0wng5ikk9zsdkhy"; + }; + + # reco: encode libaom slowest but best, decode dav1d fastest + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=ON" + "-DAVIF_CODEC_AOM=ON" + "-DAVIF_CODEC_DAV1D=ON" + "-DAVIF_BUILD_APPS=ON" + ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + libaom + zlib + libpng + libjpeg + dav1d + ]; + + meta = with stdenv.lib; { + description = "C implementation of the AV1 Image File Format"; + longDescription = '' + Libavif aims to be a friendly, portable C implementation of the + AV1 Image File Format. It is a work-in-progress, but can already + encode and decode all AOM supported YUV formats and bit depths + (with alpha). It also features an encoder and a decoder + (avifenc/avifdec). + ''; + homepage = "https://github.com/AOMediaCodec/libavif"; + changelog = "https://github.com/AOMediaCodec/libavif/blob/v${version}/CHANGELOG.md"; + maintainers = with maintainers; [ mkg20001 ]; + platforms = platforms.all; + license = licenses.bsd2; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e02d5a6fb3ec..3932caa83cec 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13324,6 +13324,8 @@ in libavc1394 = callPackage ../development/libraries/libavc1394 { }; + libavif = callPackage ../development/libraries/libavif { }; + libb2 = callPackage ../development/libraries/libb2 { }; libbacktrace = callPackage ../development/libraries/libbacktrace { };