Merge branch '8.10'

This commit is contained in:
John Cupitt 2020-10-18 22:37:57 +01:00
commit b3481f5baa
2 changed files with 31 additions and 18 deletions

View File

@ -10,6 +10,9 @@
- get pdfium load building again [Projkt-James] - get pdfium load building again [Projkt-James]
- add _source load support for pdfium - add _source load support for pdfium
18/10/20 started 8.10.3
- relax heic is_a rules [hisham]
6/9/20 started 8.10.2 6/9/20 started 8.10.2
- update magicksave/load profile handling [kelilevi] - update magicksave/load profile handling [kelilevi]
- better demand hint rules [kaas3000] - better demand hint rules [kaas3000]
@ -26,6 +29,7 @@
- improve seek behaviour on pipes - improve seek behaviour on pipes
- add "speed" param to heifsave [lovell] - add "speed" param to heifsave [lovell]
- fix regression in C path for dilate / erode [kleisauke] - 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 9/8/20 started 8.10.1
- fix markdown -> xml conversion in doc generation - fix markdown -> xml conversion in doc generation

View File

@ -68,12 +68,33 @@
#include <vips/debug.h> #include <vips/debug.h>
#include <vips/internal.h> #include <vips/internal.h>
#ifdef HAVE_HEIF_DECODER /* These are shared with the encoder.
*/
#if defined(HAVE_HEIF_DECODER) || defined(HAVE_HEIF_ENCODER)
#include <libheif/heif.h> #include <libheif/heif.h>
#include "pforeign.h" #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_TYPE_FOREIGN_LOAD_HEIF (vips_foreign_load_heif_get_type())
#define VIPS_FOREIGN_LOAD_HEIF( obj ) \ #define VIPS_FOREIGN_LOAD_HEIF( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
@ -200,14 +221,6 @@ vips_foreign_load_heif_dispose( GObject *gobject )
dispose( 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 static int
vips_foreign_load_heif_build( VipsObject *object ) vips_foreign_load_heif_build( VipsObject *object )
{ {
@ -258,7 +271,7 @@ static const char *heif_magic[] = {
* *
* enum heif_filetype_result result = heif_check_filetype( buf, 12 ); * enum heif_filetype_result result = heif_check_filetype( buf, 12 );
* *
* but it's very conservative and seems to be missing some of the Nokia hief * but it's very conservative and seems to be missing some of the Nokia heif
* types. * types.
*/ */
static int static int
@ -269,7 +282,10 @@ vips_foreign_load_heif_is_a( const char *buf, int len )
int i; int i;
if( chunk_len > 32 || /* We've seen real files with 36 here, so 64 should be
* plenty.
*/
if( chunk_len > 64 ||
chunk_len % 4 != 0 ) chunk_len % 4 != 0 )
return( 0 ); return( 0 );
@ -1079,13 +1095,6 @@ vips_foreign_load_heif_file_is_a( const char *filename )
return( vips_foreign_load_heif_is_a( buf, 12 ) ); return( vips_foreign_load_heif_is_a( buf, 12 ) );
} }
const char *vips__heif_suffs[] = {
".heic",
".heif",
".avif",
NULL
};
static void static void
vips_foreign_load_heif_file_class_init( VipsForeignLoadHeifFileClass *class ) vips_foreign_load_heif_file_class_init( VipsForeignLoadHeifFileClass *class )
{ {