* 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
Use GLib's i18n support instead of copying and pasting that
logic into its own header. This deprecates the vips/intl.h
header in favour of glib/gi18n.h.
- deprecate vips_autorot_get_angle() since orientation is no longer a
simple rotate
- add vips_image_get_orientation() and vips_image_get_orientation_swap()
- revise tiff and jpeg loader autorotate to just call vips_autorot(),
but only if necessary
- revise thumbnail autorotate too
You must now include vips7 support explicitly with
#include <vips/vips7compat.h>
in your code just after including `vips.h`.
The old vips7 names, such as `Rect`, were starting to cause problems
with other packages like opencv.
generate now has a 'stop' param, set this to indicate early successful
termination
this will be used by VipsMin and friends to stop scanning early for
conditions like seen a 0 in a uchar image while searching for min