Merge remote-tracking branch 'origin/7.30'

Conflicts:
	ChangeLog
	configure.in
	libvips/conversion/tilecache.c
	po/vips7.pot
This commit is contained in:
John Cupitt 2012-11-14 14:52:27 +00:00
commit 9abb7a1fd1
8 changed files with 82 additions and 45 deletions

View File

@ -21,10 +21,17 @@
- better --help output for vips driver prog
- vipsthumbnail -o allows absolute file names
14/11/12 started 7.30.6
- capture tiff warnings earlier
14/11/12 started 7.30.5
- fix libtool version mess up (thanks Benjamin)
2/10/12 started 7.30.4
- remove options from format string in .dzi (thanks Martin)
- vipsCC.pc required the wrong version of vips (thanks Alessandro)
- larger max tile size for dzsave
- linecache is 50% larger to leave some slop room
13/9/12 started 7.30.3
- linecache sized itself too large

1
TODO
View File

@ -13,6 +13,7 @@
perhaps it should be part of vips.c
- check libtool version number, should be binary-compat with 7.30
- quadratic doesn't work for order 3

View File

@ -21,6 +21,8 @@
* - use a hash table instead of a list
* 13/9/12
* - oops, linecache was oversized
* 12/11/12
* - make linecache 50% larger to give some slop room
* 8/10/12
* - make it optionally threaded
*/
@ -849,13 +851,14 @@ vips_line_cache_build( VipsObject *object )
*/
block_cache->tile_width = block_cache->in->Xsize;
/* Enough lines for two complete buffers.
/* Enough lines for two complete buffers would be exactly right. Make
* it 3 to give us some slop room.
*
* This can go up with request size, see vips_line_cache_gen().
*/
vips_get_tile_size( block_cache->in,
&tile_width, &tile_height, &nlines );
block_cache->max_tiles = 2 * (1 + nlines / block_cache->tile_height);
block_cache->max_tiles = 3 * (1 + nlines / block_cache->tile_height);
VIPS_DEBUG_MSG( "vips_line_cache_build: max_tiles = %d, "
"tile_height = %d\n",

View File

@ -36,8 +36,7 @@ extern "C" {
extern const char *vips__foreign_tiff_suffs[];
void vips__thandler_error( const char *module, const char *fmt, va_list ap );
void vips__thandler_warning( const char *module, const char *fmt, va_list ap );
void vips__tiff_init( void );
int vips__tiff_write( VipsImage *in, const char *filename,
VipsForeignTiffCompression compression, int Q,

View File

@ -229,13 +229,13 @@ typedef struct {
* more than one thread, but vips_error and vips_warn have mutexes in, so that's
* OK.
*/
void
static void
vips__thandler_error( const char *module, const char *fmt, va_list ap )
{
vips_verror( module, fmt, ap );
}
void
static void
vips__thandler_warning( const char *module, const char *fmt, va_list ap )
{
char buf[256];
@ -244,6 +244,16 @@ vips__thandler_warning( const char *module, const char *fmt, va_list ap )
vips_warn( module, "%s", buf );
}
/* Call this during startup. Other libraries may be using libtiff and we want
* to capture any messages they send as well.
*/
void
vips__tiff_init( void )
{
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
}
/* Test for field exists.
*/
static int
@ -1506,8 +1516,7 @@ istiffpyramid( const char *name )
{
TIFF *tif;
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
vips__tiff_init();
if( (tif = get_directory( name, 2 )) ) {
// We can see page 2 ... assume it is.
@ -1529,8 +1538,7 @@ vips__tiff_read( const char *filename, VipsImage *out, int page )
printf( "tiff2vips: libtiff starting for %s\n", filename );
#endif /*DEBUG*/
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
vips__tiff_init();
if( !(rtiff = readtiff_new( filename, out, page )) )
return( -1 );
@ -1558,8 +1566,7 @@ vips__tiff_read_header( const char *filename, VipsImage *out, int page )
{
ReadTiff *rtiff;
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
vips__tiff_init();
if( !(rtiff = readtiff_new( filename, out, page )) )
return( -1 );
@ -1583,10 +1590,7 @@ vips__istifftiled( const char *filename )
TIFF *tif;
gboolean tiled;
/* Override the default TIFF error handler.
*/
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
vips__tiff_init();
if( !(tif = TIFFOpen( filename, "rm" )) ) {
vips_error_clear();

View File

@ -123,6 +123,13 @@ vips_foreign_load_tiff_class_init( VipsForeignLoadTiffClass *class )
VipsForeignClass *foreign_class = (VipsForeignClass *) class;
VipsForeignLoadClass *load_class = (VipsForeignLoadClass *) class;
/* Other libraries may be using libtiff, we want to capture tiff
* warning and error as soon as we can.
*
* This class init will be triggered during startup.
*/
vips__tiff_init();
gobject_class->set_property = vips_object_set_property;
gobject_class->get_property = vips_object_get_property;

View File

@ -1474,7 +1474,6 @@ gather_pyramid( TiffWrite *tw )
return( 0 );
}
int
vips__tiff_write( VipsImage *in, const char *filename,
VipsForeignTiffCompression compression, int Q,
@ -1493,10 +1492,7 @@ vips__tiff_write( VipsImage *in, const char *filename,
printf( "tiff2vips: libtiff version is \"%s\"\n", TIFFGetVersion() );
#endif /*DEBUG*/
/* Override the default TIFF error handler.
*/
TIFFSetErrorHandler( vips__thandler_error );
TIFFSetWarningHandler( vips__thandler_warning );
vips__tiff_init();
/* Check input image.
*/

View File

@ -10,10 +10,14 @@ msgstr ""
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=glib&keywords=I18N+L10N&component=general\n"
<<<<<<< HEAD
<<<<<<< HEAD
"POT-Creation-Date: 2012-09-08 14:01+0100\n"
=======
"POT-Creation-Date: 2012-10-01 14:17+0100\n"
>>>>>>> origin/master
=======
"POT-Creation-Date: 2012-11-14 09:36+0000\n"
>>>>>>> origin/7.30
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -400,10 +404,14 @@ msgstr ""
#: ../libvips/conversion/bandjoin.c:171 ../libvips/conversion/copy.c:321
#: ../libvips/conversion/rot.c:359 ../libvips/conversion/replicate.c:196
<<<<<<< HEAD
<<<<<<< HEAD
#: ../libvips/conversion/tilecache.c:355 ../libvips/conversion/embed.c:523
=======
#: ../libvips/conversion/tilecache.c:357 ../libvips/conversion/embed.c:523
>>>>>>> origin/master
=======
#: ../libvips/conversion/tilecache.c:359 ../libvips/conversion/embed.c:523
>>>>>>> origin/7.30
#: ../libvips/conversion/cache.c:100 ../libvips/conversion/recomb.c:203
#: ../libvips/conversion/sequential.c:273 ../libvips/foreign/foreign.c:1413
#: ../libvips/resample/resample.c:89
@ -576,10 +584,14 @@ msgstr ""
#: ../libvips/conversion/extract.c:198 ../libvips/conversion/extract.c:357
#: ../libvips/conversion/copy.c:322 ../libvips/conversion/rot.c:360
<<<<<<< HEAD
<<<<<<< HEAD
#: ../libvips/conversion/replicate.c:197 ../libvips/conversion/tilecache.c:356
=======
#: ../libvips/conversion/replicate.c:197 ../libvips/conversion/tilecache.c:358
>>>>>>> origin/master
=======
#: ../libvips/conversion/replicate.c:197 ../libvips/conversion/tilecache.c:360
>>>>>>> origin/7.30
#: ../libvips/conversion/embed.c:524 ../libvips/conversion/cache.c:101
#: ../libvips/conversion/sequential.c:274
msgid "Input image"
@ -1116,6 +1128,7 @@ msgstr ""
msgid "Top edge of sub in main"
msgstr ""
<<<<<<< HEAD
<<<<<<< HEAD
#: ../libvips/conversion/tilecache.c:351 ../libvips/conversion/cache.c:96
msgid "cache an image"
@ -1166,53 +1179,60 @@ msgstr ""
#: ../libvips/conversion/tilecache.c:699
=======
#: ../libvips/conversion/tilecache.c:353 ../libvips/conversion/cache.c:96
=======
#: ../libvips/conversion/tilecache.c:355 ../libvips/conversion/cache.c:96
>>>>>>> origin/7.30
msgid "cache an image"
msgstr ""
#: ../libvips/conversion/tilecache.c:363 ../libvips/conversion/cache.c:113
#: ../libvips/conversion/tilecache.c:365 ../libvips/conversion/cache.c:113
#: ../libvips/conversion/sequential.c:286 ../libvips/foreign/tiffsave.c:222
#: ../libvips/foreign/dzsave.c:920
#: ../libvips/foreign/dzsave.c:927
msgid "Tile height"
msgstr ""
#: ../libvips/conversion/tilecache.c:364 ../libvips/conversion/cache.c:114
#: ../libvips/conversion/tilecache.c:366 ../libvips/conversion/cache.c:114
#: ../libvips/conversion/sequential.c:287 ../libvips/foreign/tiffsave.c:223
#: ../libvips/foreign/dzsave.c:921
#: ../libvips/foreign/dzsave.c:928
msgid "Tile height in pixels"
msgstr ""
#: ../libvips/conversion/tilecache.c:370
#: ../libvips/conversion/tilecache.c:372
msgid "Strategy"
msgstr ""
#: ../libvips/conversion/tilecache.c:371
#: ../libvips/conversion/tilecache.c:373
msgid "Expected access pattern"
msgstr ""
#: ../libvips/conversion/tilecache.c:540
#: ../libvips/conversion/tilecache.c:542
msgid "cache an image as a set of tiles"
msgstr ""
#: ../libvips/conversion/tilecache.c:544 ../libvips/conversion/cache.c:106
#: ../libvips/foreign/tiffsave.c:215 ../libvips/foreign/dzsave.c:913
#: ../libvips/conversion/tilecache.c:546 ../libvips/conversion/cache.c:106
#: ../libvips/foreign/tiffsave.c:215 ../libvips/foreign/dzsave.c:920
msgid "Tile width"
msgstr ""
#: ../libvips/conversion/tilecache.c:545 ../libvips/conversion/cache.c:107
#: ../libvips/foreign/tiffsave.c:216 ../libvips/foreign/dzsave.c:914
#: ../libvips/conversion/tilecache.c:547 ../libvips/conversion/cache.c:107
#: ../libvips/foreign/tiffsave.c:216 ../libvips/foreign/dzsave.c:921
msgid "Tile width in pixels"
msgstr ""
#: ../libvips/conversion/tilecache.c:551 ../libvips/conversion/cache.c:120
#: ../libvips/conversion/tilecache.c:553 ../libvips/conversion/cache.c:120
msgid "Max tiles"
msgstr ""
#: ../libvips/conversion/tilecache.c:552 ../libvips/conversion/cache.c:121
#: ../libvips/conversion/tilecache.c:554 ../libvips/conversion/cache.c:121
msgid "Maximum number of tiles to cache"
msgstr ""
<<<<<<< HEAD
#: ../libvips/conversion/tilecache.c:706
>>>>>>> origin/master
=======
#: ../libvips/conversion/tilecache.c:709
>>>>>>> origin/7.30
msgid "cache an image as a set of lines"
msgstr ""
@ -1589,48 +1609,48 @@ msgstr ""
msgid "Write a bigtiff image"
msgstr ""
#: ../libvips/foreign/dzsave.c:243
#: ../libvips/foreign/dzsave.c:245
#, c-format
msgid "Directory \"%s_files\" exists"
msgstr ""
#: ../libvips/foreign/dzsave.c:812
#: ../libvips/foreign/dzsave.c:819
msgid "overlap must be less than tile width and height"
msgstr ""
#: ../libvips/foreign/dzsave.c:865
#: ../libvips/foreign/dzsave.c:872
msgid "save image to deep zoom format"
msgstr ""
#: ../libvips/foreign/dzsave.c:875 ../libvips/foreign/dzsave.c:906
#: ../libvips/foreign/dzsave.c:882 ../libvips/foreign/dzsave.c:913
msgid "Base name"
msgstr ""
#: ../libvips/foreign/dzsave.c:876 ../libvips/foreign/dzsave.c:907
#: ../libvips/foreign/dzsave.c:883 ../libvips/foreign/dzsave.c:914
msgid "Base name to save to"
msgstr ""
#: ../libvips/foreign/dzsave.c:882
#: ../libvips/foreign/dzsave.c:889
msgid "suffix"
msgstr ""
#: ../libvips/foreign/dzsave.c:883
#: ../libvips/foreign/dzsave.c:890
msgid "Filename suffix for tiles"
msgstr ""
#: ../libvips/foreign/dzsave.c:889
#: ../libvips/foreign/dzsave.c:896
msgid "Overlap"
msgstr ""
#: ../libvips/foreign/dzsave.c:890
#: ../libvips/foreign/dzsave.c:897
msgid "Tile overlap in pixels"
msgstr ""
#: ../libvips/foreign/dzsave.c:896
#: ../libvips/foreign/dzsave.c:903
msgid "Tile size"
msgstr ""
#: ../libvips/foreign/dzsave.c:897
#: ../libvips/foreign/dzsave.c:904
msgid "Tile size in pixels"
msgstr ""