Merge remote-tracking branch 'origin/7.28'

Conflicts:
	libvips/iofuncs/generate.c
	libvips/iofuncs/init.c
	po/vips7.pot
This commit is contained in:
John Cupitt 2012-07-09 14:09:25 +01:00
commit 87e37e83e2
4 changed files with 114 additions and 96 deletions

View File

@ -17,6 +17,7 @@
- remove references to the static bicubic interpolator from the docs - remove references to the static bicubic interpolator from the docs
- fix temp file handling on Windows --- was breaking for non-vips files - fix temp file handling on Windows --- was breaking for non-vips files
over 100mb over 100mb
- better support for using images from multiple threads
18/6/12 started 7.28.8 18/6/12 started 7.28.8
- fixes for centos5 portability - fixes for centos5 portability

View File

@ -36,9 +36,6 @@
TODO TODO
should the cache be thread-private? or lock? or say operations can
only be made from the main thread?
listen for invalidate listen for invalidate
will we need to drop all on exit? unclear will we need to drop all on exit? unclear
@ -540,6 +537,8 @@ vips_cache_get_first( void )
void void
vips_cache_drop_all( void ) vips_cache_drop_all( void )
{ {
g_mutex_lock( vips_cache_lock );
if( vips_cache_table ) { if( vips_cache_table ) {
VipsOperation *operation; VipsOperation *operation;
@ -555,6 +554,8 @@ vips_cache_drop_all( void )
VIPS_FREEF( g_hash_table_unref, vips_cache_table ); VIPS_FREEF( g_hash_table_unref, vips_cache_table );
} }
g_mutex_unlock( vips_cache_lock );
} }
static void static void
@ -800,10 +801,17 @@ vips_cache_get_max( void )
int int
vips_cache_get_size( void ) vips_cache_get_size( void )
{ {
guint size;
g_mutex_lock( vips_cache_lock );
size = 0;
if( vips_cache_table ) if( vips_cache_table )
return( g_hash_table_size( vips_cache_table ) ); size = g_hash_table_size( vips_cache_table );
else
return( 0 ); g_mutex_unlock( vips_cache_lock );
return( size );
} }
/** /**

View File

@ -147,6 +147,7 @@ vips__link_break( VipsImage *image_up, VipsImage *image_down )
{ {
g_assert( image_up ); g_assert( image_up );
g_assert( image_down ); g_assert( image_down );
g_assert( g_slist_find( image_up->downstream, image_down ) ); g_assert( g_slist_find( image_up->downstream, image_down ) );
g_assert( g_slist_find( image_down->upstream, image_up ) ); g_assert( g_slist_find( image_down->upstream, image_up ) );
@ -170,18 +171,21 @@ vips__link_break_rev( VipsImage *image_down, VipsImage *image_up )
return( vips__link_break( image_up, image_down ) ); return( vips__link_break( image_up, image_down ) );
} }
/* An VipsImage is going ... break all links. /* A VipsImage is going ... break all links.
*/ */
void void
vips__link_break_all( VipsImage *image ) vips__link_break_all( VipsImage *image )
{ {
g_mutex_lock( vips__global_lock ); g_mutex_lock( vips__global_lock );
vips_slist_map2( image->upstream, vips_slist_map2( image->upstream,
(VipsSListMap2Fn) vips__link_break, image, NULL ); (VipsSListMap2Fn) vips__link_break, image, NULL );
vips_slist_map2( image->downstream, vips_slist_map2( image->downstream,
(VipsSListMap2Fn) vips__link_break_rev, image, NULL ); (VipsSListMap2Fn) vips__link_break_rev, image, NULL );
g_mutex_unlock( vips__global_lock ); g_mutex_unlock( vips__global_lock );
g_mutex_unlock( vips__global_lock );
g_assert( !image->upstream ); g_assert( !image->upstream );
g_assert( !image->downstream ); g_assert( !image->downstream );
} }
@ -251,10 +255,15 @@ vips__link_map( VipsImage *image, gboolean upstream,
map.a = (void *) &images; map.a = (void *) &images;
map.b = NULL; map.b = NULL;
g_mutex_lock( vips__global_lock );
vips__link_mapp( image, &map ); vips__link_mapp( image, &map );
for( p = images; p; p = p->next ) for( p = images; p; p = p->next )
g_object_ref( p->data ); g_object_ref( p->data );
g_mutex_unlock( vips__global_lock );
result = vips_slist_map2( images, fn, a, b ); result = vips_slist_map2( images, fn, a, b );
for( p = images; p; p = p->next ) for( p = images; p; p = p->next )
g_object_unref( p->data ); g_object_unref( p->data );

View File

@ -333,7 +333,7 @@ msgstr ""
#: ../libvips/arithmetic/measure.c:236 ../libvips/conversion/extract.c:214 #: ../libvips/arithmetic/measure.c:236 ../libvips/conversion/extract.c:214
#: ../libvips/conversion/black.c:128 ../libvips/conversion/copy.c:331 #: ../libvips/conversion/black.c:128 ../libvips/conversion/copy.c:331
#: ../libvips/conversion/embed.c:536 ../libvips/foreign/rawload.c:122 #: ../libvips/conversion/embed.c:536 ../libvips/foreign/rawload.c:122
#: ../libvips/iofuncs/image.c:847 #: ../libvips/iofuncs/image.c:858
msgid "Width" msgid "Width"
msgstr "" msgstr ""
@ -344,7 +344,7 @@ msgstr ""
#: ../libvips/arithmetic/measure.c:243 ../libvips/conversion/extract.c:221 #: ../libvips/arithmetic/measure.c:243 ../libvips/conversion/extract.c:221
#: ../libvips/conversion/black.c:135 ../libvips/conversion/copy.c:338 #: ../libvips/conversion/black.c:135 ../libvips/conversion/copy.c:338
#: ../libvips/conversion/embed.c:543 ../libvips/foreign/rawload.c:129 #: ../libvips/conversion/embed.c:543 ../libvips/foreign/rawload.c:129
#: ../libvips/iofuncs/image.c:854 #: ../libvips/iofuncs/image.c:865
msgid "Height" msgid "Height"
msgstr "" msgstr ""
@ -783,7 +783,7 @@ msgid "cast an image"
msgstr "" msgstr ""
#: ../libvips/conversion/cast.c:482 ../libvips/conversion/copy.c:352 #: ../libvips/conversion/cast.c:482 ../libvips/conversion/copy.c:352
#: ../libvips/iofuncs/image.c:868 #: ../libvips/iofuncs/image.c:879
msgid "Format" msgid "Format"
msgstr "" msgstr ""
@ -819,7 +819,7 @@ msgstr ""
#: ../libvips/conversion/im_grid.c:164 #: ../libvips/conversion/im_grid.c:164
#: ../libvips/convolution/im_contrast_surface.c:140 #: ../libvips/convolution/im_contrast_surface.c:140
#: ../libvips/iofuncs/sinkscreen.c:1082 ../libvips/iofuncs/image.c:712 #: ../libvips/iofuncs/sinkscreen.c:1082 ../libvips/iofuncs/image.c:710
#: ../libvips/morphology/im_rank.c:342 #: ../libvips/morphology/im_rank.c:342
msgid "bad parameters" msgid "bad parameters"
msgstr "" msgstr ""
@ -887,23 +887,23 @@ msgstr ""
#: ../libvips/conversion/black.c:129 ../libvips/conversion/copy.c:332 #: ../libvips/conversion/black.c:129 ../libvips/conversion/copy.c:332
#: ../libvips/conversion/embed.c:537 ../libvips/foreign/rawload.c:123 #: ../libvips/conversion/embed.c:537 ../libvips/foreign/rawload.c:123
#: ../libvips/iofuncs/image.c:848 #: ../libvips/iofuncs/image.c:859
msgid "Image width in pixels" msgid "Image width in pixels"
msgstr "" msgstr ""
#: ../libvips/conversion/black.c:136 ../libvips/conversion/copy.c:339 #: ../libvips/conversion/black.c:136 ../libvips/conversion/copy.c:339
#: ../libvips/conversion/embed.c:544 ../libvips/foreign/rawload.c:130 #: ../libvips/conversion/embed.c:544 ../libvips/foreign/rawload.c:130
#: ../libvips/iofuncs/image.c:855 #: ../libvips/iofuncs/image.c:866
msgid "Image height in pixels" msgid "Image height in pixels"
msgstr "" msgstr ""
#: ../libvips/conversion/black.c:142 ../libvips/conversion/copy.c:345 #: ../libvips/conversion/black.c:142 ../libvips/conversion/copy.c:345
#: ../libvips/foreign/rawload.c:136 ../libvips/iofuncs/image.c:861 #: ../libvips/foreign/rawload.c:136 ../libvips/iofuncs/image.c:872
msgid "Bands" msgid "Bands"
msgstr "" msgstr ""
#: ../libvips/conversion/black.c:143 ../libvips/conversion/copy.c:346 #: ../libvips/conversion/black.c:143 ../libvips/conversion/copy.c:346
#: ../libvips/foreign/rawload.c:137 ../libvips/iofuncs/image.c:862 #: ../libvips/foreign/rawload.c:137 ../libvips/iofuncs/image.c:873
msgid "Number of bands in image" msgid "Number of bands in image"
msgstr "" msgstr ""
@ -919,59 +919,59 @@ msgstr ""
msgid "Swap bytes in image between little and big-endian" msgid "Swap bytes in image between little and big-endian"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:353 ../libvips/iofuncs/image.c:869 #: ../libvips/conversion/copy.c:353 ../libvips/iofuncs/image.c:880
msgid "Pixel format in image" msgid "Pixel format in image"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:359 ../libvips/iofuncs/image.c:875 #: ../libvips/conversion/copy.c:359 ../libvips/iofuncs/image.c:886
msgid "Coding" msgid "Coding"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:360 ../libvips/iofuncs/image.c:876 #: ../libvips/conversion/copy.c:360 ../libvips/iofuncs/image.c:887
msgid "Pixel coding" msgid "Pixel coding"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:366 ../libvips/iofuncs/image.c:882 #: ../libvips/conversion/copy.c:366 ../libvips/iofuncs/image.c:893
msgid "Interpretation" msgid "Interpretation"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:367 ../libvips/iofuncs/image.c:883 #: ../libvips/conversion/copy.c:367 ../libvips/iofuncs/image.c:894
msgid "Pixel interpretation" msgid "Pixel interpretation"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:373 ../libvips/foreign/tiffsave.c:251 #: ../libvips/conversion/copy.c:373 ../libvips/foreign/tiffsave.c:251
#: ../libvips/iofuncs/image.c:889 #: ../libvips/iofuncs/image.c:900
msgid "Xres" msgid "Xres"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:374 ../libvips/foreign/tiffsave.c:252 #: ../libvips/conversion/copy.c:374 ../libvips/foreign/tiffsave.c:252
#: ../libvips/iofuncs/image.c:890 #: ../libvips/iofuncs/image.c:901
msgid "Horizontal resolution in pixels/mm" msgid "Horizontal resolution in pixels/mm"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:380 ../libvips/foreign/tiffsave.c:258 #: ../libvips/conversion/copy.c:380 ../libvips/foreign/tiffsave.c:258
#: ../libvips/iofuncs/image.c:896 #: ../libvips/iofuncs/image.c:907
msgid "Yres" msgid "Yres"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:381 ../libvips/foreign/tiffsave.c:259 #: ../libvips/conversion/copy.c:381 ../libvips/foreign/tiffsave.c:259
#: ../libvips/iofuncs/image.c:897 #: ../libvips/iofuncs/image.c:908
msgid "Vertical resolution in pixels/mm" msgid "Vertical resolution in pixels/mm"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:387 ../libvips/iofuncs/image.c:903 #: ../libvips/conversion/copy.c:387 ../libvips/iofuncs/image.c:914
msgid "Xoffset" msgid "Xoffset"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:388 ../libvips/iofuncs/image.c:904 #: ../libvips/conversion/copy.c:388 ../libvips/iofuncs/image.c:915
msgid "Horizontal offset of origin" msgid "Horizontal offset of origin"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:394 ../libvips/iofuncs/image.c:910 #: ../libvips/conversion/copy.c:394 ../libvips/iofuncs/image.c:921
msgid "Yoffset" msgid "Yoffset"
msgstr "" msgstr ""
#: ../libvips/conversion/copy.c:395 ../libvips/iofuncs/image.c:911 #: ../libvips/conversion/copy.c:395 ../libvips/iofuncs/image.c:922
msgid "Vertical offset of origin" msgid "Vertical offset of origin"
msgstr "" msgstr ""
@ -1153,7 +1153,7 @@ msgstr ""
msgid "command failed: \"%s\"" msgid "command failed: \"%s\""
msgstr "" msgstr ""
#: ../libvips/conversion/embed.c:430 ../libvips/iofuncs/image.c:1779 #: ../libvips/conversion/embed.c:430 ../libvips/iofuncs/image.c:1790
msgid "bad dimensions" msgid "bad dimensions"
msgstr "" msgstr ""
@ -1293,7 +1293,7 @@ msgstr ""
#: ../libvips/foreign/jpegload.c:245 ../libvips/foreign/rawload.c:115 #: ../libvips/foreign/jpegload.c:245 ../libvips/foreign/rawload.c:115
#: ../libvips/foreign/matload.c:128 ../libvips/foreign/fitssave.c:128 #: ../libvips/foreign/matload.c:128 ../libvips/foreign/fitssave.c:128
#: ../libvips/foreign/radsave.c:119 ../libvips/foreign/vipssave.c:125 #: ../libvips/foreign/radsave.c:119 ../libvips/foreign/vipssave.c:125
#: ../libvips/foreign/pngsave.c:166 ../libvips/iofuncs/image.c:917 #: ../libvips/foreign/pngsave.c:166 ../libvips/iofuncs/image.c:928
msgid "Filename" msgid "Filename"
msgstr "" msgstr ""
@ -1706,11 +1706,11 @@ msgstr ""
msgid "load raw data from a file" msgid "load raw data from a file"
msgstr "" msgstr ""
#: ../libvips/foreign/rawload.c:143 ../libvips/iofuncs/image.c:945 #: ../libvips/foreign/rawload.c:143 ../libvips/iofuncs/image.c:956
msgid "Size of header" msgid "Size of header"
msgstr "" msgstr ""
#: ../libvips/foreign/rawload.c:144 ../libvips/iofuncs/image.c:946 #: ../libvips/foreign/rawload.c:144 ../libvips/iofuncs/image.c:957
msgid "Offset in bytes from start of file" msgid "Offset in bytes from start of file"
msgstr "" msgstr ""
@ -1856,7 +1856,7 @@ msgid "save image to vips file"
msgstr "" msgstr ""
#: ../libvips/foreign/fits.c:178 ../libvips/foreign/matlab.c:106 #: ../libvips/foreign/fits.c:178 ../libvips/foreign/matlab.c:106
#: ../libvips/iofuncs/vips.c:143 ../libvips/mosaicing/global_balance.c:1181 #: ../libvips/iofuncs/vips.c:147 ../libvips/mosaicing/global_balance.c:1181
#: ../libvips/mosaicing/global_balance.c:1516 #: ../libvips/mosaicing/global_balance.c:1516
#, c-format #, c-format
msgid "unable to open \"%s\"" msgid "unable to open \"%s\""
@ -1876,7 +1876,7 @@ msgstr ""
msgid "unsupported bitpix %d\n" msgid "unsupported bitpix %d\n"
msgstr "" msgstr ""
#: ../libvips/foreign/fits.c:576 ../libvips/iofuncs/vips.c:171 #: ../libvips/foreign/fits.c:576 ../libvips/iofuncs/vips.c:175
#, c-format #, c-format
msgid "unable to write to \"%s\"" msgid "unable to write to \"%s\""
msgstr "" msgstr ""
@ -2282,57 +2282,57 @@ msgstr ""
msgid "write failed" msgid "write failed"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:286 #: ../libvips/iofuncs/vips.c:290
#, c-format #, c-format
msgid "\"%s\" is not a VIPS image" msgid "\"%s\" is not a VIPS image"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:374 #: ../libvips/iofuncs/vips.c:378
msgid "unable to read history" msgid "unable to read history"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:407 #: ../libvips/iofuncs/vips.c:411
msgid "more than a 10 megabytes of XML? sufferin' succotash!" msgid "more than a 10 megabytes of XML? sufferin' succotash!"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:455 #: ../libvips/iofuncs/vips.c:459
msgid "incorrect namespace in XML" msgid "incorrect namespace in XML"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:579 #: ../libvips/iofuncs/vips.c:583
msgid "error transforming from save format" msgid "error transforming from save format"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:680 #: ../libvips/iofuncs/vips.c:684
#, c-format #, c-format
msgid "unable to set property \"%s\" to value \"%s\"." msgid "unable to set property \"%s\" to value \"%s\"."
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:728 #: ../libvips/iofuncs/vips.c:732
msgid "error transforming to save format" msgid "error transforming to save format"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:776 ../libvips/iofuncs/vips.c:973 #: ../libvips/iofuncs/vips.c:780 ../libvips/iofuncs/vips.c:985
#: ../libvips/iofuncs/window.c:237 #: ../libvips/iofuncs/window.c:237
msgid "file has been truncated" msgid "file has been truncated"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:890 ../libvips/iofuncs/vips.c:899 #: ../libvips/iofuncs/vips.c:894 ../libvips/iofuncs/vips.c:903
#: ../libvips/iofuncs/vips.c:922 #: ../libvips/iofuncs/vips.c:926
msgid "xml save error" msgid "xml save error"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:959 #: ../libvips/iofuncs/vips.c:971
#, c-format #, c-format
msgid "unable to read header for \"%s\"" msgid "unable to read header for \"%s\""
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:972 ../libvips/iofuncs/window.c:236 #: ../libvips/iofuncs/vips.c:984 ../libvips/iofuncs/window.c:236
#, c-format #, c-format
msgid "unable to read data for \"%s\", %s" msgid "unable to read data for \"%s\", %s"
msgstr "" msgstr ""
#: ../libvips/iofuncs/vips.c:984 #: ../libvips/iofuncs/vips.c:996
#, c-format #, c-format
msgid "error reading XML: %s" msgid "error reading XML: %s"
msgstr "" msgstr ""
@ -2350,7 +2350,7 @@ msgstr ""
msgid "unknown band format %d" msgid "unknown band format %d"
msgstr "" msgstr ""
#: ../libvips/iofuncs/header.c:611 ../libvips/iofuncs/generate.c:343 #: ../libvips/iofuncs/header.c:611 ../libvips/iofuncs/generate.c:358
msgid "too many images" msgid "too many images"
msgstr "" msgstr ""
@ -2364,134 +2364,134 @@ msgstr ""
msgid "field \"%s\" is of type %s, not %s" msgid "field \"%s\" is of type %s, not %s"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:293 #: ../libvips/iofuncs/image.c:290
msgid "unable to close fd" msgid "unable to close fd"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:373 #: ../libvips/iofuncs/image.c:370
#, c-format #, c-format
msgid "%dx%d %s, %d band, %s" msgid "%dx%d %s, %d band, %s"
msgid_plural "%dx%d %s, %d bands, %s" msgid_plural "%dx%d %s, %d bands, %s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../libvips/iofuncs/image.c:403 #: ../libvips/iofuncs/image.c:400
#, c-format #, c-format
msgid " %s, %d band, %s" msgid " %s, %d band, %s"
msgid_plural " %s, %d bands, %s" msgid_plural " %s, %d bands, %s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../libvips/iofuncs/image.c:531 #: ../libvips/iofuncs/image.c:528
#, c-format #, c-format
msgid "%s %s: %d threads, %d x %d tiles, groups of %d scanlines" msgid "%s %s: %d threads, %d x %d tiles, groups of %d scanlines"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:544 #: ../libvips/iofuncs/image.c:541
#, c-format #, c-format
msgid "%s %s: %d%% complete" msgid "%s %s: %d%% complete"
msgstr "" msgstr ""
#. Spaces at end help to erase the %complete message we overwrite. #. Spaces at end help to erase the %complete message we overwrite.
#. #.
#: ../libvips/iofuncs/image.c:561 #: ../libvips/iofuncs/image.c:558
#, c-format #, c-format
msgid "%s %s: done in %ds \n" msgid "%s %s: done in %ds \n"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:740 #: ../libvips/iofuncs/image.c:738
#, c-format #, c-format
msgid "unable to open \"%s\", file too short" msgid "unable to open \"%s\", file too short"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:750 #: ../libvips/iofuncs/image.c:748
#, c-format #, c-format
msgid "%s is longer than expected" msgid "%s is longer than expected"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:767 #: ../libvips/iofuncs/image.c:765
#, c-format #, c-format
msgid "bad mode \"%s\"" msgid "bad mode \"%s\""
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:822 #: ../libvips/iofuncs/image.c:832
msgid "image class" msgid "image class"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:918 #: ../libvips/iofuncs/image.c:929
msgid "Image filename" msgid "Image filename"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:924 #: ../libvips/iofuncs/image.c:935
msgid "Mode" msgid "Mode"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:925 #: ../libvips/iofuncs/image.c:936
msgid "Open mode" msgid "Open mode"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:931 #: ../libvips/iofuncs/image.c:942
msgid "Kill" msgid "Kill"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:932 #: ../libvips/iofuncs/image.c:943
msgid "Block evaluation on this image" msgid "Block evaluation on this image"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:938 #: ../libvips/iofuncs/image.c:949
msgid "Demand style" msgid "Demand style"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:939 #: ../libvips/iofuncs/image.c:950
msgid "Preferred demand style for this image" msgid "Preferred demand style for this image"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:952 #: ../libvips/iofuncs/image.c:963
msgid "Foreign buffer" msgid "Foreign buffer"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:953 #: ../libvips/iofuncs/image.c:964
msgid "Pointer to foreign pixels" msgid "Pointer to foreign pixels"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:1217 #: ../libvips/iofuncs/image.c:1228
#, c-format #, c-format
msgid "killed for image \"%s\"" msgid "killed for image \"%s\""
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:1817 #: ../libvips/iofuncs/image.c:1828
msgid "bad image descriptor" msgid "bad image descriptor"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:1875 ../libvips/iofuncs/generate.c:682 #: ../libvips/iofuncs/image.c:1886 ../libvips/iofuncs/generate.c:697
#, c-format #, c-format
msgid "unable to output to a %s image" msgid "unable to output to a %s image"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:1930 #: ../libvips/iofuncs/image.c:1950
#, c-format #, c-format
msgid "auto-rewind for %s failed" msgid "auto-rewind for %s failed"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:1993 ../libvips/iofuncs/image.c:2188 #: ../libvips/iofuncs/image.c:2006 ../libvips/iofuncs/image.c:2201
#: ../libvips/iofuncs/image.c:2205 #: ../libvips/iofuncs/image.c:2218
msgid "no image data" msgid "no image data"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:2061 ../libvips/iofuncs/image.c:2228 #: ../libvips/iofuncs/image.c:2074 ../libvips/iofuncs/image.c:2241
msgid "image not readable" msgid "image not readable"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:2082 ../libvips/iofuncs/image.c:2258 #: ../libvips/iofuncs/image.c:2095 ../libvips/iofuncs/image.c:2271
#: ../libvips/iofuncs/image.c:2267 #: ../libvips/iofuncs/image.c:2280
msgid "image already written" msgid "image already written"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:2106 ../libvips/iofuncs/image.c:2279 #: ../libvips/iofuncs/image.c:2119 ../libvips/iofuncs/image.c:2292
msgid "image not writeable" msgid "image not writeable"
msgstr "" msgstr ""
#: ../libvips/iofuncs/image.c:2152 #: ../libvips/iofuncs/image.c:2165
msgid "bad file type" msgid "bad file type"
msgstr "" msgstr ""
@ -2781,11 +2781,11 @@ msgstr ""
msgid "too much data" msgid "too much data"
msgstr "" msgstr ""
#: ../libvips/iofuncs/generate.c:606 #: ../libvips/iofuncs/generate.c:621
msgid "demand hint not set" msgid "demand hint not set"
msgstr "" msgstr ""
#: ../libvips/iofuncs/generate.c:625 ../libvips/iofuncs/generate.c:650 #: ../libvips/iofuncs/generate.c:640 ../libvips/iofuncs/generate.c:665
msgid "generate() called twice" msgid "generate() called twice"
msgstr "" msgstr ""
@ -2841,67 +2841,67 @@ msgstr ""
msgid "unable to mmap \"%s\" to same address" msgid "unable to mmap \"%s\" to same address"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:366 #: ../libvips/iofuncs/init.c:368
msgid "evaluate with N concurrent threads" msgid "evaluate with N concurrent threads"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:369 #: ../libvips/iofuncs/init.c:371
msgid "set tile width to N (DEBUG)" msgid "set tile width to N (DEBUG)"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:372 #: ../libvips/iofuncs/init.c:374
msgid "set tile height to N (DEBUG)" msgid "set tile height to N (DEBUG)"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:375 #: ../libvips/iofuncs/init.c:377
msgid "set thinstrip height to N (DEBUG)" msgid "set thinstrip height to N (DEBUG)"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:378 #: ../libvips/iofuncs/init.c:380
msgid "set fatstrip height to N (DEBUG)" msgid "set fatstrip height to N (DEBUG)"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:381 #: ../libvips/iofuncs/init.c:383
msgid "show progress feedback" msgid "show progress feedback"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:384 #: ../libvips/iofuncs/init.c:386
msgid "leak-check on exit" msgid "leak-check on exit"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:387 #: ../libvips/iofuncs/init.c:389
msgid "images larger than N are decompressed to disc" msgid "images larger than N are decompressed to disc"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:390 #: ../libvips/iofuncs/init.c:392
msgid "disable vectorised versions of operations" msgid "disable vectorised versions of operations"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:393 #: ../libvips/iofuncs/init.c:395
msgid "cache at most N operations" msgid "cache at most N operations"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:396 #: ../libvips/iofuncs/init.c:398
msgid "cache at most N bytes in memory" msgid "cache at most N bytes in memory"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:399 #: ../libvips/iofuncs/init.c:401
msgid "allow at most N open files" msgid "allow at most N open files"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:402 #: ../libvips/iofuncs/init.c:404
msgid "trace operation cache" msgid "trace operation cache"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:405 #: ../libvips/iofuncs/init.c:407
msgid "dump operation cache on exit" msgid "dump operation cache on exit"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:428 #: ../libvips/iofuncs/init.c:430
msgid "VIPS Options" msgid "VIPS Options"
msgstr "" msgstr ""
#: ../libvips/iofuncs/init.c:428 #: ../libvips/iofuncs/init.c:430
msgid "Show VIPS options" msgid "Show VIPS options"
msgstr "" msgstr ""