diff options
Diffstat (limited to 'media-libs/libheif')
-rw-r--r-- | media-libs/libheif/Manifest | 4 | ||||
-rw-r--r-- | media-libs/libheif/files/libheif-1.12.0-dav1d-1.0.0.patch | 45 | ||||
-rw-r--r-- | media-libs/libheif/libheif-1.12.0-r2.ebuild | 77 | ||||
-rw-r--r-- | media-libs/libheif/libheif-9999.ebuild | 6 |
4 files changed, 128 insertions, 4 deletions
diff --git a/media-libs/libheif/Manifest b/media-libs/libheif/Manifest index 7cb371975ecc..572079cd4a87 100644 --- a/media-libs/libheif/Manifest +++ b/media-libs/libheif/Manifest @@ -1,4 +1,6 @@ +AUX libheif-1.12.0-dav1d-1.0.0.patch 1569 BLAKE2B 1cd1629a3d519ef574a5b98ce5cfc5b8f074847b5d4fc6544fdeab3476c35b764739c98fda9a8d0a4f4921fd25412b08e124118f07694fe540b04f306716f6c2 SHA512 62a1afe3f42d1a61b3c314aaae9804dbd436f141075fa4daac415db07a1542c1033dd42cef6906b29ea0f072726888f5ef5f9b7c13c6ec8dca57b6e2bfdfd119 DIST libheif-1.12.0.tar.gz 1684355 BLAKE2B 6d84678b39476f2d797d586c6dcaabc9a82351fe3bad536cd90edab16dabf91cbdcdb291195ff45061c7b0ad164748c53f87cbb2dc1e318b2cd458fcba74f644 SHA512 9e6f74dd52841a33b6021a1581ab28c56123d927caa7972acd284444e90888bbdae983b6d847d20eac7651dacea2193d27eb8df45928cb0774229ef8eea23294 EBUILD libheif-1.12.0-r1.ebuild 1798 BLAKE2B 737d57dde4f9a3a0566c0a91b1d6ec0c167dc6bb59c16b3acb9ffa28135eac395328b41418381ac2e22999852d1182580845d2227b9fa8e2c0e13bd4eff42e63 SHA512 112f937a560ef0e3dd666c7e4c7e0e973738fd31942cfd52e3c5f27b1e4aa4c3305e4a0d9ee66d6a24f3a02d47a895f511684688fdbed88ad709ff1be783309a -EBUILD libheif-9999.ebuild 1803 BLAKE2B 28cd644e40633597b07806b39f19cfdc8251132f99d5687337f68e4cbfadf578f4cee9aa198888a610c1df515e9824ada89b36a326cc6211ea30a704fb7fa7f3 SHA512 8e5af8dd952faf2bd431631ffae82faeb7adfa4cdd369741a1f031cbb12676dbead9157fbaeb16bc365da4034ab82deac627e9cfd4bbfd2e9b098a996d8ebd8a +EBUILD libheif-1.12.0-r2.ebuild 1866 BLAKE2B 3908454dcb15f492e1e29282b147679f0512bdafdb0f5467cc706210dd24507afe732edcc349a9f46315d46bfb5d0c75f260e92fa90c516ca06404771c48ac57 SHA512 f19da664d0a2f22b7fe59de90fb741e2ae98bb7d5e124d0d8bc76bce7438071c6c1cbb68647a8a7c061e3ddb6c1c6aa6380b4f76db64b35e6942d1cdde119f8f +EBUILD libheif-9999.ebuild 1815 BLAKE2B 694addf8cd1ccd79432b8f9ed2ec87184242ea16daebc190e66fbeb9437cfe3d1ca657f6229e9581285f9805e2b0eca4dfe4e046b8e23ff50428f9c3d7fc7d4b SHA512 509b7de549b17ff8032143d42a8e0d68b30e0ba7477871bff239c5d704061f5cb641d6a7b4cb3686c32f88f8b064dba6e579b7c998f8f47d14985046265bc437 MISC metadata.xml 805 BLAKE2B 99457c3561cc5ad915c5503f96e52b6261981157de467073ac7a8ece68af3798b9db516b40b7db9e0bd92388b083898926d877fb3bbc8fd1701b280bfd4baa09 SHA512 e5461f86bd18b9878a0e4857fc25ad7554e4095b8b71b2a8de2334b49b7d6c62ccbc2d6bc31e016e65ba3c8bd3a872b5f00b2c2bf39e1d04306124bfedb8486f diff --git a/media-libs/libheif/files/libheif-1.12.0-dav1d-1.0.0.patch b/media-libs/libheif/files/libheif-1.12.0-dav1d-1.0.0.patch new file mode 100644 index 000000000000..d8eb0a54016b --- /dev/null +++ b/media-libs/libheif/files/libheif-1.12.0-dav1d-1.0.0.patch @@ -0,0 +1,45 @@ +https://bugs.gentoo.org/836205 +https://github.com/strukturag/libheif/commit/0f8496f22d284e1a69df12fe0b72f375aed31315 + +From 0f8496f22d284e1a69df12fe0b72f375aed31315 Mon Sep 17 00:00:00 2001 +From: Dirk Farin <dirk.farin@gmail.com> +Date: Tue, 5 Apr 2022 12:17:59 +0200 +Subject: [PATCH] fix dav1d decoding: input stream must be flushed with dav1d + 1.0.0 + +--- + libheif/heif_decoder_dav1d.cc | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/libheif/heif_decoder_dav1d.cc b/libheif/heif_decoder_dav1d.cc +index a6c42e4f..ecf7382e 100644 +--- a/libheif/heif_decoder_dav1d.cc ++++ b/libheif/heif_decoder_dav1d.cc +@@ -163,7 +163,10 @@ struct heif_error dav1d_decode_image(void* decoder_raw, struct heif_image** out_ + Dav1dPicture frame; + memset(&frame, 0, sizeof(Dav1dPicture)); + ++ bool flushed = false; ++ + for (;;) { ++ + int res = dav1d_send_data(decoder->context, &decoder->data); + if ((res < 0) && (res != DAV1D_ERR(EAGAIN))) { + err = {heif_error_Decoder_plugin_error, +@@ -173,11 +176,11 @@ struct heif_error dav1d_decode_image(void* decoder_raw, struct heif_image** out_ + } + + res = dav1d_get_picture(decoder->context, &frame); +- if (res == DAV1D_ERR(EAGAIN)) { +- err = {heif_error_Decoder_plugin_error, +- heif_suberror_Unspecified, +- kEmptyString}; +- return err; ++ if (!flushed && res == DAV1D_ERR(EAGAIN)) { ++ if (decoder->data.sz == 0) { ++ flushed = true; ++ } ++ continue; + } + else if (res < 0) { + err = {heif_error_Decoder_plugin_error, diff --git a/media-libs/libheif/libheif-1.12.0-r2.ebuild b/media-libs/libheif/libheif-1.12.0-r2.ebuild new file mode 100644 index 000000000000..663b509679e8 --- /dev/null +++ b/media-libs/libheif/libheif-1.12.0-r2.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools xdg multilib-minimal + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/strukturag/libheif.git" + inherit git-r3 +else + SRC_URI="https://github.com/strukturag/libheif/releases/download/v${PV}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="ISO/IEC 23008-12:2017 HEIF file format decoder and encoder" +HOMEPAGE="https://github.com/strukturag/libheif" + +LICENSE="GPL-3" +SLOT="0/1.12" +IUSE="+aom gdk-pixbuf go rav1e test +threads x265" +REQUIRED_USE="test? ( go )" +RESTRICT="!test? ( test )" + +BDEPEND="test? ( dev-lang/go )" +DEPEND=" + media-libs/dav1d:=[${MULTILIB_USEDEP}] + media-libs/libde265:=[${MULTILIB_USEDEP}] + media-libs/libpng:0=[${MULTILIB_USEDEP}] + sys-libs/zlib:=[${MULTILIB_USEDEP}] + media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] + aom? ( >=media-libs/libaom-2.0.0:=[${MULTILIB_USEDEP}] ) + gdk-pixbuf? ( x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] ) + go? ( dev-lang/go ) + rav1e? ( media-video/rav1e:= ) + x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-dav1d-1.0.0.patch +) + +src_prepare() { + default + + sed -i -e 's:-Werror::' configure.ac || die + + eautoreconf + + # prevent "stat heif-test.go: no such file or directory" + multilib_copy_sources +} + +multilib_src_configure() { + export GO111MODULE=auto + local econf_args=( + --enable-libde265 + --disable-static + $(multilib_is_native_abi && use go || echo --disable-go) + $(use_enable aom) + $(use_enable gdk-pixbuf) + $(use_enable rav1e) + $(use_enable threads multithreading) + $(use_enable x265) + ) + ECONF_SOURCE="${S}" econf "${econf_args[@]}" +} + +multilib_src_test() { + default + emake -C go test +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name '*.la' -delete || die +} diff --git a/media-libs/libheif/libheif-9999.ebuild b/media-libs/libheif/libheif-9999.ebuild index a1837ad0964d..b319e000d0c7 100644 --- a/media-libs/libheif/libheif-9999.ebuild +++ b/media-libs/libheif/libheif-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit autotools xdg multilib-minimal @@ -28,7 +28,7 @@ DEPEND=" media-libs/libde265:=[${MULTILIB_USEDEP}] media-libs/libpng:0=[${MULTILIB_USEDEP}] sys-libs/zlib:=[${MULTILIB_USEDEP}] - virtual/jpeg:0=[${MULTILIB_USEDEP}] + media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}] aom? ( >=media-libs/libaom-2.0.0:=[${MULTILIB_USEDEP}] ) gdk-pixbuf? ( x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] ) go? ( dev-lang/go ) |