711 Commits

Author SHA1 Message Date
John Cupitt
cb96ed814e redo im_cntlines() as a class 2014-01-17 11:18:05 +00:00
John Cupitt
bbd5cbfb44 add vips_thread_shutdown()
You now need to call vips_thread_shutdown() from all threads you create
yourself just before they exit. This gives vips a chance to free any
thread-private memory and to write out profiling data. libvips will
complain noisily if you fail to do this. You can harmlessly call
vips_thread_shutdown() more than once if you wish.

libvips will call vips_thread_shutdown for you automatically for the main
thread (the one that calls vips_shutdown()) and for threads it creates
directly itself.
2014-01-15 14:07:13 +00:00
John Cupitt
a181ef1f2c stuff 2014-01-14 13:47:11 +00:00
John Cupitt
1090f48900 fix two tiny memleaks 2014-01-14 12:07:50 +00:00
John Cupitt
68a816f104 try again on the buffer cache assert 2014-01-09 16:56:44 +00:00
John Cupitt
72271dae6d more compact trace output 2014-01-08 13:07:56 +00:00
John Cupitt
cc8e06db0b fix a race in buffer.c 2014-01-07 21:31:00 +00:00
John Cupitt
451eff58b1 im_fwfft() is a class 2014-01-03 16:23:44 +00:00
John Cupitt
9c30242745 fix erroneous leak report from vipsprofile 2013-12-18 12:50:22 +00:00
John Cupitt
2c5ee332f0 make the buffer recycle list per image
so now recycle lists are short, scale with pipeline complexity, and
buffers are always appropriately sized for the image instead of being
slowly sized up to the max size for the pipeline

before:

$ vips sharpen k2.jpg x.jpg --radius 20
memory: high-water mark 38.99 MB

after:

$ vips sharpen k2.jpg x.jpg --radius 20
memory: high-water mark 29.46 MB
2013-12-18 09:54:26 +00:00
John Cupitt
0d79221853 memuse improvements
- conv is now SMALLTILE
- more instrumentation
- better buffer recycling
- quicker buf freeing
2013-12-17 15:21:21 +00:00
John Cupitt
a9fd318712 run over memuse for sharpen 2013-12-16 09:22:05 +00:00
John Cupitt
bfcd50acf2 works!
reusing work, though memuse seems high?
2013-12-13 16:51:01 +00:00
John Cupitt
82df44f9d6 clean up buffer recycle fix 2013-12-13 14:05:10 +00:00
John Cupitt
c782150a6d fix sharing detection (again) 2013-12-13 12:20:05 +00:00
John Cupitt
c0b8b67987 better memuse graph 2013-12-09 15:14:54 +00:00
John Cupitt
b3d31ced79 vipsprofile graphs memory use
marks malloc/free as well
2013-12-09 13:45:41 +00:00
John Cupitt
466f25cf28 added memory logging to --vips-profile
though the analysis program doesn't understand yet
2013-12-09 10:04:24 +00:00
John Cupitt
6ae1888ab3 delay region resource unref to reduce malloc churn
we were unreffing windows and buffers attached to regions on
vips_region_region() etc.

when these regions were reinitialised later, fresh buffers were
allocated causing a lot of churn
2013-12-07 11:38:32 +00:00
John Cupitt
fd47e26164 oops seq mode wrong 2013-12-05 10:35:48 +00:00
John Cupitt
f387d13106 Merge remote-tracking branch 'origin/7.36' 2013-12-01 12:30:12 +00:00
John Cupitt
d7037618fc use a define for PATH_MAX
add VIPS_PATH_MAX, a long-enough-for-almost-any-path buffer size

we ought to switch to dynamic paths really ... do this when we fix
filename encoding
2013-12-01 12:18:16 +00:00
John Cupitt
1da3064e7b Merge remote-tracking branch 'origin/7.36' 2013-11-29 22:15:04 +00:00
John Cupitt
fdad999f47 fix dist and build
was broken on old glibs
2013-11-29 14:28:55 +00:00
John Cupitt
45c8be3db6 small polish 2013-11-29 09:40:54 +00:00
John Cupitt
53562905d4 remove use of PATH_MAX
helps gnu hurd, thanks Jay
2013-11-28 09:05:53 +00:00
John Cupitt
853124757b small polishes 2013-11-27 17:31:07 +00:00
John Cupitt
eb3ad6d64f add lots of instrumentation
also svg output
2013-11-26 14:57:56 +00:00
John Cupitt
3a195d4d5c support main thread gates 2013-11-26 13:01:40 +00:00
John Cupitt
b746ab36d6 works! 2013-11-25 14:45:06 +00:00
John Cupitt
d49eed6d20 Merge remote-tracking branch 'origin/master' into gate 2013-11-25 08:55:41 +00:00
John Cupitt
5b7b3cb591 small fixes for clang static analyzer
a few small things clang static analyzer found
2013-11-22 14:34:13 +00:00
John Cupitt
54dcea8c3d fix some clang warnings 2013-11-21 17:43:28 +00:00
John Cupitt
d366320cb1 cleanups, vipsprofile.py now works 2013-11-20 21:35:18 +00:00
John Cupitt
693ed09edd add --vips-profile
only added a few gates so far, try a visualiser next
2013-11-18 18:31:49 +00:00
John Cupitt
0257dda270 first hack at supporting XYZ PCS
still need to fix new encode / decode
2013-11-12 14:58:59 +00:00
John Cupitt
6351bad027 Merge remote-tracking branch 'origin/7.36' 2013-11-09 16:03:24 +00:00
John Cupitt
63c1efc3b4 fix blocking of caching of seq load
we were setting nocache too late for the cache to see, move nocache
logic to _build()
2013-11-09 11:38:32 +00:00
John Cupitt
7dfab19bb0 Merge remote-tracking branch 'origin/rot45' 2013-10-29 10:14:34 +00:00
John Cupitt
ebae3f7ed3 use g_mkdir()
we had our own compat stuff, use the g_() one instead
2013-10-28 21:21:19 +00:00
John Cupitt
68c5f1909a redo im_convsep() as a class
and im_convsep_f()
2013-10-25 14:37:43 +01:00
John Cupitt
e74a0b71d9 almost done compass 2013-10-24 14:46:08 +01:00
John Cupitt
5475cabbf2 redo im_dilate()/erode() as classes
just a thin wrapper over the vips7 operations for now
2013-10-23 13:15:31 +01:00
John Cupitt
12cf71a6a9 combin copy_fields and demand_hint
We had two API calls, vips_image_copy_fields() and vips_demand_hint().
They are now combined in the single vips_image_pipeline() call.

All operations are now slightly smaller and simpler.
2013-10-22 09:29:40 +01:00
John Cupitt
f7f061d265 vips_init() does ABI checking
just checks sizeof(VipsObject) for now
2013-10-20 16:46:55 +01:00
John Cupitt
67dff74b2c rot45 works 2013-10-19 18:26:46 +01:00
John Cupitt
ae37c8eb6f start rot45 2013-10-15 21:21:35 +01:00
John Cupitt
57b6622690 track local mem allocs for debugging 2013-10-02 21:20:41 +01:00
John Cupitt
45a9e417f4 start vips_conv() 2013-10-01 14:26:13 +01:00
John Cupitt
440b800e0e add a new unbuffered seq mode
things like

	vips copy huge.png x.v

now run with only a small line cache
2013-09-29 11:04:11 +01:00