diff --git a/ChangeLog b/ChangeLog index e9845ff1..479bea6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ master - fix 8 bit pallete PNG save [lovell] - fix null string in buffer print [pclewis] - revise caching of seq mode loaders [jcupitt] +- reduce latency on dzsave kill [kleisauke] 24/7/22 started 8.13.1 - fix im7 feature detection in meson diff --git a/libvips/foreign/dzsave.c b/libvips/foreign/dzsave.c index 61821120..5b3fd713 100644 --- a/libvips/foreign/dzsave.c +++ b/libvips/foreign/dzsave.c @@ -1828,6 +1828,12 @@ strip_work( VipsThreadState *state, void *a ) printf( "strip_work\n" ); #endif /*DEBUG_VERBOSE*/ + /* killed is checked by sink_disc, but that's only once per strip, and + * they can be huge. Check per output tile as well. + */ + if( vips_image_iskilled( save->in ) ) + return( -1 ); + /* If we are centering we may be outside the real pixels. Skip in * this case, and the viewer will display blank.png for us. */