Commit Graph

7701 Commits

Author SHA1 Message Date
Lovell Fuller e16cb5bfe5
quantise: optional thresholding of alpha channel (#2425)
Moving this logic from gifsave to quantise improves
the performance of writing RGBA GIFs by ~15%
2021-09-07 12:23:42 +01:00
Kleis Auke Wolthuizen f2e5b7e9da
CI: resolve failures and various improvements (#2426)
* Simplify CI workflow

* CI: upgrade Ubuntu's Clang version to 12

* CI: upgrade macOS runner to version 11 (Big Sur)

* CI: temporarily disable the M1 runner

* CI: output test suite log upon failure

* CI: avoid brew update/upgrade steps

Since it may take a long time.

* CI: all jobs are supposed to succeed

* Fix test_descriptors.c failure after f8c2a36

Use a RANDOM image to create many crops from one source.
2021-09-07 11:14:45 +01:00
John Cupitt f8c2a36746 arrayjoin signalling minimise also frees memory
By making the sequential line cache non-persistent, and only minimising
when the read point is well past the image.

On large arrayjoin operations, this saves many GB of memory.

See https://github.com/kleisauke/net-vips/issues/135
2021-09-06 23:14:36 +01:00
John Cupitt 579bdff012 more debug in source.c 2021-09-06 20:26:43 +01:00
John Cupitt a20cd4cdc1 minimise arrayjoin inputs during processing
arrayjoin with a sequential pipeline will now minimise inputs when they
are no longer being used. This drops the number of open file handles
needed to construct large arrays.

Sadly, memory savings are minimal.

see https://github.com/kleisauke/net-vips/issues/135
2021-09-06 20:22:29 +01:00
John Cupitt 99724e6097 safer stop-early logic in tilecache
Don't actually stop the tilecache loop early, since that could deadlock,
instead just stop fetching from the pipeline.

see https://github.com/libvips/libvips/pull/2424
2021-09-05 12:55:52 +01:00
John Cupitt e7889ff8e1 stop cache tile generation early on error
We didn't stop tile calculation as early as we could on error.

See https://github.com/libvips/libvips/pull/2424
2021-09-05 12:46:11 +01:00
Lovell Fuller affc2400ed
heifload: switch demand to thinstrip (#2424)
Ensures decoding errors halt processing
2021-09-05 12:42:55 +01:00
John Cupitt d5b40793b0 Merge branch '8.11' 2021-09-05 12:02:14 +01:00
John Cupitt c5a6331d5e note thumbnail fix in changelog 2021-09-05 12:01:51 +01:00
John Cupitt 6f9d3ecf91 Merge branch '8.11' 2021-09-05 12:00:20 +01:00
Kleis Auke Wolthuizen 632badabe1
Ensure vips_thumbnail doesn't send an axis to 0 (#2416) 2021-09-05 11:58:44 +01:00
Lovell Fuller 4d079f1691
gifsave: use cgif namespaced API (#2422)
See https://github.com/dloebl/cgif/pull/18
2021-09-03 12:04:28 +01:00
John Cupitt 307d24eea7 Merge branch '8.11' 2021-08-30 14:02:28 +01:00
John Cupitt b62287a792 check .v enums more carefully 2021-08-30 14:02:03 +01:00
John Cupitt 26f5da19e9 Merge branch '8.11' 2021-08-30 12:44:06 +01:00
John Cupitt 6444bfb5bb note coding fix in changelog 2021-08-30 12:43:43 +01:00
Lovell Fuller bd8093ab71 Handle error values when guessing interpretation (#2421) 2021-08-30 12:30:55 +01:00
Lovell Fuller 4aaed60573 Ensure VIPS_CODING_ERROR is handled for vips images (#2420) 2021-08-30 12:30:43 +01:00
Lovell Fuller 01c39d0774
Ensure VIPS_CODING_ERROR is handled for vips images (#2420) 2021-08-29 20:16:31 +01:00
Lovell Fuller 30897e8e36
Handle error values when guessing interpretation (#2421) 2021-08-29 20:15:24 +01:00
John Cupitt b9230edcbe Merge branch '8.11' 2021-08-29 19:13:12 +01:00
John Cupitt 451cfcd282 small cleanups from "unlimited" option 2021-08-29 19:08:51 +01:00
Joshua Sager bb88490a17 Introduce unlimited flag, enabling unlimited text chunks in PNGs (#2419)
* Introduce unlimited flag, enabling unlimited text chunks

* remove extraneous optional flag causing GLib-GObject-CRITICAL **: 17:10:34.095: validate_and_install_class_property

* Address feedback from @jcupitt

* various compilation error fixes

* Interlace detection uses unlimited=false

* attempt to fix tests

* documentation changes, introduced MAX_PNG_TEXT_CHUNKS and bumped max to 20 (was 10)
2021-08-29 18:41:49 +01:00
Joshua Sager 608a7cee9b
Introduce unlimited flag, enabling unlimited text chunks in PNGs (#2419)
* Introduce unlimited flag, enabling unlimited text chunks

* remove extraneous optional flag causing GLib-GObject-CRITICAL **: 17:10:34.095: validate_and_install_class_property

* Address feedback from @jcupitt

* various compilation error fixes

* Interlace detection uses unlimited=false

* attempt to fix tests

* documentation changes, introduced MAX_PNG_TEXT_CHUNKS and bumped max to 20 (was 10)
2021-08-29 18:06:33 +01:00
John Cupitt b0b8e6ee65 small style changes 2021-08-23 01:14:37 +01:00
Lovell Fuller 1f5d6f6bc9
Add gifsave operation, depends on cgif and libimagequant (#2381) 2021-08-22 18:11:41 +01:00
Doug Nazar 97f5417aaa
Fix tests when using a separate build dir. (#2405) 2021-08-18 11:45:02 +01:00
Kleis Auke Wolthuizen b978ed8e8f
Adapt `TestForeign.test_heifsave` test (#2402)
- `heifsave` defaults to AV1 compression for .avif suffix since commit 8c44863.
- Test lossless compression mode.
2021-08-16 22:25:14 +01:00
John Cupitt e60f11eb45 fix rank fast path
there was an off-by-one error which could cause an out of bounds read

see https://github.com/libvips/libvips/issues/2401
2021-08-16 17:46:25 +01:00
John Cupitt 9d186c9cd4 Merge branch '8.11' 2021-08-14 18:17:11 +01:00
John Cupitt 3ccf1761dd Merge branch '8.11' of github.com:libvips/libvips into 8.11 2021-08-07 18:47:41 +01:00
John Cupitt 57d8dd3ece better jp2k save behaviour
- don't enable mct if subsampling is on
- don't make such deep pyramids
2021-08-07 18:46:50 +01:00
Kleis Auke Wolthuizen 1611afee7e
Fix a few -Wstrict-aliasing=1 warnings (#2380) 2021-08-07 18:11:36 +01:00
John Cupitt 1ce301812d Merge branch '8.11' 2021-08-06 17:00:24 +01:00
John Cupitt fd1a036cd8 limit number of PNG chunks
reduces the threat of PNG decompression bombs
2021-08-06 10:55:08 +01:00
John Cupitt e93a23e0b7 Merge branch '8.11' 2021-08-05 12:29:11 +01:00
John Cupitt 5263686511 limit the number of text chunks in PNGs
very large numbers of text chunks can cause high memory use
2021-08-05 12:28:22 +01:00
John Cupitt 3d77c6abaa tiny layout fix 2021-08-05 11:24:29 +01:00
John Cupitt 8082063607 rename webp reduction-effort as effort
though effort still works
2021-07-30 11:07:43 +01:00
John Cupitt ff1260df1c rename heifsave "speed" param as "effort"
For consistency with the rest of libvips. "speed" still works.
2021-07-30 10:59:12 +01:00
Lovell Fuller aabb1555d2
pngsave: expose quantisation effort setting (#2367) 2021-07-30 10:43:42 +01:00
John Cupitt 9221fae973 remove some stray dbg code
accidentally committed previously
2021-07-29 13:19:11 +01:00
John Cupitt b4582dbdaa set CFLAGS for magick API detect
since it will try to compile and link code fragments
2021-07-29 13:12:29 +01:00
John Cupitt d43b3ff0f8
Merge pull request #2362 from lovell/heifload-verify-dimensions
heifload: verify page dimensions are non-zero
2021-07-26 11:03:56 +01:00
Lovell Fuller 81009d3e4c heifload: verify page dimensions are non-zero 2021-07-25 21:47:55 +01:00
John Cupitt 86466a9b9a put the sudo back
we probably need to change the user that macos-m1 runs as
2021-07-23 18:35:14 +01:00
John Cupitt a0709f1bfc try install without sudo
since macos won't sudo as admin
2021-07-23 18:31:05 +01:00
John Cupitt 65ac1efc5f ci on m1 2021-07-23 14:04:45 +01:00
John Cupitt b4560b6802 ci on m1 try 2021-07-23 14:01:45 +01:00