Commit Graph

7925 Commits

Author SHA1 Message Date
Kleis Auke Wolthuizen 330ebf3cd7
Mosaicing fixes and improvements (#2705)
* Fix segv in `vips_mosaic1`

* Fix ref handling in `rotjoin_search`

* Pass `oarea` to `vips_affine` as `VipsArrayInt` instead

* Flip X/Y positions in `vips__coeff`

* Fix `-Wunused-but-set-variable` warning

* Deprecate unused mosaicing arguments

* Remove a couple of stray header decls
2022-03-03 20:10:20 +00:00
Kleis Auke Wolthuizen a0f9cd95e0
Ensure compatibility with nip2 (#2704)
nip2 uses the `VIPS_EXEEXT` definition.
2022-03-03 18:51:33 +00:00
Michael Drake ac35124f59
nsgifload: Fix gif decoding issue. (#2702)
The nsgif_data_scan() call returns an error code that says
if anything was wrong with the source data.

It is not unusual for there to be bad stuff in a GIF, so we
only need to worry if we failed to find any frames.
2022-03-03 18:49:31 +00:00
John Cupitt f65b615a17 minor nsgifload revisions
- add note to changelog
- remove dead code
- improve debug output
- track current page number

see https://github.com/libvips/libvips/pull/2699
2022-03-03 11:49:13 +00:00
John Cupitt eb577606a0 revise change detection again
to fix debug output
2022-03-03 11:48:49 +00:00
Michael Drake 8e9fe72dea
Update libnsgif (#2699)
* libnsgif: Rename upstream README with markdown extension.

* libnsgif: Drop default frame delay patch

* libnsgif: Remove unused utils / log.h header.

* libnsgif: Rename files to match upstream.

* libnsgif: Extend update script to update local README and test/

* libnsgif: Run update script.

* libnsgif: Update buildsystem for renamed files

* nsgifload: Switch to new library header.

* nsgifload: Remove optional and unused bitmap callbacks.

* nsgifload: Update to use new libnsgif API.
2022-03-03 10:02:36 +00:00
John Cupitt 716fbf75b1 raise GIF save frame size limit 2022-03-02 18:06:44 +00:00
John Cupitt 669ea43138 improve the GIF save change detector
Instead if just summing PELs, scale RGBA differently. This lets us
detect changes like [255, 0, 0] to [9, 255, 0]
2022-03-02 18:03:36 +00:00
John Cupitt de2adb99a2 better frame write loop for gif save 2022-02-28 17:20:42 +00:00
John Cupitt 3b6072437d add new param to gifsave docs
also note in changelog and revise layout for 80 columns

see https://github.com/libvips/libvips/pull/2628
2022-02-28 16:38:02 +00:00
Daniel Löbl b0f993eec8
cgifsave: avoid size issue (#2628)
* cgifsave: avoid size issue

avoid size issue by restoring the original transparency setting after quantization/dithering

* switch to per-frame alpha channel

* add option for lossy transparency

* switch lossy transparency off by default

* switch to g_malloc instead of g_malloc0

no need to 0 initialize at this point

* adapt to libvips coding conventions

* cgifsave: avoid size issue

avoid size issue by restoring the original transparency setting after quantization/dithering

* switch to per-frame alpha channel

* add option for lossy transparency

* switch lossy transparency off by default

* switch to g_malloc instead of g_malloc0

no need to 0 initialize at this point

* adapt to libvips coding conventions

* switch to official Homebrew sources for installing cgif

* bump required cgif version to v0.2.0
2022-02-28 16:19:13 +00:00
shado23 c02b69eaba
Address review feedback on VRegion (#2684) (#2696)
* Add VRegion8.h to Makefile.am, meson.build, Doxyfile.in.

* Fix inaccurate function documentation.

* Add stride method to VRegion.
2022-02-28 16:17:40 +00:00
John Cupitt 3073ee90b7
Improve edge handling for mapim (#2681)
* almost there

* smol changes

* getting close now

segv on the test suite, annoyingly

* argh still not quite thert

* phew
2022-02-28 09:12:09 +00:00
John Cupitt 9d841e848f more init check to libvips base class
helps introspection run correctly if there's no vips_init()
2022-02-27 18:48:37 +00:00
Kleis Auke Wolthuizen f11b58ff6c
Remove `VIPS_EXEEXT` and `VIPS_SONAME` definitions (#2694)
And the corresponding `soname.h` header.
2022-02-27 15:27:37 +00:00
Kleis Auke Wolthuizen 0337c09700
Cleanup gettext handling (#2695)
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.
2022-02-27 15:27:28 +00:00
Kleis Auke Wolthuizen 517089fb4b
Meson: don't install deprecated headers when `-Ddeprecated=false` (#2693) 2022-02-27 13:44:09 +00:00
John Cupitt 7d1956974e Merge branch 'master' of github.com:libvips/libvips 2022-02-27 13:43:13 +00:00
Kleis Auke Wolthuizen 65fbcd351b
Add missing funcs to public C API (#2692) 2022-02-27 13:42:17 +00:00
Kleis Auke Wolthuizen 50a74ceeec
Mark some functions and variables as static (#2691)
These are only used in the same file, and not exported.
2022-02-27 13:41:39 +00:00
Kleis Auke Wolthuizen dcfac75f06
Meson: ensure NIfTI can be found (#2689)
* Meson: ensure NIfTI can be found

* Incorporate review comment
2022-02-27 13:40:11 +00:00
Lovell Fuller 6639b90f22
window: delay setting ref count (#2690)
fixes an assert fail in window_free
2022-02-27 09:50:04 +00:00
Kleis Auke Wolthuizen 802dabc6aa
Meson: ensure `-Dpng=disabled` does not disable WebP load/save (#2686) 2022-02-25 19:04:07 +00:00
Kleis Auke Wolthuizen a67d637a3a
Meson: fix building with `-Dspng=enabled` (#2685)
And prefer to search for `spng.pc` first, since that one is
generated by Meson.
2022-02-25 15:41:21 +00:00
shado23 3a45d6e842 Add support for regions in the C++ API 2022-02-25 16:19:44 +01:00
John Cupitt e1ad26b782 Merge branch 'master' of github.com:libvips/libvips 2022-02-25 13:45:06 +00:00
John Cupitt b9e6bda6f7 fix oxygen
see https://github.com/libvips/libvips/issues/2650#issuecomment-1050142161
2022-02-25 13:44:30 +00:00
John Cupitt 4196a0e73a
set some -Ds depending on the release type (#2682)
* set some -Ds depending on the release type

libvips uses g_assert() quite a bit to check things like pointer bounds,
and this can have a large performance impact.

This PR turns off g_assert() (plus some other things) in release mode,
and enables leak checking (and some other things) in debug mode.

I'm not sure if this is the best way to implement this kind of thing.
Does meson have a more offical path for this?

* incorporate comments

* link asserts and cast checks to optimization level
2022-02-25 12:52:18 +00:00
Kleis Auke Wolthuizen a8b48e1442
Add missing annotations to #endif directives (#2678) 2022-02-23 11:55:40 +00:00
John Cupitt 5ff96da873 add note on heifload unlimited to changelog 2022-02-23 10:35:46 +00:00
Lovell Fuller 4ca4b07654
heifload: add unlimited option, default to false (#2677) 2022-02-23 10:34:07 +00:00
Kleis Auke Wolthuizen 1e4cd2d5c2
Fix building with -Dmodules=disabled (#2676)
* Fix building with -Dmodules=disabled

* Reformat line [skip ci]
2022-02-23 10:32:02 +00:00
Kleis Auke Wolthuizen d80185060d
Various improvements to the build systems (#2675)
* Meson: remove space before colon

Since key-value pairs in Python are usually delimited as
colon+space instead of space+colon+space.

* Meson: disable modules by default when building static libraries

Corresponds to autotools. See: #2323.

* Meson: make modules a feature option

Corresponds to autotools, where modules are built
automatically if enabled and supported.

* Meson: specify minimum required GLib version

* Meson: fix indentation

* Remove unused function checks

* Simplify GLib configure checks

* Meson: ensure modules doesn't include enumtypes sources

Since that would cause duplicate symbols.

(`soname_header` can also be safely removed here,
since that is already included in `libvips_headers_dep`)
2022-02-22 14:33:42 +00:00
John Cupitt c5f2fea8bf fix a gcc warning with clang pragmas 2022-02-22 10:06:43 +00:00
Michael Drake b05515b0c5
Update libnsgif from upstream (#2674)
* libnsgif: Remove patch artifact.

* libnsgif: Update from upstream.
2022-02-21 20:07:20 +00:00
John Cupitt 49cae56e1e stray "im_" prefix 2022-02-20 17:07:29 +00:00
John Cupitt 542cfff472 longer timeout for tests
to allow for slowdown with sanitizers enabled
2022-02-19 16:06:29 +00:00
John Cupitt dc4b6c920b make zlib into a top-level dependency
many packages need it, not just rsvg
2022-02-19 16:05:18 +00:00
Kleis Auke Wolthuizen 3da7caee6c
LSan improvements and fixes (#2672)
* LSan: remove GLib suppression

* LSan: disable the fast unwinder to get full stacktraces

* Move ASan/UBSan fuzzer options to CI configuration

* LSan: remove EOLed python2.7 suppression

* LSan: remove libstdc++ suppression

* LSan: add libx265 to suppression file

* Try to reproduce small memleak

* Try a possible patch

* Skip test if `im_benchmark` is not available

* CI: upgrade Clang version to 13

* CI: correct job names

* Meson: increase the timeout for tests

* README.md: correct Meson invocation
2022-02-19 15:13:42 +00:00
John Cupitt 094e84d6d1 relax accuracy test for 16 bit heic
since it seems rather poor with the libheif on ci runner
2022-02-18 11:55:27 +00:00
John Cupitt e985e23c09
add HDR support to heif load/save (#2596)
* heifload done, doing save

* finish save, add tests, docs
2022-02-18 11:16:15 +00:00
John Cupitt 0388e54bd2 looks like meson must be installed with sudo for ci 2022-02-18 11:09:39 +00:00
John Cupitt 504cea50a5 check pip3 install on runner 2022-02-18 11:06:35 +00:00
John Cupitt aef5f25167 in ci, don't install meson as root 2022-02-18 10:56:49 +00:00
John Cupitt fea9d068c4 oop, forgot a sudo 2022-02-18 10:52:58 +00:00
John Cupitt e14deaf5c6 disable introspection for CI build 2022-02-18 10:48:22 +00:00
John Cupitt 3a7465cf79 make goi optional 2022-02-18 10:40:56 +00:00
John Cupitt 1be213052b install our own meson 2022-02-18 10:36:50 +00:00
John Cupitt dab51ef92f display meson error logs 2022-02-18 10:22:07 +00:00
John Cupitt ecba43c21c try with meson 0.53
since github workflow meson is rather old
2022-02-18 10:21:26 +00:00