Commit Graph

8134 Commits

Author SHA1 Message Date
Kleis Auke Wolthuizen
848a119faa
threadset: stop idle threads after a regular timeout (#3253)
* Add `vips_semaphore_down_timeout` to public API

In preparation for the next commit.

* threadset: stop idle threads after a regular timeout

In line with the previous behaviour of GLib's threadpool.

* threadset: fix a small memory leak

* threadset: ensure idle threads are freed on exit

GLib threads are spawned with `ref_count == 2`, this reference is
decreased during thread exit and associated resources are freed
during `g_thread_join()`. However, idle threads that are stopped
after a regular timeout are not joined. To fix this, decrease the
reference count during `vips_threadset_add()` and increase it just
before joining the thread with `g_thread_join()`.

See:
2d5d990c6a/glib/gthread.c (L522)
2d5d990c6a/glib/gthread-posix.c (L1287)

* Deprecate `vips_g_thread_join()` in favor of `g_thread_join()`

* nit: remove extra semicolon
2023-01-03 12:00:35 +00:00
Kleis Auke Wolthuizen
60e18873fd
Fix version number in generated gtk-doc (#3259)
* Fix version number in generated gtk-doc

By using a separate XML file for the version number.

Resolves: #3255.

* Avoid newline in `version.xml.in`
2023-01-03 11:56:56 +00:00
Kleis Auke Wolthuizen
1b9a6397d7
Lower Meson version requirement to 0.55.x (#3257)
Allowing libvips to be compiled on RHEL 7 (and its derivatives).
2023-01-02 20:35:50 +00:00
John Cupitt
9419b3636f add missing vips_thread_isworker compat func
also bump to 8.14.1

see https://github.com/libvips/libvips/issues/3254

thanks remi
2023-01-02 11:57:05 +00:00
John Cupitt
feae09e9cd make arrayjoin much faster with large arrays
arrayjoin was making a region on every input image during startup, and
repeating for each thread (!!) so large arrays could be very expensive
to join.

Instead, make input regions on demand, and computre set of required
input images rather than searching for them.

See https://github.com/libvips/libvips/discussions/3247
2022-12-29 20:50:22 +00:00
John Cupitt
a03e1ef75d reorder changelog items 2022-12-24 13:28:10 +00:00
John Cupitt
09c50bac60 tiny doc fix
see https://github.com/libvips/libvips/discussions/3239#discussioncomment-4490620
2022-12-24 13:03:20 +00:00
John Cupitt
cd379a137a Merge branch 'master' into 8.14 2022-12-23 22:45:30 +00:00
John Cupitt
013cf38547 fix ppmload doc comment
ooops! RapidTransit

see https://github.com/libvips/libvips/discussions/3239
2022-12-23 22:44:12 +00:00
John Cupitt
13e619381c Merge branch 'master' into 8.14 2022-12-23 12:33:55 +00:00
Kleis Auke Wolthuizen
97720a1fb8
Minor doc improvements (#3236)
* doc: regenerate docbook after commit 5056f59

* cplusplus: update doc comments

Incorporates the improvements of commit ac4c2d2 and 6bb0b4d.
2022-12-23 12:33:26 +00:00
John Cupitt
530f286fde doc link 2022-12-23 11:50:07 +00:00
John Cupitt
34df78f778 revise changelog 2022-12-22 19:02:04 +00:00
John Cupitt
ec98db2196 note release date for 8.14 2022-12-22 18:52:16 +00:00
John Cupitt
96946001c6 revise comment 2022-12-22 18:10:52 +00:00
John Cupitt
a4c1919d69 Merge branch '8.13' 2022-12-16 11:37:18 +00:00
John Cupitt
caed71af04 emit "finish" at the end of targetcustom write
In 8.13 we deprecated target_finish() (it did not have an error return)
to target_end() (now has an error return).

This PR makes target_end() also emit the "finish" signal for
compatibility with the previous API. ruby-vips, for example, looks for
on_finish() to close files.

See https://github.com/libvips/ruby-vips/issues/351

Thanks lucaskanashiro
2022-12-16 11:32:16 +00:00
John Cupitt
4a76c79426 Merge branch 'master' of github.com:libvips/libvips 2022-12-15 11:21:07 +00:00
John Cupitt
821e2165b9 add meson option to disable cplusplus api build 2022-12-15 11:20:10 +00:00
John Cupitt
43ab4bf886 tiny formatting changes 2022-12-15 11:15:01 +00:00
aliflux-omo
5056f59f51
Adding layout: IIIF and IIIF3 to documentation (#3209) 2022-12-15 11:09:49 +00:00
Daniel Löbl
6bb0b4dd1e
heifsave: make it possible to use a specific encoder (#3198)
* heifsave: make it possible to use a specific encoder

* argument label: switch to leading capital letter

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>

* add VipsForeignHeifEncoder enum

* correct type

* implement reviewer feedback

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
2022-12-15 11:02:38 +00:00
Kleis Auke Wolthuizen
20a4d6029d
Allow libjxl 0.6 (#3223)
This partially reverts commit 0029b3c4.
2022-12-08 13:22:36 +00:00
John Cupitt
ac4c2d2b3d
gifsave: deprecate reoptimise, add reuse (#3213)
see https://github.com/libvips/libvips/discussions/3211
2022-12-05 15:41:54 +00:00
John Cupitt
a154b30d51 improve completion script 2022-11-30 19:06:07 +00:00
Kleis Auke Wolthuizen
0629a5de7f
Ensure consistent formatting of ->format_table (#3199) 2022-11-30 09:41:05 +00:00
Kleis Auke Wolthuizen
fb21c2483a
CI: disable __tls_get_addr interception in ASan (#3205)
It might be the cause of the intermittent ASan failures on CI.

See: https://github.com/google/sanitizers/issues/1322
2022-11-30 00:09:42 +00:00
Kleis Auke Wolthuizen
fa03989b60
Minor doc improvements (#3202)
* doc: avoid use of GCC's old syntax (`-Wgnu-designator`)

* doc: highlight shell commands

* doc: point the C++ docs to v8.12

* doc: avoid highlight on output matching bash keywords
2022-11-30 00:07:57 +00:00
Kleis Auke Wolthuizen
d6898e592b
Mark profiles.c as a generated file (#3201) 2022-11-30 00:07:42 +00:00
Kleis Auke Wolthuizen
464206fcda
Regenerate POTFILES.in (#3203) 2022-11-30 00:06:18 +00:00
Kleis Auke Wolthuizen
489ed5c0e8
Update C++ binding and function list (#3204) 2022-11-30 00:06:06 +00:00
Kleis Auke Wolthuizen
aef030e78a
cplusplus: add missing argc check in resize example (#3200) 2022-11-30 00:04:27 +00:00
Emanuel Jöbstl
25444cd927
Expose attention center when doing attention-based cropping. (#3164)
* ADded optional output parameter to smartcrop to track the center of
attention.

* Added unit test.

* Added docs & updated changelog.

* Updated argument labels & types in documentation.
2022-11-28 14:10:16 +00:00
John Cupitt
697311bc9f typo 2022-11-28 10:29:47 +00:00
John Cupitt
cbfbeb6e2d don't parse floats with scanf
since scanf uses the current locale, duh

see https://github.com/libvips/libvips/issues/3191
2022-11-28 08:51:13 +00:00
Kleis Auke Wolthuizen
4611651d90
nsgifload: avoid minimise after mapping (#3189)
* nsgifload: avoid minimise after mapping

Not reliable on Windows.

* nsgifload: prefer use of `VIPS_FREEF` macro

* Improve `test_descriptors.c`

* Only build `test_descriptors` when targeting Linux
2022-11-27 15:43:35 +00:00
Kleis Auke Wolthuizen
1040766b04
dzsave: add error handling for vips_gsf_path() (#3188)
It can return `NULL` when it exceeds the path limits.

See: https://github.com/kleisauke/net-vips/issues/184
2022-11-27 15:30:04 +00:00
John Cupitt
5947f6ed11 fix a compiler warning 2022-11-21 16:53:15 +00:00
John Cupitt
e3289ad2c1
add exif support to png load/save (#3168)
* start adding exif in png

the "Exif\0\0" header isn't being added and removed correctly

needs tests

* all done

tested with linpng and libspng
2022-11-18 11:57:05 +00:00
André Pedersen
ef1300a288
fixed 'lossless" typo (#3169) 2022-11-18 11:56:27 +00:00
Kleis Auke Wolthuizen
567c44e2ec
jxlload: simplify rewinding (#3170)
This partially reverts commit e88db2ce.
2022-11-18 11:55:55 +00:00
John Cupitt
e24cee4e22
WIP -- add simple bash completion support (#3131)
* add simple bash completion support

* add "completions" subdir to meson

* start extending completion to extra args

* file complete for every arg after 1

* add completion for enums, file, ints, doubles

* docs, try to improve directory completion

though dir completion is not working correctly, I'm not sure why
2022-11-13 18:57:14 +00:00
John Cupitt
7f352b3c9e
revise fitsload (#3120)
* compiles

* note changelog

and switch to FATSTRIP (much quicker)

* don't duplicate header fields in fitssave

be careful not to set records twice in save

see https://github.com/libvips/libvips/issues/3113

* tiny polish
2022-11-13 18:52:28 +00:00
John Cupitt
ef2646ef6a
add a "wrap" option to vips_text() (#3130)
see:

https://github.com/libvips/libvips/discussions/2073

https://github.com/libvips/libvips/discussions/3126
2022-11-10 15:46:46 +00:00
John Cupitt
144834a6aa replace memcpy() in d180 with a loop
thanks alantudyk

see https://github.com/libvips/libvips/issues/3149#issuecomment-1309405404
2022-11-10 04:45:50 +00:00
John Cupitt
b8a2d26ad9 Merge branch '8.13' 2022-11-09 14:53:43 +00:00
John Cupitt
27874386b2 missing include in mosaic_fuzzer
causes build fail on debian9, see https://github.com/libvips/libvips/issues/3152
2022-11-09 14:52:01 +00:00
John Cupitt
557fc76634 faster gif save if interpalette-maxerror is huge
If interpalette-maxerror is very large, we don't need to recompute the
palette for every frame, since we'll never choose a new palette.
2022-11-07 16:49:12 +00:00
John Cupitt
3ebb21491d improve fail-on handling for GIF load
fail-on truncated and warning now works for GIF load
2022-11-05 12:04:47 +00:00
Michael Drake
b32bc70de7
libnsgif: Update to latest upstream (#3142)
Allows clients to know if the scan encountered a truncated image.
2022-11-05 11:16:23 +00:00