diff mbox series

[bug#47311] gnu: Add libheif.

Message ID 6434c341-1961-854a-662e-58fe134f20a9@posteo.net
State Accepted
Headers show
Series [bug#47311] gnu: Add libheif. | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Vinicius Monego March 22, 2021, 8:21 p.m. UTC
Em 22/03/2021 15:01, Leo Famulari escreveu:
>> +    (inputs
>> +     `(("dav1d" ,dav1d)
>> +       ("gdk-pixbuf" ,gdk-pixbuf) ;optional
>> +       ("libaom" ,libaom)
>> +       ("libde265" ,libde265)
>> +       ("libjpeg" ,libjpeg-turbo)
>> +       ("libpng" ,libpng)
>> +       ("rav1e" ,rav1e)
>> +       ("x265" ,x265)))
> I wonder, are both libaom and rav1e mandatory dependencies?
>
> I ask because they offer the same functionality (AV1 encoding), and it's
> still a bit tricky to introduce Rust dependencies in Guix. Rav1e is
> written in Rust, but we only support Rust on x86_64.

libaom provides the same functionality of dav1d+rav1e in this case. I 
thought of adding those two because libaom was slower in the early versions.

I attached a v2 with libaom only (to simplify the dependency graph). 
Feel free to choose dav1d+libaom.

Comments

Leo Famulari March 22, 2021, 9:20 p.m. UTC | #1
On Mon, Mar 22, 2021 at 05:21:57PM -0300, Vinicius Monego wrote:
> libaom provides the same functionality of dav1d+rav1e in this case. I
> thought of adding those two because libaom was slower in the early versions.

That's true, and libaom is still really slow to encode, although rav1e
is also slow. My impression is that, overall, one should still encode
with libaom, since it gives better results, but my info could be stale.

> I attached a v2 with libaom only (to simplify the dependency graph). Feel
> free to choose dav1d+libaom.

I'll choose dav1d+libaom. Dav1d is focused on reducing the power
required for decoding, which is really important in these early days of
AV1.

I can make those changes locally when pushing later today.
diff mbox series

Patch

From 453286bbaeef5f025d124fbe81c642623307961a Mon Sep 17 00:00:00 2001
From: Vinicius Monego <monego@posteo.net>
Date: Tue, 16 Feb 2021 21:39:26 -0300
Subject: [PATCH v2] gnu: Add libheif.

* gnu/packages/image.scm (libheif): New variable.
---
Removed rav1e and dav1d from inputs.

 gnu/packages/image.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index de6872b9b2..07db67ded1 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -2164,6 +2164,41 @@  by AOM, including with alpha.")
     (license (list license:bsd-2    ; libavif itself
                    license:expat)))) ; cJSON in the test suite
 
+(define-public libheif
+  (package
+    (name "libheif")
+    (version "1.11.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/strukturag/libheif")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "036n63vlk4sk7y25q2kzyvvw4r5vv323ysbmbrcaprg9hdyjqgf5"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ;no test target although there is a tests folder
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf) ;optional
+       ("libaom" ,libaom)
+       ("libde265" ,libde265)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("x265" ,x265)))
+    (home-page "https://github.com/strukturag/libheif")
+    (synopsis "HEIF and AVIF file format decoder and encoder")
+    (description
+     "@code{libheif} is an ISO/IEC 23008-12:2017 HEIF and AVIF (AV1 Image File
+Format) file format decoder and encoder.")
+    (license license:gpl3+)))
+
 (define-public mtpaint
   (package
     (name "mtpaint")
-- 
2.31.0