Commit Graph

6140 Commits

Author SHA1 Message Date
John Cupitt
6f0002c023 add plumbing for stream minimise
and ::finish becomes a vfunc
2019-10-13 20:59:02 +01:00
John Cupitt
a8fd5602ea disable jpg descriptor test
since we don't have minimise support in stream yet
2019-10-12 17:39:10 +01:00
John Cupitt
5f6911d516 add thumbnail_stream
this works:

	$ cat k2.jpg | vips thumbnail_stream [descriptor=0] x.jpg 200
	$ vipsheader x.jpg
	temp-0: 141x200 uchar, 3 bands, srgb, jpegload
2019-10-12 17:37:31 +01:00
John Cupitt
4d3f66fe33 add stdout write
this now works:

	$ vips invert k2.jpg .jpg | vips invert stdin x.jpg

"stdin" means read from stdin, ".jpg" means write to stdout in JPG
format
2019-10-12 14:12:01 +01:00
John Cupitt
a2d57180b1 jpg stream output passes tests 2019-10-12 13:11:22 +01:00
John Cupitt
d991b73ac5 jpegsave_stream mostly done
$ vips jpegsave_buffer x.jpg

doesn't work though -- need to rethink how output blobs are made
2019-10-11 18:17:42 +01:00
John Cupitt
20cb0da247 test suite passes
with all jpegload coming via VipsStreamInput
2019-10-11 14:03:10 +01:00
John Cupitt
6c1d7db31b remove old jpeg load stuff
it's just stream now

works on buffer, but seems to fail on

	vipsheader йцук.jpg

curiously
2019-10-11 09:43:12 +01:00
John Cupitt
ad822109d4 input works
this works now:

	cat k2.jpg | vips invert - x.jpg

output next
2019-10-11 07:51:43 +01:00
John Cupitt
442720a0a1 add magic "-" stdin filename
this almost works!

$ vips invert - x.jpg < k2.jpg
2019-10-11 05:38:58 +01:00
John Cupitt
3a2bebdffb jpegload_stream registers 2019-10-10 22:02:39 +01:00
John Cupitt
387cafa738 add jpegload_stream 2019-10-10 20:42:39 +01:00
John Cupitt
0307184050 new input stream done
needs testing ... also needs minimise support, and sniffing
2019-10-09 17:42:06 +01:00
John Cupitt
372bbc8020 paste stream.c back in
revise stream.h, implement it next
2019-10-08 17:52:30 +01:00
John Cupitt
be7c1404c3 add a note about pdfium minimise 2019-10-07 17:19:12 +01:00
John Cupitt
f98adc1a0a strange fuzzer failure
possible fix
2019-10-07 15:57:00 +01:00
John Cupitt
71b557cfc1 remove "minimise" handler from tiffload
We need to be able to disconnect the underlying fd and we can't do that
without making our own input handler for files. Implement this when we add
input objects.
2019-10-07 15:42:29 +01:00
John Cupitt
c92a71cb98 fix pngload segv on header error 2019-10-07 14:58:49 +01:00
John Cupitt
3510c515f2 oop deleted one png init too many 2019-10-07 13:30:19 +01:00
John Cupitt
fef3dae892 Revert "fix up png restart"
This reverts commit 120ba3289c.
2019-10-07 13:15:29 +01:00
John Cupitt
120ba3289c fix up png restart
hopefully ... we needed a png_init_io() as well
2019-10-07 12:11:45 +01:00
John Cupitt
2d374c3114 pngload supports restart after minimise
plus a test
2019-10-07 10:01:15 +01:00
John Cupitt
3eca1ff3ee heifload passes the new descriptor tests 2019-10-06 19:29:10 +01:00
John Cupitt
3f1eb2c7dd test pdfload in te new desc tester
and fix a couple of small issues
2019-10-06 18:27:40 +01:00
John Cupitt
09b4ce6d9b test gifload for fd leaks 2019-10-06 10:55:19 +01:00
John Cupitt
efcd31b498 add something to test the new restart system
do multiple renders from one seq iage, check fds are opened and closed
as expected

see https://github.com/libvips/libvips/issues/1370
2019-10-06 07:25:09 +01:00
John Cupitt
c1921b0ad1 add a test for file descriptors
verify new loader behaviour with minimise
2019-10-04 17:44:25 +01:00
John Cupitt
c328b089b1 jpegload restart after minimise
after minimise, we need to reopen the underlying file

passes pytest but a proper test is still to come

