From d103f478dc0ea580813ade3b619fd0af4b6184d9 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Fri, 1 May 2026 21:13:01 +0300
Subject: [PATCH] lcms2 configure support for internal ffmpeg

---
 cinelerra-5.1/configure.ac        | 18 +++++++++++++++++-
 cinelerra-5.1/thirdparty/Makefile |  1 +
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
index 15e7d4ac..49447268 100644
--- a/cinelerra-5.1/configure.ac
+++ b/cinelerra-5.1/configure.ac
@@ -95,6 +95,7 @@ CHECK_WITH([onevpl],[Intel QSV api for unix],[ONEVPL],[no])
 CHECK_WITH([vulkan],[Vulkan api],[VULKAN],[no])
 CHECK_WITH([libplacebo],[libplacebo ffmpeg Vulkan filter],[LIBPLACEBO],[no])
 CHECK_WITH([libzimg],[libzimg ffmpeg filter],[LIBZIMG],[no])
+CHECK_WITH([lcms2],[liblcms2 support for ffmpeg],[LIBLCMS2],[auto])
 CHECK_WITH([nv],[nvenc/nvdec ffnvcodec api],[NV],[yes])
 CHECK_WITH([cuda],[nv cuda plugins],[CUDA],[auto])
 CHECK_WITH([clang],[use clang instead of gcc/g++],[CLANG],[no])
@@ -735,6 +736,11 @@ if test "x$HAVE_LIBZIMG" != "xyes" -a "x$WANT_LIBZIMG" = "xyes"; then
   AC_MSG_ERROR([requires libzimg support.])
 fi
 
+CHECK_LIB([LIBLCMS2], [lcms2], [cmsOpenProfileFromMemTHR])
+if test "x$HAVE_LIBLCMS2" != "xyes" -a "x$WANT_LIBLCMS2" = "xyes"; then
+  AC_MSG_ERROR([requires lcms2 support.])
+fi
+
 #CHECK_LIB([NVENC], [nvidia-encode], [NvEncodeAPICreateInstance])
 
 #if test "x$HAVE_mjpegtools" = "xyes"; then
@@ -1123,7 +1129,7 @@ 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 \
-	 VAAPI VDPAU ONEVPL VULKAN LIBPLACEBO LIBZIMG CUDA NV WINTV X10TV X265_HIDEPTH; do
+	 VAAPI VDPAU ONEVPL VULKAN LIBPLACEBO LIBZIMG LIBLCMS2 CUDA NV WINTV X10TV X265_HIDEPTH; do
   eval vv="\$WANT_$v"
   if test "x$vv" != "xno"; then
     CFG_CFLAGS+=" -DHAVE_$v"
@@ -1200,6 +1206,16 @@ if test "x$WANT_LIBZIMG" != "xno" -a "x$HAVE_LIBZIMG" = "xyes"; then
 fi
 CFG_WANTS+=" LIBZIMG"
 
+if test "x$WANT_LIBLCMS2" != "xno" -a "x$HAVE_LIBLCMS2" = "xyes"; then
+  FFMPEG_EXTRA_LDFLAGS+=' -llcms2  `pkg-config --libs lcms2`'
+  FFMPEG_EXTRA_CFG+='  --extra-cflags="'$(pkg-config --cflags lcms2)'"'
+  EXTRA_LIBS+=' -llcms2'
+  WANT_LIBLCMS2="yes"
+fi
+CFG_WANTS+=" LIBLCMS2"
+
+
+
 if test "x$WANT_NV" != "xno"; then
   WANT_NV="yes"
   CFG_WANTS+=" NV"
diff --git a/cinelerra-5.1/thirdparty/Makefile b/cinelerra-5.1/thirdparty/Makefile
index 3c15dfaf..45c7a20c 100644
--- a/cinelerra-5.1/thirdparty/Makefile
+++ b/cinelerra-5.1/thirdparty/Makefile
@@ -140,6 +140,7 @@ ffmpeg.cfg_params= \
 	$(call if_want,VULKAN,--enable-vulkan,--disable-vulkan) \
 	$(call if_want,LIBPLACEBO,--enable-libplacebo,--disable-libplacebo) \
 	$(call if_want,LIBZIMG,--enable-libzimg,--disable-libzimg) \
+	$(call if_want,LIBLCMS2,--enable-lcms2,--disable-lcms2) \
 	$(call if_want,NV, --enable-nvenc --enable-nvdec --enable-ffnvcodec) \
 	$(call if_ena,twolame,--enable-libtwolame) \
 	$(call if_ena,openjpeg,--enable-libopenjpeg) \
-- 
2.46.4

