From d6debd2887f23b48b93d765f63434a5672f96852 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Tue, 25 Nov 2025 23:57:23 +0300
Subject: [PATCH] Conditionally compile gifQuantizeBuffer

---
 cinelerra-5.1/cinelerra/filegif.C | 4 ++++
 cinelerra-5.1/configure.ac        | 8 ++++++++
 2 files changed, 12 insertions(+)

diff --git a/cinelerra-5.1/cinelerra/filegif.C b/cinelerra-5.1/cinelerra/filegif.C
index f7e45645..85a18721 100644
--- a/cinelerra-5.1/cinelerra/filegif.C
+++ b/cinelerra-5.1/cinelerra/filegif.C
@@ -36,11 +36,13 @@
 
 //from "getarg.h"
 extern "C"
+#if !defined HAVE_GIFLIB_QUANTIZE
 int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
                    int *ColorMapSize, GifByteType * RedInput,
                    GifByteType * GreenInput, GifByteType * BlueInput,
                    GifByteType * OutputBuffer,
                    GifColorType * OutputColorMap);
+#endif
 #if GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 2 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 1 && GIFLIB_RELEASE >= 9
 
 #define ABS(x)    ((x) > 0 ? (x) : (-(x)))
@@ -101,6 +103,7 @@ static int SubdivColorMap(NewColorMapType * NewColorSubdiv,
                           unsigned int ColorMapSize,
                           unsigned int *NewColorMapSize);
 
+#if !defined HAVE_GIFLIB_QUANTIZE
 
 /******************************************************************************
  Quantize high resolution image into lower one. Input image consists of a
@@ -232,6 +235,7 @@ GifQuantizeBuffer(unsigned int Width,
         if (MaxRGBError[2] < ABS(OutputColorMap[Index].Blue - BlueInput[i]))
             MaxRGBError[2] = ABS(OutputColorMap[Index].Blue - BlueInput[i]);
     }
+#endif
 
 #ifdef DEBUG
     fprintf(stderr,
diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
index 70fbc709..2422e74d 100644
--- a/cinelerra-5.1/configure.ac
+++ b/cinelerra-5.1/configure.ac
@@ -685,6 +685,7 @@ CHECK_LIB([encore], [encore], [encore])
 CHECK_HEADERS([encore], [encore headers], [encore.h])
 CHECK_LIB([giflib], [gif], [DGifOpen])
 CHECK_HEADERS([giflib], [gif lib headers], [gif_lib.h])
+CHECK_LIB([giflib_quantize], [gif], [GifQuantizeBuffer])
 CHECK_LIB([jbig], [jbig], [jbg_dec_init])
 
 CHECK_LIB([VDPAU], [vdpau], [vdp_device_create_x11])
@@ -1086,6 +1087,13 @@ echo ""
 if test "x$WANT_CIN_3RDPARTY" != "xno"; then
   CFG_CFLAGS+=" -DHAVE_CIN_3RDPARTY"
 fi
+
+if test "x$HAVE_GIFLIB_QUANTIZE" = "xyes" -a "x$WANT_CIN_3RDPARTY" = "xno"; then
+  CFG_CFLAGS+=" -DHAVE_GIFLIB_QUANTIZE"
+fi
+
+
+
 for v in GL XFT XXF86VM OSS ALSA FIREWIRE OGG DV DVB LADSPA \
 	 VIDEO4LINUX2 ESOUND PULSE PACTL OPENEXR LV2 \
 	 COMMERCIAL GIFLIB LIBZMPEG LIBDPX SHUTTLE SHUTTLE_USB XV \
-- 
2.51.1

