Commit Graph

8130 Commits

Author SHA1 Message Date
Lovell Fuller c76d74be65
Ensure EXIF is at least 4 bytes before inspection (#3109) 2022-10-22 11:20:53 +01:00
Kleis Auke Wolthuizen ea0912f23b
Fix build with `-Dwebp=disabled` (#3106) 2022-10-20 10:34:08 +01:00
Eli Schwartz e73f003d33
skip some skippable tests (#3102)
* tests: consolidate redundant, duplicated helper code

These functions currently exist in a sourced shell library, but there is
an identical copy of them in a single test file. Get rid of this
duplicate definition.

* tests: mark some tests as skipped if bc is not installed

`exit 77` is the GNU exitcode protocol for tests that cannot be run
because their prerequisites are not available. If `bc` is not installed,
and it often isn't, the test can be short-circuited instead of failing;
meson will report them in "warning yellow".

* tests: mark some tests as skipped if support is not compiled

Not all test cases can be cleanly marked as skipped -- sometimes,
multiple things are checked, and having one be unavailable should not
mean skipping all tests.

But in a couple cases, a test file only tests one thing, and that may be
skipped. In such cases, it can be semantically indicated in the test
harness report collection, that a skip occurred.
2022-10-19 18:13:48 +01:00
John Cupitt eb4b21eec2 Merge branch '8.13' 2022-10-19 17:37:11 +01:00
John Cupitt 53a3e6d819 note recent changes 2022-10-19 17:36:55 +01:00
John Cupitt e33796d752 Merge branch '8.13' 2022-10-19 17:35:36 +01:00
Sergey Alexandrovich 982a835eed
spngsave: Don't shift indexed pixels (#3101) 2022-10-19 17:34:43 +01:00
Kleis Auke Wolthuizen e6198361e5
thumbnail: fix embedded ICC profile conversion (#3027) 2022-10-19 17:32:04 +01:00
John Cupitt 2335172794 Merge branch '8.13' 2022-10-19 12:47:53 +01:00
Lovell Fuller 1fc01c05e8
exif: ensure prefix is present before parsing (#3100)
Newer Apple devices are creating EXIF without this however libexif
still requires it due to JPEG/JFIF/APP1 marker heritage.
2022-10-19 12:47:23 +01:00
John Cupitt 1297f2c6d7
add suport for N colour ICC profiles (#3046)
* seems to export to cmyk+2 correctly

We'll need something fancier for import.

* more hacking

* Revert "more hacking"

This reverts commit fcdad5b491fc4d5a1750388947e42d1e98b1d9d7.

* generalise to many colour export

Should work up to 12 colour profiles (all that lcms supports).

* support import with N-colour profiles
2022-10-19 09:19:18 +01:00
John Cupitt c8a88c618b Merge branch 'master' of github.com:libvips/libvips 2022-10-19 09:13:50 +01:00
John Cupitt 0936ef6c29 clarify readme a little 2022-10-19 09:12:12 +01:00
Kleis Auke Wolthuizen 67c642e5ec
CI: various improvements (#3096)
* CI: upgrade macOS runner to version 12 (Monterey)

* CI: upgrade actions/checkout to v3

* CI: remove retry logic for apt

The Linux runners on GitHub Actions already retries up to 10 times,
see:
6c93c24107/images/linux/scripts/base/apt.sh (L11-L12)

* CI: remove redundant `DEBIAN_FRONTEND=noninteractive` env

The Linux runners on GitHub Actions already sets this env variable,
see:
6c93c24107/images/linux/scripts/installers/dpkg-config.sh (L10)

* CI: remove redundant `HOMEBREW_NO_AUTO_UPDATE=1` env

The macOS runners on GitHub Actions already sets this env variable,
see:
6c93c24107/images/macos/provision/configuration/environment/bashrc (L26)

* CI: prefer shorthand flag of apt-get `--fix-missing`

* CI: install libjxl on macOS runner

* Update test suite's README.md
2022-10-17 19:08:35 +01:00
John Cupitt f0bb3e3442 Merge branch '8.13' 2022-10-14 20:06:34 +01:00
John Cupitt e83468e051 note spng fixes 2022-10-14 20:06:05 +01:00
Sergey Alexandrovich c6498e5c2c
spngsave: fix transparency (#3074) 2022-10-14 20:05:29 +01:00
Kleis Auke Wolthuizen f38acdef1a
spngsave: ensure quantisation occurs last (#3073)
* spngsave: ensure quantisation occurs last

i.e. after setting the metadata and phyiscal pixel dimensions,
since quantisation will overwrite the image.

* spngsave: avoid over-allocation of temporary buffer

For low-bitdepth write and palette-based output.
2022-10-14 19:29:29 +01:00
Daniel Löbl 9c2accf831
webpsave: switch to g_try_malloc() and limit WebP output dimensions (#3094)
* webpsave: switch to g_try_malloc()

* webpsave: add dimensions limit check

* output the amount of memory requested on malloc error
2022-10-14 15:35:07 +01:00
John Cupitt b661f4bc27 revise formatting 2022-10-12 18:27:10 +01:00
John Cupitt ab2e0bf38c Merge branch '8.13' 2022-10-11 08:49:03 +01:00
John Cupitt fbef674625 better rules for 16-bit heifsave
now parallel 16-bit PNG save

see https://github.com/libvips/libvips/discussions/3087
2022-10-11 08:45:24 +01:00
John Cupitt 7547476f44 version bump 2022-10-11 08:45:16 +01:00
Corentin Noël 5fcca56fe8
Introspection improvements (#3079)
* vala: Enhance the metadata to contain more symbols

* Enhance the introspection coverage

Always set data with destroy function as transfer full.
2022-10-06 17:28:33 +01:00
Kirk Martinez df9f5d38f8
copied invert example into examples (#3069)
* simple invert example

* Update meson.build
2022-09-29 11:48:24 +01:00
John Cupitt 69b139dfff Merge branch '8.13' 2022-09-29 05:55:18 +01:00
Lovell Fuller d3a1d4df1b
spngsave: name ICC profiles (#3068)
The PNG spec requires that the iCCP chunk has a profile name with
a minumum length of 1 (we use the same "icc" name as pngsave).
2022-09-28 16:28:44 +01:00
Kleis Auke Wolthuizen 4176ab2106
tiff2vips: avoid `g_assert_not_reached` in the default clause (#3064)
Since that could terminate the application in debug builds. Also,
add the missing case clause for `PHOTOMETRIC_MINISWHITE`.

Resolves: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51013.
2022-09-24 13:36:02 +01:00
Kleis Auke Wolthuizen db96adfc00
Ensure `--vips-config` only prints build configuration (#3062)
Also, remove a remnant of Autotools.
2022-09-24 11:26:30 +01:00
John Cupitt 5569022dbd use G_GNUC_* attribute system
Instead of our own compiler attr thing.

see https://github.com/libvips/libvips/issues/2871
2022-09-23 14:37:35 +01:00
John Cupitt eed0e5b43c Merge branch '8.13' 2022-09-22 14:11:31 +01:00
John Cupitt a86f33769b add changelog note 2022-09-22 14:09:55 +01:00
Ruven 33d44e86fb SubIFD offsets should only be added if smaller pyramid layers actually exist. Otherwise results in corrupted TIFF files for images smaller than the tile size (#3058) 2022-09-22 14:09:03 +01:00
Ruven cdf497d3e2
SubIFD offsets should only be added if smaller pyramid layers actually exist. Otherwise results in corrupted TIFF files for images smaller than the tile size (#3058) 2022-09-22 13:36:27 +01:00
John Cupitt 1f8e547d99 Merge branch '8.13' 2022-09-21 19:09:44 +01:00
John Cupitt b0be5beb30 note vips_text size check change 2022-09-21 19:09:15 +01:00
Kleis Auke Wolthuizen e88e5f0d2a
text: simplify check for 32k pixel limit (#3057) 2022-09-21 19:06:49 +01:00
John Cupitt c9a21a7aaa Merge branch '8.13' 2022-09-21 11:50:16 +01:00
John Cupitt fa4b80b74b earlier quit of dzsave on kill
We were only testing "killed" once for each strip of tiles. Check on each
tile as well to make set_kill() faster.

see https://github.com/kleisauke/net-vips/issues/179
2022-09-21 11:48:48 +01:00
John Cupitt 75bd19759f Merge branch '8.13' 2022-09-20 10:04:22 +01:00
John Cupitt 907d17cd06 revise caching of seq mode loaders
We were not caching seq mode loaders used in random access mode.

see https://github.com/libvips/libvips/issues/3044
2022-09-20 10:03:00 +01:00
Kleis Auke Wolthuizen 6d43755bfa
convi/reducev: initialize the sum with the addition (#3052)
* reducev: initialize the sum with the addition

Avoids an Orc opcode.

* convi: initialize the sum with the addition

Avoids an Orc opcode.

* vector: add comments to magic numbers
2022-09-17 14:18:15 +01:00
Kleis Auke Wolthuizen d874010d09
convi/reducev: use convsuswb in Orc path (#3053)
* reducev: use convsuswb in Orc path

Saves a few instructions.

* convi: use convsuswb in Orc path

Saves a few instructions.
2022-09-17 12:26:00 +01:00
John Cupitt 3b33d912c4 fix an undefined shift 2022-09-15 12:57:36 +01:00
John Cupitt d2e7d036ae improve HEIF is_a
- fix sign issue with some chunk sizes
- allow larger chunk_len

See https://github.com/libvips/libvips/discussions/3048
2022-09-14 16:56:37 +01:00
Kleis Auke Wolthuizen 6bf1422548
jxlsave: sync quality to distance calculation with libjxl (#3050)
Ensures the quality to distance conversion is continuous at 30.

See:
ea5fa8074d
2022-09-14 13:40:40 +01:00
Ruven 4985fec6b4
Inverted order of TIFF tag writing when saving multi-page subifd pyramids (#3047)
* Inverted order of TIFF tag writing when saving multi-page subifd pyramids to ensure that subifd pyramid layers are correctly tagged as reduced-image subfile type and not as pages

* Use if-else clause to avoid tag overwriting
2022-09-13 17:56:42 +01:00
John Cupitt 3081821636 revert dhint check
We added a check that loader ->header() and ->load() methods set the
same dhint. This commit removes that check -- it's not possible to make
header and load match in all cases since images can take so many routes,
and can change between the two events.

If we see performance issues around inappropriate cache sizing again,
try to fix just those cases.
2022-09-12 10:38:17 +01:00
John Cupitt 63f1673beb note buffer print fix 2022-09-11 14:30:09 +01:00
John Cupitt 0b3ab3a934 fix null string in buffer print
Some libvips header fields can be NULL, for example filename, and we
need to avoid null pointer deref on print.

See https://github.com/libvips/libvips/issues/3043
2022-09-11 14:29:12 +01:00