* webpsave: switch to sink_disc
* fix some warnings
* distinguish between animated and single image write
* fix some formatting issues
* add missing comments
* fix webpsave_mime
* don't use sink_disc for single image webp write
* fix potential segv/double free
* update changelog
* remove leftover function declaration
* Revert "don't use sink_disc for single image webp write"
This reverts commit a75922ca93ee8987fa5e1ffc52b68e22bd6fb1fb.
* implement review feedback
* adjust to a column size of 80
* get contiguous RGB(A) buffer directly from VipsRegion
* Revert "get contiguous RGB(A) buffer directly from VipsRegion"
This reverts commit 84fc10e52fb223f0208c605dde92d3f821ceee0e.
* accumulate image data directly in frame_bytes buffer
* switch WebP back to Webp naming scheme
* rename page_index to page_number
* revise formatting
Add a check that header and load methods agree on the demand hint, and
make sure all loaders pass.
If they disagree, you can get bad performance in some cases, since the
pipeline can be built from the header dhint.
* move tiff decompress outside lock
Most time in TIFF read is spent in decompression. If we move this
outside the lock, we can get a useful speedup.
This commit adds the machinery to move the lock to before decompress, so
jp2k decompression is now threaded.
Before:
```
$ vips copy wtc.jpg x.tif[tile,compression=jp2k]
$ time vips avg x.tif
117.249845
real 0m15.085s
user 0m16.155s
sys 0m0.109s
```
After:
```
$ time vips avg x.tif
117.249845
real 0m1.207s
user 0m18.384s
sys 0m0.369s
```
* start moving jpg decode outside the lock
* move jpeg decompress outside the lock
seems to work
* add some more tile size checks
double-check jpeg tile size before decode
* fix tiffload demand hinting
We were not setting the hint correctly in header load, and we were not
hinting smalltile for tiled TIFFs.
SOme combinations of high bitdepth images with low bitdepth PNG save could
produce incorrect images, for example saving a 16-bit fourier image as 1-bit.
Having a different colorspace and chroma subsampling just because the
source image happens to be an even or odd number of pixels is surprising
and hard to debug, so let's remove it.