From ab7ef2c2bc71394f084098c85a74ffa104ef856d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Szabo?= Date: Mon, 8 Jul 2019 14:28:48 +0200 Subject: [PATCH] fix: make gif-loop consistent between GIF and WEBP --- libvips/foreign/gifload.c | 9 ++++++--- libvips/foreign/magicksave.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libvips/foreign/gifload.c b/libvips/foreign/gifload.c index 4f8ceec8..a34ed8bb 100644 --- a/libvips/foreign/gifload.c +++ b/libvips/foreign/gifload.c @@ -471,8 +471,11 @@ vips_foreign_load_gif_scan_application_ext( VipsForeignLoadGif *gif, if( have_netscape && extension && extension[0] == 3 && - extension[1] == 1 ) - gif->loop = extension[2] | (extension[3] << 8); + extension[1] == 1 ) { + gif->loop = extension[2] | (extension[3] << 8); + if (gif->loop != 0) + gif->loop = gif->loop + 1; + } } return( 0 ); @@ -1142,7 +1145,7 @@ vips_foreign_load_gif_init( VipsForeignLoadGif *gif ) gif->transparency = -1; gif->delays = NULL; gif->delays_length = 0; - gif->loop = 0; + gif->loop = 1; gif->comment = NULL; gif->dispose = 0; } diff --git a/libvips/foreign/magicksave.c b/libvips/foreign/magicksave.c index 68a80e31..5eee1a20 100644 --- a/libvips/foreign/magicksave.c +++ b/libvips/foreign/magicksave.c @@ -169,7 +169,7 @@ vips_foreign_save_magick_next_image( VipsForeignSaveMagick *magick ) */ if( vips_image_get_typeof( im, "gif-loop" ) && !vips_image_get_int( im, "gif-loop", &number ) ) - image->iterations = (size_t) (number ? number + 1 : 0); + image->iterations = (size_t) (number ? number : 0); if( vips_image_get_typeof( im, "gif-comment" ) && !vips_image_get_string( im, "gif-comment", &str ) )