Merge branch '8.10'

This commit is contained in:
John Cupitt 2020-08-28 17:47:40 +01:00
commit 2c4c4132e8
5 changed files with 16 additions and 5 deletions

View File

@ -7,6 +7,7 @@
- fix regression in tiff pyramid thumbnailing [tand826]
- stop 0-length buffer being passed to imagemagick [lovell]
- convert no-profile CMYK to RGB on save [augustocdias]
- ensure SVG loader skips input with chars outside x09-x7F range [lovell]
24/1/20 started 8.10.0
- more conformat IIIF output from dzsave [regisrob]

View File

@ -424,7 +424,10 @@ vips_arrayjoinv( VipsImage **in, VipsImage **out, int n, va_list ap )
* Smallest common format in
* <link linkend="libvips-arithmetic">arithmetic</link>).
*
* See also: vips_join(), vips_insert().
* vips_colourspace() can be useful for moving the images to a common
* colourspace for compositing.
*
* See also: vips_join(), vips_insert(), vips_colourspace().
*
* Returns: 0 on success, -1 on error
*/

View File

@ -114,7 +114,6 @@ void vips__threadpool_init( void );
void vips__cache_init( void );
void vips__sink_screen_init( void );
void vips__print_renders( void );
void vips__type_leak( void );

View File

@ -413,7 +413,6 @@ vips_init( const char *argv0 )
#endif /*HAVE_THREAD_NEW*/
vips__threadpool_init();
vips__sink_screen_init();
vips__buffer_init();
vips__meta_init();

View File

@ -450,6 +450,9 @@ vips__render_shutdown( void )
}
else
g_mutex_unlock( render_dirty_lock );
VIPS_FREEF( vips_g_mutex_free, render_dirty_lock );
vips_semaphore_destroy( &n_render_dirty_sem );
}
VIPS_FREEF( vips_g_mutex_free, render_dirty_lock );
@ -1030,8 +1033,8 @@ render_thread_main( void *client )
return( NULL );
}
void
vips__sink_screen_init( void )
static void *
vips__sink_screen_init( void *data )
{
g_assert( !render_thread );
g_assert( !render_dirty_lock );
@ -1040,6 +1043,8 @@ vips__sink_screen_init( void )
vips_semaphore_init( &n_render_dirty_sem, 0, "n_render_dirty" );
render_thread = vips_g_thread_new( "sink_screen",
render_thread_main, NULL );
return( NULL );
}
/**
@ -1099,8 +1104,12 @@ vips_sink_screen( VipsImage *in, VipsImage *out, VipsImage *mask,
int priority,
VipsSinkNotify notify_fn, void *a )
{
static GOnce once = G_ONCE_INIT;
Render *render;
VIPS_ONCE( &once, vips__sink_screen_init, NULL );
if( tile_width <= 0 || tile_height <= 0 ||
max_tiles < -1 ) {
vips_error( "vips_sink_screen", "%s", _( "bad parameters" ) );