https://github.com/libvips/libvips/issues/1370
2019-10-03 16:40:52 +01:00
John Cupitt
0830875917 add restart to heifload
heifload will restart read if necessary after minimise

see https://github.com/libvips/libvips/issues/1370
2019-10-03 13:16:37 +01:00
John Cupitt
1ef1b2d987 much faster handling of missing heif thumbnails
Fetching the thumbnail from a heif image without a thumbnail used to
reselect the image for each scanline, which was horribly slow.

Thanks Kleis!
2019-09-30 14:58:43 +01:00
John Cupitt
a92f0ed504 smarter heif thumbnail selection in thumbnail
We were checking for thumbnail width and height > target width and
height, but of course we can have one of target width or height very
large if we are leaving that axis to float in size.

Instead, calculate a shrink from the heif thumbnail size and see if that is
>= 1.0, ie. we can generate output without upsizing.
2019-09-30 14:34:11 +01:00
John Cupitt
4f1e57c040 add restart after minimise support to gifload
see https://github.com/libvips/libvips/issues/1370#issuecomment-533169856
2019-09-26 18:07:18 +01:00
John Cupitt
5df173dd15
Merge pull request #1433 from lovell/silence-gcc-warnings
Silence a couple of GCC compiler warnings
2019-09-20 17:38:10 +01:00
Lovell Fuller
02c42fdeba Silence a couple of GCC compiler warnings 2019-09-20 17:08:25 +01:00
John Cupitt
e16e4abeda make pdfload header a proper vfunc
_buffer was not inheriting it correctly
2019-09-19 18:09:19 +01:00
John Cupitt
0323b77666 pdfload reopens after minimise if necessary
We were using "minimise" to close pdf input early, but this will break
programs which make several output images from one sequential input
image. For example, loading all pages of a PDF as a toilet-roll image,
then saving pages as a set of PNGs.

This patch adds vfuncs for open and close, and makes _generate reopen
the input if necessary.

We will need similar patches for pdfiumload, gifload, gifnsload,
tiffload etc.

see https://github.com/libvips/libvips/issues/1370#issuecomment-533169856
2019-09-19 17:04:42 +01:00
John Cupitt
2472f52123 default to open issues rather than all issues 2019-09-19 06:05:42 +01:00
John Cupitt
bebe923664 better fuzz badge 2019-09-19 05:55:34 +01:00
John Cupitt
06a13f59f2
Merge pull request #1431 from libvips/add-opencollective-link
Add link to opencollective
2019-09-18 15:30:51 +01:00
Lovell Fuller
3de1c3874a
Add link to opencollective
Links the libvips GitHub repo to https://opencollective.com/libvips
2019-09-18 15:02:55 +01:00
John Cupitt
f01023e222 fix a compiler warning
gcc could warn (incorrectly) about used before set in text.c
2019-09-17 13:32:37 +01:00
John Cupitt
3b0d44be51 fix ref leak in thumbnail
we were accidentally reusing a t[] with RAD images
2019-09-14 00:22:36 +01:00
John Cupitt
d8cb96581d Merge branch 'revise-svgload' 2019-09-12 13:11:17 +01:00
John Cupitt
efdf33f3de add vips_error_buffer_copy()
Add vips_error_buffer_copy() to fix a race in error buffer fetch.

See https://github.com/libvips/libvips/issues/1423

Thanks @dineshkannaa
2019-09-12 09:49:49 +01:00
John Cupitt
e505d56079 experiment with svgload as a sequential loader
see https://github.com/libvips/libvips/issues/1425
2019-09-11 16:58:20 +01:00
John Cupitt
d290c971ab reorganise vipspng a little
so we only set max malloc in one place

see https://github.com/libvips/libvips/pull/1424
2019-09-11 14:56:32 +01:00
John Cupitt
64898330e4
Merge pull request #1424 from OrderMyGear/png-max-malloc-buffer
also set png max chunk malloc when reading buffer
2019-09-11 14:22:33 +01:00
John Cupitt
0b57e2cdc2 note mozjpeg settings in docs
see https://github.com/libvips/libvips/issues/1422
2019-09-11 09:29:43 +01:00
Matt Drollette
e233698c2b also set png max chunk malloc when reading buffer 2019-09-10 12:31:11 -05:00
John Cupitt
7b2729adfa fix up nifti load/save
- use double for all floating point scalar metadata, like other loaders
- remove use of stray "n" property
2019-09-09 16:06:22 +01:00