diff --git a/libvips/conversion/gamma.c b/libvips/conversion/gamma.c index 2063b7bb..4fe6549f 100644 --- a/libvips/conversion/gamma.c +++ b/libvips/conversion/gamma.c @@ -49,6 +49,8 @@ #endif /*HAVE_CONFIG_H*/ #include +#include + #include #include "pconversion.h" diff --git a/libvips/iofuncs/threadpool.c b/libvips/iofuncs/threadpool.c index 1f0d883c..0dc08f75 100644 --- a/libvips/iofuncs/threadpool.c +++ b/libvips/iofuncs/threadpool.c @@ -192,7 +192,7 @@ vips_g_thread_new( const char *domain, GThreadFunc func, gpointer data ) #ifdef HAVE_THREAD_NEW thread = g_thread_try_new( domain, vips_thread_run, info, &error ); #else - thread = g_thread_create( vips_thread_run, data, info, &error ); + thread = g_thread_create( vips_thread_run, info, TRUE, &error ); #endif if( !thread ) { diff --git a/po/POTFILES.in b/po/POTFILES.in index 589b7ec7..04156c66 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -57,9 +57,9 @@ libvips/colour/LCh2UCS.c libvips/colour/XYZ2scRGB.c libvips/colour/dECMC.c libvips/colour/scRGB2sRGB.c +libvips/conversion/bandrank.c libvips/conversion/flip.c libvips/conversion/bandmean.c -libvips/conversion/gammacorrect.c libvips/conversion/falsecolour.c libvips/conversion/wrap.c libvips/conversion/bandary.c @@ -74,6 +74,7 @@ libvips/conversion/bandjoin.c libvips/conversion/bandbool.c libvips/conversion/copy.c libvips/conversion/rot.c +libvips/conversion/rot45.c libvips/conversion/replicate.c libvips/conversion/zoom.c libvips/conversion/join.c @@ -83,22 +84,23 @@ libvips/conversion/tilecache.c libvips/conversion/embed.c libvips/conversion/cache.c libvips/conversion/ifthenelse.c +libvips/conversion/gamma.c libvips/conversion/recomb.c libvips/conversion/sequential.c +libvips/convolution/correlation.c libvips/convolution/im_conv.c -libvips/convolution/im_fastcor.c -libvips/convolution/im_contrast_surface.c -libvips/convolution/im_compass.c +libvips/convolution/compass.c libvips/convolution/convolution.c -libvips/convolution/im_spcor.c +libvips/convolution/fastcor.c +libvips/convolution/convsep.c libvips/convolution/conv.c -libvips/convolution/im_gradcor.c +libvips/convolution/morph.c +libvips/convolution/gaussblur.c +libvips/convolution/spcor.c libvips/convolution/im_conv_f.c libvips/convolution/im_aconvsep.c -libvips/convolution/convol_dispatch.c +libvips/convolution/sharpen.c libvips/convolution/im_aconv.c -libvips/convolution/im_addgnoise.c -libvips/convolution/im_sharpen.c libvips/create/other_dispatch.c libvips/create/gaussnoise.c libvips/create/grey.c @@ -111,158 +113,12 @@ libvips/create/sines.c libvips/create/black.c libvips/create/zone.c libvips/create/buildlut.c +libvips/create/logmat.c libvips/create/tonelut.c libvips/create/invertlut.c libvips/create/text.c libvips/create/identity.c -libvips/dummy.c -libvips/foreign/rawsave.c -libvips/foreign/radload.c -libvips/foreign/tiffload.c -libvips/foreign/magick2vips.c -libvips/foreign/ppmsave.c -libvips/foreign/vipsload.c -libvips/foreign/pngload.c -libvips/foreign/analyze2vips.c -libvips/foreign/webpsave.c -libvips/foreign/jpeg2vips.c -libvips/foreign/radiance.c -libvips/foreign/matrixsave.c -libvips/foreign/webpload.c -libvips/foreign/openexrload.c -libvips/foreign/tiffsave.c -libvips/foreign/dzsave.c -libvips/foreign/vips2webp.c -libvips/foreign/analyzeload.c -libvips/foreign/jpegsave.c -libvips/foreign/vips2jpeg.c -libvips/foreign/ppm.c -libvips/foreign/fitsload.c -libvips/foreign/ppmload.c -libvips/foreign/csvload.c -libvips/foreign/magickload.c -libvips/foreign/webp2vips.c -libvips/foreign/openslideload.c -libvips/foreign/csvsave.c -libvips/foreign/jpegload.c -libvips/foreign/rawload.c -libvips/foreign/openexr2vips.c -libvips/foreign/tiff2vips.c -libvips/foreign/csv.c -libvips/foreign/matload.c -libvips/foreign/fitssave.c -libvips/foreign/radsave.c -libvips/foreign/vipssave.c -libvips/foreign/fits.c -libvips/foreign/openslide2vips.c -libvips/foreign/pngsave.c -libvips/foreign/vips2tiff.c -libvips/foreign/foreign.c -libvips/foreign/vipspng.c -libvips/foreign/matrixload.c -libvips/foreign/matlab.c -libvips/freq_filt/im_phasecor_fft.c -libvips/freq_filt/im_freqflt.c -libvips/freq_filt/im_fractsurf.c -libvips/freq_filt/im_freq_mask.c -libvips/freq_filt/freq_dispatch.c -libvips/freq_filt/im_disp_ps.c -libvips/freq_filt/im_fwfft.c -libvips/freq_filt/im_invfftr.c -libvips/freq_filt/fmaskcir.c -libvips/freq_filt/fmask4th.c -libvips/freq_filt/im_invfft.c -libvips/histogram/hist_local.c -libvips/histogram/stdif.c -libvips/histogram/hist_match.c -libvips/histogram/hist_ismonotonic.c -libvips/histogram/hist_plot.c -libvips/histogram/percent.c -libvips/histogram/maplut.c -libvips/histogram/hist_norm.c -libvips/histogram/hist_cum.c -libvips/histogram/hist_unary.c -libvips/histogram/hist_equal.c -libvips/histogram/histogram.c -libvips/inplace/im_draw_point.c -libvips/inplace/im_draw_line.c -libvips/inplace/im_draw_rect.c -libvips/inplace/im_draw_image.c -libvips/inplace/draw.c -libvips/inplace/flood.c -libvips/inplace/im_draw_circle.c -libvips/inplace/im_draw_mask.c -libvips/inplace/im_draw_smudge.c -libvips/inplace/inplace_dispatch.c -libvips/iofuncs/vector.c -libvips/iofuncs/operation.c -libvips/iofuncs/sinkdisc.c -libvips/iofuncs/vips.c -libvips/iofuncs/buffer.c -libvips/iofuncs/enumtypes.c -libvips/iofuncs/semaphore.c -libvips/iofuncs/sinkscreen.c -libvips/iofuncs/window.c -libvips/iofuncs/sinkmemory.c -libvips/iofuncs/header.c -libvips/iofuncs/type.c -libvips/iofuncs/image.c -libvips/iofuncs/system.c -libvips/iofuncs/region.c -libvips/iofuncs/sink.c -libvips/iofuncs/error.c -libvips/iofuncs/util.c -libvips/iofuncs/buf.c -libvips/iofuncs/base64.c -libvips/iofuncs/generate.c -libvips/iofuncs/mapfile.c -libvips/iofuncs/rect.c -libvips/iofuncs/init.c -libvips/iofuncs/object.c -libvips/iofuncs/threadpool.c -libvips/iofuncs/memory.c -libvips/iofuncs/cache.c -libvips/morphology/im_cntlines.c -libvips/morphology/morph_dispatch.c -libvips/morphology/im_rank_image.c -libvips/morphology/morphology.c -libvips/morphology/im_zerox.c -libvips/morphology/im_label_regions.c -libvips/morphology/im_rank.c -libvips/mosaicing/mosaic1.c -libvips/mosaicing/im_clinear.c -libvips/mosaicing/match.c -libvips/mosaicing/mosaicing_dispatch.c -libvips/mosaicing/im_improve.c -libvips/mosaicing/im_tbmosaic.c -libvips/mosaicing/im_tbmerge.c -libvips/mosaicing/global_balance.c -libvips/mosaicing/im_align_bands.c -libvips/mosaicing/im_lrmerge.c -libvips/mosaicing/im_initialize.c -libvips/mosaicing/im_avgdxdy.c -libvips/mosaicing/im_maxpos_subpel.c -libvips/mosaicing/im_lrmosaic.c -libvips/mosaicing/im_lrcalcon.c -libvips/mosaicing/im_chkpair.c -libvips/mosaicing/im_remosaic.c -libvips/mosaicing/im_tbcalcon.c -libvips/resample/quadratic.c -libvips/resample/shrink.c -libvips/resample/resample.c -libvips/resample/transform.c -libvips/resample/affine.c -libvips/resample/interpolate.c -libvips/resample/similarity.c -libvips/video/video_dispatch.c -libvips/video/im_video_test.c -libvips/video/im_video_v4l1.c -tools/edvips.c -tools/find_mosaic.c -tools/header.c -tools/mergeup.c -tools/vips.c -tools/vipsthumbnail.c +libvips/create/gaussmat.c libvipsCC/VDisplay.cc libvipsCC/VError.cc libvipsCC/VImage.cc @@ -279,11 +135,11 @@ libvipsCC/include/vips/VDisplay.h libvipsCC/include/vips/VError.h libvipsCC/include/vips/vipsc++.h libvipsCC/include/vips/VMask.h -libvips/cimg/CImg.h libvips/colour/pcolour.h libvips/conversion/pconversion.h libvips/conversion/bandary.h libvips/convolution/pconvolution.h +libvips/convolution/correlation.h libvips/create/point.h libvips/create/pcreate.h libvips/foreign/dbh.h @@ -293,6 +149,7 @@ libvips/foreign/analyze2vips.h libvips/foreign/vipspng.h libvips/foreign/ppm.h libvips/foreign/csv.h +libvips/foreign/vipsjpeg.h libvips/foreign/openexr2vips.h libvips/foreign/openslide2vips.h libvips/foreign/radiance.h @@ -323,7 +180,6 @@ libvips/include/vips/generate.h libvips/include/vips/arithmetic.h libvips/include/vips/version.h libvips/include/vips/util.h -libvips/include/vips/almostdeprecated.h libvips/include/vips/colour.h libvips/include/vips/threadpool.h libvips/include/vips/vector.h @@ -343,8 +199,8 @@ libvips/include/vips/debug.h libvips/include/vips/interpolate.h libvips/include/vips/private.h libvips/include/vips/format.h +libvips/include/vips/gate.h libvips/include/vips/object.h -libvips/include/vips/deprecated.h libvips/include/vips/inlines.h libvips/include/vips/foreign.h libvips/include/vips/resample.h diff --git a/po/README b/po/README index 824bdc19..44425a7f 100644 --- a/po/README +++ b/po/README @@ -34,7 +34,7 @@ find */* -name "*.cpp" >> po/POTFILES.in intltool-update --pot - make a new vips7.34.pot translation template from the sources + make a new vips7.xx.pot translation template from the sources :%s/msgstr ""/msgstr "Malkovich"/ :%s/msgstr\[0\] ""/msgstr[0] "Malkovich"/ @@ -57,7 +57,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" - edits to make vips7.34.pot into test.po + edits to make vips7.xx.pot into test.po msgfmt -cv -o /dev/null test.po diff --git a/tools/Makefile.am b/tools/Makefile.am index a579c81f..bfc5a5d1 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -30,6 +30,7 @@ bin_SCRIPTS = \ vips-7.37 EXTRA_DIST = \ + vipsprofile \ vips-7.37 \ light_correct.in \ shrink_width.in \ diff --git a/tools/vipsprofile b/tools/vipsprofile index bb4e1186..c2781f9f 100755 --- a/tools/vipsprofile +++ b/tools/vipsprofile @@ -54,6 +54,9 @@ class Event: def __init__(self, thread, gate_name, start, stop): self.thread = thread self.gate_name = gate_name + match = re.match('(.*?): (.*)', gate_name) + if match: + self.short_gate_name = match.group(2) self.start = start self.stop = stop @@ -91,10 +94,10 @@ with ReadFile(input_filename) as rf: rf.getnext() while True: - match = re.match('gate: (.*?): (.*)', rf.line) + match = re.match('gate: (.*)', rf.line) if not match: break - gate_name = match.group(2) + gate_name = match.group(1) rf.getnext() match = re.match('start:', rf.line) @@ -156,7 +159,7 @@ for thread in threads: thread.alive = thread.stop - thread.start # hide very short-lived threads - thread.hide = thread.alive < 0.001 + thread.hide = thread.alive < 0.01 print 'name\t\talive\twait%\twork%\tunknown%' for thread in threads: @@ -206,7 +209,9 @@ for thread in threads: if not event.gate_name in gate_positions: for gate_name in gate_positions: if is_overlap(thread.events, event.gate_name, gate_name): - print 'gate', event.gate_name, 'and', gate_name, 'overlap' + print 'gate overlap on thread', thread.thread_name + print '\t', event.gate_name + print '\t', gate_name break gate_positions[event.gate_name] = 0 @@ -294,11 +299,11 @@ def draw_event(ctx, event): if not event.wait and not event.work: xbearing, ybearing, twidth, theight, xadvance, yadvance = \ - ctx.text_extents(event.gate_name) + ctx.text_extents(event.short_gate_name) ctx.move_to(left + width / 2 - twidth / 2, top + 3 * BAR_HEIGHT) ctx.set_source_rgb(1.00, 0.83, 0.00) - ctx.show_text(event.gate_name) + ctx.show_text(event.short_gate_name) for thread in threads: if thread.hide: