diff --git a/graphics/libheif/Makefile b/graphics/libheif/Makefile index 7bd812b0b51d..d1044a15d943 100644 --- a/graphics/libheif/Makefile +++ b/graphics/libheif/Makefile @@ -1,83 +1,84 @@ PORTNAME= libheif DISTVERSION= 1.19.1 +PORTREVISION= 1 CATEGORIES= graphics MASTER_SITES= https://github.com/strukturag/${PORTNAME}/releases/download/v${DISTVERSION}/ MAINTAINER= makc@FreeBSD.org COMMENT= ISO/IEC 23008-12:2017 HEIF file format de- and encoder WWW= https://github.com/strukturag/libheif LICENSE= LGPL3+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libsharpyuv.so:graphics/webp USES= cmake:testing compiler:c++11-lang cpe gettext-runtime gnome \ localbase:ldflags pathfix pkgconfig CPE_VENDOR= struktur USE_GNOME= gdkpixbuf2 glib20 USE_LDCONFIG= yes PLIST_SUB= LIB_VER=${DISTVERSION} CMAKE_OFF= BUILD_TESTING \ WITH_KVAZAAR \ WITH_UVG266 \ WITH_VVDEC \ WITH_VVENC \ CMAKE_COMPILE_WARNING_AS_ERROR CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_Doxygen OPTIONS_DEFINE= AOM DAV1D EXAMPLES FFMPEG JPEG LIBDE265 OPENH264 \ OPENJPEG OPENJPH SVTAV1 RAV1E X265 OPTIONS_DEFAULT=AOM DAV1D FFMPEG JPEG OPENH264 OPENJPEG OPENJPH SVTAV1 X265 OPTIONS_SUB= yes AOM_DESC= AV1 encoding/decoding via libaom FFMPEG_DESC= Use FFmpeg (support for HEVC decoding) DAV1D_DESC= Build dav1e decoder LIBDE265_DESC= Use libde265 (support for HEVC decoding) OPENH264_DESC= AVC decoding via OpenH264 OPENJPH_DESC= HT-J2K encoding via OpenJPH SVTAV1_DESC= Build svt-av1 encoder RAV1E_DESC= Build rav1e encoder X265_DESC= Use x265 (support for HEVC encoding) AOM_LIB_DEPENDS= libaom.so:multimedia/aom AOM_CMAKE_BOOL= WITH_AOM_ENCODER WITH_AOM_DECODER DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d DAV1D_CMAKE_BOOL= WITH_DAV1D EXAMPLES_LIB_DEPENDS= libpng16.so:graphics/png \ libtiff.so:graphics/tiff EXAMPLES_CMAKE_BOOL= WITH_EXAMPLES EXAMPLE_IMPLIES= JPEG FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= WITH_FFMPEG_DECODER JPEG_USES= jpeg JPEG_CMAKE_BOOL= WITH_JPEG_ENCODER WITH_JPEG_DECODER LIBDE265_LIB_DEPENDS= libde265.so:multimedia/libde265 LIBDE265_CMAKE_BOOL= WITH_LIBDE265 OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264 OPENH264_CMAKE_BOOL= WITH_OpenH264_DECODER OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CMAKE_BOOL= WITH_OpenJPEG_ENCODER WITH_OpenJPEG_DECODER OPENJPH_LIB_DEPENDS= libopenjph.so:graphics/openjph OPENJPH_CMAKE_BOOL= WITH_OPENJPH_ENCODER WITH_OPENJPH_DECODER SVTAV1_LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1 SVTAV1_CMAKE_BOOL= WITH_SvtEnc RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e RAV1E_CMAKE_BOOL= WITH_RAV1E X265_LIB_DEPENDS= libx265.so:multimedia/x265 X265_CMAKE_BOOL= WITH_X265 .include diff --git a/graphics/libheif/files/patch-libheif_api_libheif_heif.h b/graphics/libheif/files/patch-libheif_api_libheif_heif.h new file mode 100644 index 000000000000..64164273fb82 --- /dev/null +++ b/graphics/libheif/files/patch-libheif_api_libheif_heif.h @@ -0,0 +1,11 @@ +--- libheif/api/libheif/heif.h.orig 2024-11-01 10:56:56 UTC ++++ libheif/api/libheif/heif.h +@@ -2363,7 +2363,7 @@ struct heif_encoding_options + + // Set this to the NCLX parameters to be used in the output image or set to NULL + // when the same parameters as in the input image should be used. +- const struct heif_color_profile_nclx* output_nclx_profile; ++ struct heif_color_profile_nclx* output_nclx_profile; + + uint8_t macOS_compatibility_workaround_no_nclx_profile; + diff --git a/graphics/libheif/files/patch-libheif_context.cc b/graphics/libheif/files/patch-libheif_context.cc new file mode 100644 index 000000000000..a82b5b02d4f8 --- /dev/null +++ b/graphics/libheif/files/patch-libheif_context.cc @@ -0,0 +1,11 @@ +--- libheif/context.cc.orig 2024-11-01 10:56:56 UTC ++++ libheif/context.cc +@@ -1154,7 +1154,7 @@ Result> HeifContext::encode + heif_encoding_options options = in_options; + + if (const auto* nclx = output_image_item->get_forced_output_nclx()) { +- options.output_nclx_profile = nclx; ++ options.output_nclx_profile = const_cast(nclx); + } + + Result> srcImageResult = output_image_item->convert_colorspace_for_encoding(pixel_image,