John Cupitt
f74d6c795d
Merge branch 'master' into add-libnsgif
2021-03-07 14:37:14 +00:00
Kleis Auke Wolthuizen
3ed50e0427
Cleanup configure.ac and #ifdef's
2021-03-06 15:47:07 +01:00
John Cupitt
799f720c13
Merge branch 'master' into add-libnsgif
2021-02-27 23:57:14 +00:00
John Cupitt
a7acdf567c
source rewind reenables sniff mode
...
so you can rewind most sources after reading (though not pipes)
2021-01-21 14:30:46 +00:00
John Cupitt
98be88bf80
add sourceginput
...
This is a source which wraps a GInputStream. You can use this to eg.
efficiently load a PNG file from a GFile object.
2020-12-28 15:14:36 +00:00
Kleis Auke Wolthuizen
e437805fc1
Move descriptor test to vips_source_seek_real
...
Since subclasses could override the seek method without setting the file descriptor.
2020-12-22 13:34:14 +01:00
Kleis Auke Wolthuizen
2eeeedc957
Avoid seeking on bad file descriptors
2020-12-22 11:20:03 +01:00
Kleis Auke Wolthuizen
cc8f93a3ff
Ensure memory source is non-null
2020-12-22 11:19:52 +01:00
John Cupitt
acc579cc9d
force binary mode for connections on win
...
stdin / stdout (for example) are created in text mode by default on
win. We need to flip them to binary mode for connection read and write.
See https://stackoverflow.com/questions/65014352/pipe-libvips-cli-output-to-stdout-in-windows
2020-11-26 10:15:48 +00:00
John Cupitt
0131d4d3eb
fix vips7 webp load
...
webp load using the vips7 interface was crashing, thanks barryspearce
see https://github.com/libvips/libvips/issues/1860
2020-10-19 14:34:02 +01:00
John Cupitt
edbe9bf8ef
revise pipe sources (again)
...
Simplify and cleanup.
2020-10-04 14:05:53 +01:00
John Cupitt
0ee8b1e844
improve seek on pipes
...
There were a few issues in VipsSource around seeking on pipes. With this
patch, EOF detection is better, and pipe sources automatically turn into memory
sources when EOF is hit.
see https://github.com/libvips/libvips/issues/1829
2020-10-03 18:25:24 +01:00
John Cupitt
e44b781971
revise gifnsload.c for source API
2020-07-07 15:50:44 +01:00
Kleis Auke Wolthuizen
9246094033
Fix function pointer cast issues
...
It is undefined behavior in C and C++ to cast a function pointer
to another type and call it that way. This does work in most native
platforms, however, despite it being UB, but in WASM it can fail.
See:
https://emscripten.org/docs/porting/guidelines/function_pointer_issues.html
2020-06-30 13:35:41 +02:00
Kleis Auke Wolthuizen
6fc2015783
Remove use of varargs in vips_*_open
...
This matches the declaration of g_open and helps tools (such as ASan) when
running on non-native platforms.
2020-04-27 11:56:32 +02:00
John Cupitt
6117310c18
improve file open error handling
...
better behaviour if you try to open a directory as an image
2020-03-05 15:30:37 +00:00
John Cupitt
68f766b482
Merge branch '8.9'
2020-03-05 15:03:00 +00:00
John Cupitt
b3a7929247
detect read errors in sniff correctly
...
we has a signed/unsigned mixup :(
2020-03-05 15:02:16 +00:00
John Cupitt
f866799474
move pipe read limit to gint64
...
We had a mix of size_t and gint64. Just use gint64 everywhere.
2020-02-05 14:42:03 +00:00
John Cupitt
cf5cad2b3e
make pipe read limit configurable
...
We had a 1gb limit on the amount of data we would read from a pipe
before giving up.
This patch adds vips_pipe_read_limit_set() and makes this limit
configurable.
See: https://github.com/libvips/libvips/issues/1540
2020-02-03 16:57:10 +00:00
John Cupitt
3862b636e4
remove some dbg code
...
accidentally left in, thanks Kleis
2020-01-10 05:03:48 +00:00
John Cupitt
96cdc5ef01
revise docs for source / target
2019-12-30 16:28:39 +00:00
John Cupitt
63d54e5df2
final code cleanups after stream -> source rename
2019-12-30 14:23:51 +00:00
John Cupitt
4c5873809f
experiment with renaming stream
...
rename as VipsConnection, VipsSource, VipsTarget etc.
see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619
renamed with this script:
```
set -e
edit() {
sed -i -E "$1" rename
}
for i in $*; do
cp $i rename
edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
edit s/VIPS_STREAMO/VIPS_TARGET/g
edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
edit s/VIPS_STREAMI/VIPS_SOURCE/g
edit s/VIPS_STREAM/VIPS_CONNECTION/g
edit s/vips_streamou/vips_target_custom/g
edit s/vips_streamo/vips_target/g
edit s/vips_streamiu/vips_source_custom/g
edit s/vips_streami/vips_source/g
edit s/vips_stream/vips_connection/g
edit s/VipsStreamou/VipsTargetCustom/g
edit s/VipsStreamo/VipsTarget/g
edit s/VipsStreamiu/VipsSourceCustom/g
edit s/VipsStreami/VipsSource/g
edit s/VipsStream/VipsConnection/g
# eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"
edit s/streamou/target_custom/g
edit s/streamo/target/g
edit s/streamiu/source_custom/g
edit s/streami/source/g
# various identifiers which also change
edit s/is_a_stream/is_a_source/g
edit s/find_load_stream/find_load_source/g
edit s/find_save_stream/find_save_target/g
edit s/new_from_stream/new_from_source/g
edit s/write_to_stream/write_to_target/g
edit s/vips_thumbnail_stream/vips_thumbnail_source/g
# eg. vips_webpload_stream
edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"
# eg. vips_webpsave_stream
edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"
mv rename $i
done
```
2019-12-29 21:40:21 +00:00