1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
From c893eb2386365afce7b43179c622b62fe88302d4 Mon Sep 17 00:00:00 2001
From: Dirk Lemstra <dirk@lemstra.org>
Date: Sat, 4 Jul 2026 10:06:57 +0200
Subject: [PATCH] Require at least version 1.11.0 of the libheif library.
---
coders/heic.c | 17 ++---------------
configure.ac | 2 +-
2 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/coders/heic.c b/coders/heic.c
index 449f0e1ff5d..d7cae5b29fc 100644
--- a/coders/heic.c
+++ b/coders/heic.c
@@ -87,7 +87,8 @@
#include <libheif/heif_sequences.h>
#endif
#endif
-
+
+
#if defined(MAGICKCORE_HEIC_DELEGATE)
/*
Forward declarations.
@@ -1034,10 +1035,8 @@ static Image *ReadHEICImage(const ImageInfo *image_info,ExceptionInfo *exception
#endif
ThrowReaderException(CoderError,"ImageTypeNotSupported");
(void) CloseBlob(image);
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,11,0)
if (heif_has_compatible_brand(magic,sizeof(magic), "avif") == 1)
(void) CopyMagickString(image->magick,"AVIF",MagickPathExtent);
-#endif
/*
Decode HEIF image.
*/
@@ -1250,7 +1249,6 @@ ModuleExport size_t RegisterHEICImage(void)
entry->flags|=CoderDecoderSeekableStreamFlag;
entry->flags^=CoderBlobSupportFlag;
(void) RegisterMagickInfo(entry);
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
entry=AcquireMagickInfo("HEIC","AVCI","AVC Image File Format");
#if defined(MAGICKCORE_HEIC_DELEGATE)
if (heif_have_decoder_for_format(heif_compression_AVC))
@@ -1266,8 +1264,6 @@ ModuleExport size_t RegisterHEICImage(void)
entry->flags|=CoderDecoderSeekableStreamFlag;
entry->flags^=CoderBlobSupportFlag;
(void) RegisterMagickInfo(entry);
-#endif
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
entry=AcquireMagickInfo("HEIC","AVIF","AV1 Image File Format");
#if defined(MAGICKCORE_HEIC_DELEGATE)
if (heif_have_decoder_for_format(heif_compression_AV1))
@@ -1283,7 +1279,6 @@ ModuleExport size_t RegisterHEICImage(void)
entry->flags|=CoderDecoderSeekableStreamFlag;
entry->flags^=CoderBlobSupportFlag;
(void) RegisterMagickInfo(entry);
-#endif
return(MagickImageCoderSignature);
}
@@ -1308,9 +1303,7 @@ ModuleExport size_t RegisterHEICImage(void)
*/
ModuleExport void UnregisterHEICImage(void)
{
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
(void) UnregisterMagickInfo("AVIF");
-#endif
(void) UnregisterMagickInfo("HEIC");
(void) UnregisterMagickInfo("HEIF");
#if defined(MAGICKCORE_HEIC_DELEGATE)
@@ -2357,9 +2350,7 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
Image *image,ExceptionInfo *exception)
{
MagickBooleanType
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
encode_avif,
-#endif
status;
MagickOffsetType
@@ -2391,10 +2382,8 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
return(status);
scene=0;
heif_context=heif_context_alloc();
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
encode_avif=(LocaleCompare(image_info->magick,"AVIF") == 0) ? MagickTrue :
MagickFalse;
-#endif
#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,20,0)
if ((encode_avif != MagickFalse) && (image_info->adjoin != MagickFalse) &&
(GetNextImageInList(image) != (Image *) NULL))
@@ -2457,12 +2446,10 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
/*
Get encoder for the specified format.
*/
-#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0)
if (encode_avif != MagickFalse)
error=heif_context_get_encoder_for_format(heif_context,
heif_compression_AV1,&heif_encoder);
else
-#endif
error=heif_context_get_encoder_for_format(heif_context,
heif_compression_HEVC,&heif_encoder);
if (IsHEIFSuccess(image,&error,exception) == MagickFalse)
diff --git a/configure.ac b/configure.ac
index 548268ea02e..3776989ef04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2386,7 +2386,7 @@ HEIF_LIBS=""
HEIF_PKG=""
if test "x$with_heic" = "xyes"; then
AC_MSG_RESULT([-------------------------------------------------------------])
- PKG_CHECK_MODULES([HEIF],[libheif >= 1.4.0],[have_heic=yes],[have_heic=no])
+ PKG_CHECK_MODULES([HEIF],[libheif >= 1.11.0],[have_heic=yes],[have_heic=no])
AC_MSG_RESULT([])
fi
|