community/libheif: use proper change for duplicate-definition

This commit is contained in:
psykose 2023-05-03 00:27:54 +00:00
parent f57bb7c67d
commit a986e7cb01
2 changed files with 163 additions and 5 deletions

View File

@ -0,0 +1,158 @@
From 6e741f7a2619aed14ddd3d4f44fa27450cfcbd55 Mon Sep 17 00:00:00 2001
From: Dirk Farin <dirk.farin@gmail.com>
Date: Wed, 3 May 2023 01:18:32 +0200
Subject: [PATCH] move explicit template instantiation into .cc files (#840)
---
libheif/color-conversion/chroma_sampling.cc | 5 +++++
libheif/color-conversion/chroma_sampling.h | 7 -------
libheif/color-conversion/hdr_sdr.h | 3 ---
libheif/color-conversion/monochrome.h | 4 ----
libheif/color-conversion/rgb2rgb.h | 2 --
libheif/color-conversion/rgb2yuv.cc | 3 +++
libheif/color-conversion/rgb2yuv.h | 3 ---
libheif/color-conversion/yuv2rgb.cc | 3 +++
libheif/color-conversion/yuv2rgb.h | 4 ----
9 files changed, 11 insertions(+), 23 deletions(-)
diff --git a/libheif/color-conversion/chroma_sampling.cc b/libheif/color-conversion/chroma_sampling.cc
index 80be01153b..0b528497f5 100644
--- a/libheif/color-conversion/chroma_sampling.cc
+++ b/libheif/color-conversion/chroma_sampling.cc
@@ -235,6 +235,8 @@ Op_YCbCr444_to_YCbCr420_average<Pixel>::convert_colorspace(const std::shared_ptr
return outimg;
}
+template class Op_YCbCr444_to_YCbCr420_average<uint8_t>;
+template class Op_YCbCr444_to_YCbCr420_average<uint16_t>;
@@ -508,3 +510,6 @@ Op_YCbCr420_bilinear_to_YCbCr444<Pixel>::convert_colorspace(const std::shared_pt
return outimg;
}
+
+template class Op_YCbCr420_bilinear_to_YCbCr444<uint8_t>;
+template class Op_YCbCr420_bilinear_to_YCbCr444<uint16_t>;
diff --git a/libheif/color-conversion/chroma_sampling.h b/libheif/color-conversion/chroma_sampling.h
index 325d8a7422..1bd8fdc03a 100644
--- a/libheif/color-conversion/chroma_sampling.h
+++ b/libheif/color-conversion/chroma_sampling.h
@@ -43,9 +43,6 @@ class Op_YCbCr444_to_YCbCr420_average : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-template class Op_YCbCr444_to_YCbCr420_average<uint8_t>;
-template class Op_YCbCr444_to_YCbCr420_average<uint16_t>;
-
// --- upsampling ---
@@ -64,8 +61,4 @@ class Op_YCbCr420_bilinear_to_YCbCr444 : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-template class Op_YCbCr420_bilinear_to_YCbCr444<uint8_t>;
-template class Op_YCbCr420_bilinear_to_YCbCr444<uint16_t>;
-
-
#endif //LIBHEIF_CHROMA_SAMPLING_H
diff --git a/libheif/color-conversion/hdr_sdr.h b/libheif/color-conversion/hdr_sdr.h
index a80f09c021..7bda0a271d 100644
--- a/libheif/color-conversion/hdr_sdr.h
+++ b/libheif/color-conversion/hdr_sdr.h
@@ -55,7 +55,4 @@ class Op_to_sdr_planes : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-
-
-
#endif //LIBHEIF_COLORCONVERSION_HDR_SDR_H
diff --git a/libheif/color-conversion/monochrome.h b/libheif/color-conversion/monochrome.h
index af73f41229..22bcf78b19 100644
--- a/libheif/color-conversion/monochrome.h
+++ b/libheif/color-conversion/monochrome.h
@@ -55,8 +55,4 @@ class Op_mono_to_RGB24_32 : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-
-
-
-
#endif //LIBHEIF_COLORCONVERSION_MONOCHROME_H
diff --git a/libheif/color-conversion/rgb2rgb.h b/libheif/color-conversion/rgb2rgb.h
index 097b3b805f..4370999b6e 100644
--- a/libheif/color-conversion/rgb2rgb.h
+++ b/libheif/color-conversion/rgb2rgb.h
@@ -116,6 +116,4 @@ class Op_RRGGBBaa_swap_endianness : public ColorConversionOperation
};
-
-
#endif //LIBHEIF_RGB2RGB_H
diff --git a/libheif/color-conversion/rgb2yuv.cc b/libheif/color-conversion/rgb2yuv.cc
index 6b2df3b898..b12eec7b2f 100644
--- a/libheif/color-conversion/rgb2yuv.cc
+++ b/libheif/color-conversion/rgb2yuv.cc
@@ -267,6 +267,9 @@ Op_RGB_to_YCbCr<Pixel>::convert_colorspace(const std::shared_ptr<const HeifPixel
return outimg;
}
+template class Op_RGB_to_YCbCr<uint8_t>;
+template class Op_RGB_to_YCbCr<uint16_t>;
+
std::vector<ColorStateWithCost>
Op_RRGGBBxx_HDR_to_YCbCr420::state_after_conversion(const ColorState& input_state,
diff --git a/libheif/color-conversion/rgb2yuv.h b/libheif/color-conversion/rgb2yuv.h
index 68e1e8303c..4a3536f7c1 100644
--- a/libheif/color-conversion/rgb2yuv.h
+++ b/libheif/color-conversion/rgb2yuv.h
@@ -41,9 +41,6 @@ class Op_RGB_to_YCbCr : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-template class Op_RGB_to_YCbCr<uint8_t>;
-template class Op_RGB_to_YCbCr<uint16_t>;
-
class Op_RRGGBBxx_HDR_to_YCbCr420 : public ColorConversionOperation
diff --git a/libheif/color-conversion/yuv2rgb.cc b/libheif/color-conversion/yuv2rgb.cc
index 539344f499..6300465f50 100644
--- a/libheif/color-conversion/yuv2rgb.cc
+++ b/libheif/color-conversion/yuv2rgb.cc
@@ -245,6 +245,9 @@ Op_YCbCr_to_RGB<Pixel>::convert_colorspace(const std::shared_ptr<const HeifPixel
return outimg;
}
+template class Op_YCbCr_to_RGB<uint8_t>;
+template class Op_YCbCr_to_RGB<uint16_t>;
+
std::vector<ColorStateWithCost>
Op_YCbCr420_to_RGB24::state_after_conversion(const ColorState& input_state,
diff --git a/libheif/color-conversion/yuv2rgb.h b/libheif/color-conversion/yuv2rgb.h
index 6abb1a5301..c86f47b696 100644
--- a/libheif/color-conversion/yuv2rgb.h
+++ b/libheif/color-conversion/yuv2rgb.h
@@ -42,9 +42,6 @@ class Op_YCbCr_to_RGB : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-template class Op_YCbCr_to_RGB<uint8_t>;
-template class Op_YCbCr_to_RGB<uint16_t>;
-
class Op_YCbCr420_to_RGB24 : public ColorConversionOperation
{
@@ -90,5 +87,4 @@ class Op_YCbCr420_to_RRGGBBaa : public ColorConversionOperation
const heif_color_conversion_options& options) const override;
};
-
#endif //LIBHEIF_COLORCONVERSION_YUV2RGB_H

View File

@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=libheif
pkgver=1.16.1
pkgrel=0
pkgrel=1
pkgdesc="ISO/IEC 23008-12:2017 HEIF file format decoder and encoder"
url="https://www.libde265.org/"
arch="all"
@ -28,7 +28,9 @@ subpackages="
$pkgname-doc
$pkgname-pixbuf-loader
"
source="https://github.com/strukturag/libheif/releases/download/v$pkgver/libheif-$pkgver.tar.gz"
source="https://github.com/strukturag/libheif/releases/download/v$pkgver/libheif-$pkgver.tar.gz
32-bit-duplicate-definition.patch
"
# secfixes:
# 1.5.0-r0:
@ -39,9 +41,6 @@ build() {
export CPPFLAGS="${CFLAGS/-Os/-O2}"
export CXXFLAGS="${CFLAGS/-Os/-O2} -flto=auto"
# https://github.com/strukturag/libheif/issues/840
export LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition"
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
@ -78,4 +77,5 @@ loader() {
sha512sums="
0fe22d7aec4e38bfb6bb863e52618b42aa632e6d84db043afa39570a25d1959b701a363a90974ccd8d566a8990c7b4aa93a3a45b829dbfacbbdfc31757e87a5d libheif-1.16.1.tar.gz
547c922cbc8d21595a5224ad95d11e31c47951205e40051709e0784e3493abf8de51457b8863221888814733276ff1726c4b302c2b7a99ed5947827287b7985b 32-bit-duplicate-definition.patch
"