Merge branch '8.11' of https://github.com/kleisauke/libvips into 8.11
This commit is contained in:
commit
c22215beef
34
whats-new.md
34
whats-new.md
@ -12,15 +12,11 @@ kleisauke and others for their great work on this release.
|
||||
[Lunaphore](https://www.lunaphore.ch/) kindly sponsored the development of
|
||||
the new JPEG2000 features, see below.
|
||||
|
||||
# Loadable modules for some image format loaders
|
||||
|
||||
- move openslide, libheif, poppler and magick to loadable modules [kleisauke]
|
||||
|
||||
# Experimental JPEG-XL support
|
||||
|
||||
libvips 8.11 includes experimental support for JPEG-XL load and save.
|
||||
|
||||
(JPEG-XL)[https://jpeg.org/jpegxl/] is a promising new iteration of the JPEG
|
||||
[JPEG-XL](https://jpeg.org/jpegxl/) is a promising new iteration of the JPEG
|
||||
standard that's currently being developed. The Chrome web browser supports
|
||||
it, though behind a flag, and it looks like it might be enabled by default
|
||||
this autumn in Chrome 89.
|
||||
@ -64,8 +60,32 @@ be squeezed out.
|
||||
|
||||
# Thread recycling
|
||||
|
||||
- new threading model has a single threadpool shared by all
|
||||
pipelines [kleisauke]
|
||||
The threading system of libvips was revamped, the new implementation uses
|
||||
the [thread pool semantics of GLib](https://developer.gnome.org/glib/stable/glib-Thread-Pools.html),
|
||||
which is a single thread pool shared across all pipelines. This
|
||||
implementation allows the reuse of already started threads.
|
||||
|
||||
This was originally intended for WebAssembly but it turned out to be useful
|
||||
for native environments as well. Relative speed-ups are varying between ~4%
|
||||
and ~15% compared to the previous implementation. Especially for short-lived
|
||||
pipelines and long-running processes, a performance improvement can be observed.
|
||||
|
||||
# Loadable modules for some dependencies
|
||||
|
||||
libvips now supports building OpenSlide, libheif, Poppler and libMagick as a
|
||||
dynamically loadable module. This makes it easier for distributions to provide
|
||||
separate (optional) packages for these dependencies, making the core package
|
||||
much slimmer and thus reducing the attack surface. Distributing separate packages
|
||||
could also help to comply with GPL licensing (“mere aggregation” clause) or
|
||||
patent-encumbered software.
|
||||
|
||||
[GModule](https://developer.gnome.org/glib/stable/glib-Dynamic-Loading-of-Modules.html)
|
||||
is used to accomplish this in a portable way. We already had a simple plugin
|
||||
system based on this, but the build part was not yet implemented.
|
||||
|
||||
These loadable modules are built automatically when GModule is supported, which
|
||||
should be supported on at least Linux, Windows and macOS. It can be disabled
|
||||
by passing `--disable-modules` while configuring libvips.
|
||||
|
||||
# Full-colour text rendering
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user