From f1d2d4030ef0a69e67731e4102ea7d02661f1ed2 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Fri, 9 Oct 2020 14:02:53 +0100 Subject: [PATCH] fix build with libheif save buit not load We had some definitions inside the #ifdef HEIFLOAD. Thanks estepnv https://github.com/libvips/libvips/issues/1844 --- ChangeLog | 1 + libvips/foreign/heifload.c | 38 ++++++++++++++++++++++---------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index b4bee120..aabfc1df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,7 @@ - improve seek behaviour on pipes - add "speed" param to heifsave [lovell] - fix regression in C path for dilate / erode [kleisauke] +- fix build with libheif save but no load [estepnv] 9/8/20 started 8.10.1 - fix markdown -> xml conversion in doc generation diff --git a/libvips/foreign/heifload.c b/libvips/foreign/heifload.c index 802fdc66..494a2e37 100644 --- a/libvips/foreign/heifload.c +++ b/libvips/foreign/heifload.c @@ -68,12 +68,33 @@ #include #include -#ifdef HAVE_HEIF_DECODER +/* These are shared with the encoder. + */ +#if defined(HAVE_HEIF_DECODER) || defined(HAVE_HEIF_ENCODER) #include #include "pforeign.h" +void +vips__heif_error( struct heif_error *error ) +{ + if( error->code ) + vips_error( "heif", "%s (%d.%d)", error->message, error->code, + error->subcode ); +} + +const char *vips__heif_suffs[] = { + ".heic", + ".heif", + ".avif", + NULL +}; + +#endif /*defined(DECODE) || defined(ENCODE)*/ + +#ifdef HAVE_HEIF_DECODER + #define VIPS_TYPE_FOREIGN_LOAD_HEIF (vips_foreign_load_heif_get_type()) #define VIPS_FOREIGN_LOAD_HEIF( obj ) \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \ @@ -200,14 +221,6 @@ vips_foreign_load_heif_dispose( GObject *gobject ) dispose( gobject ); } -void -vips__heif_error( struct heif_error *error ) -{ - if( error->code ) - vips_error( "heif", "%s (%d.%d)", error->message, error->code, - error->subcode ); -} - static int vips_foreign_load_heif_build( VipsObject *object ) { @@ -1055,13 +1068,6 @@ vips_foreign_load_heif_file_is_a( const char *filename ) return( vips_foreign_load_heif_is_a( buf, 12 ) ); } -const char *vips__heif_suffs[] = { - ".heic", - ".heif", - ".avif", - NULL -}; - static void vips_foreign_load_heif_file_class_init( VipsForeignLoadHeifFileClass *class ) {