libgd/src
Ben Morss f2aa2836ed
AVIF support (#671)
Demand for AVIF support on the web is growing, as the word gets out
about this new file format which allows higher-quality encoding at
smaller sizes.  Core contributors to major open-source CMSs are
interested in auto-generating AVIF images! They've been simply
waiting for support to appear in libgd.

This PR aims to meet the growing demand, and to help bring smaller,
more beautiful images to more of the web - to sites created by
experienced developers and CMS users alike.

This PR adds support by incorporating libavif in addition to the
existing libheif support.  It's generally felt that libavif has
more complete support for the AVIF format. libavif is also used
by the Chromium project and squoosh.app.

In this PR, I've endeavored to incorporate the latest research into
best practices for AVIF encoding - not just for default quantizer
values, but also an algorithm for determining the number of
horizontal tiles, vertical tiles, and threads.

Fixes #557.
2021-03-03 21:35:56 -05:00
..
msinttypes clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
CMakeLists.txt AVIF support (#671) 2021-03-03 21:35:56 -05:00
COPYING Fix copyright format problem 2021-02-01 22:39:33 -05:00
Makefile.am AVIF support (#671) 2021-03-03 21:35:56 -05:00
annotate.c annotate: be consistent in error messages 2019-08-03 12:54:08 -04:00
bdftogd clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
bmp.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
circletexttest.c move (redundant) ifdef checks from source to build files 2018-06-21 23:55:11 -04:00
config.h.cmake AVIF support (#671) 2021-03-03 21:35:56 -05:00
demoin.png - sync to 1.6.0 2006-04-05 15:35:53 +00:00
depcomp - sync to 2.0.10 2006-04-05 15:47:15 +00:00
entities.h - apply same CS everywhere 2013-04-03 14:23:11 +02:00
entities.html clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
entities.tcl #17, Added "static" to entities_s struct declaration to avoid obscure 2007-01-03 19:48:50 +00:00
fontconfigtest.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
fontsizetest.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
fontwheeltest.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gd.c gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gd.h AVIF support (#671) 2021-03-03 21:35:56 -05:00
gd2copypal.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gd2time.c Use custom error handler instead of fprintf(stderr, ...) 2013-04-18 08:28:36 +02:00
gd2togif.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gd2topng.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gd_avif.c AVIF support (#671) 2021-03-03 21:35:56 -05:00
gd_bmp.c gd_io: replace internal Putchar with gdPutC 2021-01-11 19:15:17 -05:00
gd_color.c Document cropping stuff 2016-10-09 12:46:31 +02:00
gd_color.h - apply same CS everywhere 2013-04-03 14:23:11 +02:00
gd_color_map.c Document all BGD_DECLARE'd functions 2016-07-20 21:24:48 +02:00
gd_color_map.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gd_color_map_test.c libgd: fix unitialized warnings during make check (fixes #65) 2013-05-27 15:16:06 +02:00
gd_color_match.c Fix #497: gdImageColorMatch Out Of Bounds Write on Heap (CVE-2019-6977) 2019-12-20 10:12:04 +08:00
gd_crop.c Compute average in gdGuessBackgroundColorFromCorners properly (#483) 2020-05-13 19:19:08 +08:00
gd_errors.h Unify the Win32 check to _WIN32 check which is defined by both VC and MinGW 2013-04-23 06:03:59 +02:00
gd_filename.c AVIF support (#671) 2021-03-03 21:35:56 -05:00
gd_filter.c gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gd_gd.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gd_gd2.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gd_gif_in.c Allow GIFs missing both Global and Local Colormaps to still decode (#494) 2021-03-03 02:17:51 -05:00
gd_gif_out.c Fix GD build with -D SIGNED_COMPARE_SLOW 2019-11-21 20:07:20 -05:00
gd_heif.c HEIF support through libheif (#670) 2021-03-02 12:32:03 -05:00
gd_intern.h gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gd_interpolation.c gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gd_io.c gd_io: replace internal Putchar with gdPutC 2021-01-11 19:15:17 -05:00
gd_io.h gd_io: replace internal Putchar with gdPutC 2021-01-11 19:15:17 -05:00
gd_io_dp.c Fixed typo in the comments. 2019-05-06 10:36:53 +02:00
gd_io_file.c Document all BGD_DECLARE'd functions 2016-07-20 21:24:48 +02:00
gd_io_ss.c Document all BGD_DECLARE'd functions 2016-07-20 21:24:48 +02:00
gd_io_stream.cxx Remove Git ident attributes 2018-06-27 02:04:37 +02:00
gd_io_stream.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
gd_jpeg.c add stub ABI funcs when formats are disabled #345 2019-02-09 13:16:57 -05:00
gd_matrix.c Fixed #596: gdTransformAffineCopy run error 2020-03-21 15:31:40 +08:00
gd_nnquant.c Make gd_nnquant.c less likely to introduce duplicate definitions (#601) 2020-03-23 23:25:24 +08:00
gd_nnquant.h Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gd_png.c add stub ABI funcs when formats are disabled #345 2019-02-09 13:16:57 -05:00
gd_rotate.c Remove unused functions 2017-01-10 18:57:24 +01:00
gd_security.c it should be gd_error_ex 2013-04-20 08:17:33 +09:00
gd_ss.c Document all BGD_DECLARE'd functions 2016-07-20 21:24:48 +02:00
gd_tga.c tga: delay calculation to avoid undefined behavior 2018-01-26 02:13:26 -05:00
gd_tga.h Remove wrong license headers. Based on http://www.paulbourke.net/dataformats/tga/ 2014-05-21 10:44:03 +00:00
gd_tiff.c add missing gd_intern.h include 2021-02-08 18:44:32 -05:00
gd_topal.c Fix #479: Provide a suitable malloc function to liq 2018-11-16 00:42:52 -05:00
gd_transform.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gd_version.c Document all BGD_DECLARE'd functions 2016-07-20 21:24:48 +02:00
gd_wbmp.c Fix #492: Potential double-free in gdImage*Ptr() 2019-01-17 11:54:55 +01:00
gd_webp.c AVIF support (#671) 2021-03-03 21:35:56 -05:00
gd_xbm.c drop redundant strcasecmp define 2021-03-03 02:08:46 -05:00
gdcache.c gdcache: fix main function error 2020-03-21 21:31:48 +08:00
gdcache.h gdcache: improve gdcache test compile cmd 2019-12-22 23:04:29 +08:00
gdcmpgif.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gddemo.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdfontg.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdfontg.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gdfontl.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdfontl.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gdfontmb.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdfontmb.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gdfonts.c Improve documentation of built-in fonts and their handling 2016-08-14 17:31:54 +02:00
gdfonts.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gdfontt.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdfontt.h Move HAVE_CONFIG_H from .h to .c to not break when external app define the symbol (See Debian Bug#708413) 2013-05-16 08:34:23 +02:00
gdft.c Fix #615 using libraqm 2020-07-15 09:45:07 +02:00
gdfx.c gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gdfx.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
gdhelpers.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
gdhelpers.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
gdkanji.c gdkanji: drop another redundant check #456 2018-09-06 01:50:11 -04:00
gdparttopng.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdpp.cxx Remove config.h in gdpp 2019-11-18 23:09:44 -05:00
gdpp.h Remove config.h in gdpp 2019-11-18 23:09:44 -05:00
gdtables.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdtest.c move (redundant) ifdef checks from source to build files 2018-06-21 23:55:11 -04:00
gdtestft.c gd_intern: unify the min/max/clamp macros some more 2021-02-05 22:47:13 -05:00
gdtopng.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
gdxpm.c Mark up code examples with (start|end code) 2016-08-23 22:27:27 +02:00
getopt.c include getopt for Windows builds 2018-01-29 18:09:57 -05:00
gifanimtest.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
giftogd2.c clean up trailing whitespace/newlines 2018-06-21 22:47:42 -04:00
jisx0208.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
pngtogd.c move (redundant) ifdef checks from source to build files 2018-06-21 23:55:11 -04:00
pngtogd2.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
testac.c Add leading blank lines check and trim redundant blank newlines 2018-10-05 10:27:50 -04:00
testtr.c move (redundant) ifdef checks from source to build files 2018-06-21 23:55:11 -04:00
wbmp.c wbmp: getmbi: use unsigned int to avoid undefined shift behavior 2018-01-25 23:25:56 -05:00
wbmp.h rework ifdef header protection #456 2018-08-31 01:21:34 -04:00
webpng.c Remove HAVE_STDLIB_H 2018-09-08 03:29:27 -04:00