diff --git a/DEVELOPERS b/DEVELOPERS index 25d49b0fc3..9b829a364b 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -380,6 +380,7 @@ F: package/libglew/ F: package/libglfw/ F: package/libglu/ F: package/libhdhomerun/ +F: package/libheif/ F: package/libilbc/ F: package/libks/ F: package/libldns/ diff --git a/package/Config.in b/package/Config.in index d47c8e8f6b..998074960d 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1845,6 +1845,7 @@ menu "Multimedia" source "package/libdvdread/Config.in" source "package/libebml/Config.in" source "package/libhdhomerun/Config.in" + source "package/libheif/Config.in" source "package/libimxvpuapi/Config.in" source "package/libmatroska/Config.in" source "package/libmms/Config.in" diff --git a/package/libheif/Config.in b/package/libheif/Config.in new file mode 100644 index 0000000000..d0ea72430e --- /dev/null +++ b/package/libheif/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_LIBHEIF + bool "libheif" + # avoid build error + # Internal error in emit_expr_encoded at dw2gencfi.c:215 + depends on !BR2_m68k_cf + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + help + libheif is an HEIF and AVIF file format decoder and encoder. + + https://github.com/strukturag/libheif + +comment "libheif needs a toolchain w/ C++, gcc >= 4.8" + depends on !BR2_m68k_cf + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/package/libheif/libheif.hash b/package/libheif/libheif.hash new file mode 100644 index 0000000000..50152abde5 --- /dev/null +++ b/package/libheif/libheif.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 7f97e4205c0bd9f9b8560536c8bd2e841d1c9a6d610401eb3eb87ed9cdfe78ea libheif-1.16.2.tar.gz +sha256 b2eb4f6588b005bebac44cfb2dfd23f6a16c5ca9b8a619a315158b0215a917a3 COPYING diff --git a/package/libheif/libheif.mk b/package/libheif/libheif.mk new file mode 100644 index 0000000000..9c6c2829cf --- /dev/null +++ b/package/libheif/libheif.mk @@ -0,0 +1,59 @@ +################################################################################ +# +# libheif +# +################################################################################ + +LIBHEIF_VERSION = 1.16.2 +LIBHEIF_SITE = https://github.com/strukturag/libheif/releases/download/v$(LIBHEIF_VERSION) +LIBHEIF_LICENSE = LGPL-3.0+ +LIBHEIF_LICENSE_FILES = COPYING +LIBHEIF_INSTALL_STAGING = YES +LIBHEIF_CONF_OPTS = \ + -DCMAKE_CXX_FLAGS="-std=c++11" \ + -DENABLE_PLUGIN_LOADING=OFF \ + -DWITH_AOM_DECODER=OFF \ + -DWITH_AOM_ENCODER=OFF \ + -DWITH_DEFLATE_HEADER_COMPRESSION=OFF \ + -DWITH_EXAMPLES=OFF \ + -DWITH_GDK_PIXBUF=OFF \ + -DWITH_LIBSHARPYUV=OFF \ + -DWITH_RAV1E=OFF \ + -DWITH_REDUCED_VISIBILITY=ON \ + -DWITH_SvtEnc=OFF + +ifeq ($(BR2_PACKAGE_DAV1D),y) +LIBHEIF_CONF_OPTS += -DWITH_DAV1D=ON +LIBHEIF_DEPENDENCIES += dav1d +else +LIBHEIF_CONF_OPTS += -DWITH_DAV1D=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBDE265),y) +LIBHEIF_CONF_OPTS += -DWITH_LIBDE265=ON +LIBHEIF_DEPENDENCIES += libde265 +else +LIBHEIF_CONF_OPTS += -DWITH_LIBDE265=OFF +endif + +ifeq ($(BR2_PACKAGE_X265),y) +LIBHEIF_CONF_OPTS += -DWITH_X265=ON +LIBHEIF_DEPENDENCIES += x265 +else +LIBHEIF_CONF_OPTS += -DWITH_X265=OFF +endif + +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) +LIBHEIF_CONF_OPTS += -DENABLE_MULTITHREADING_SUPPORT=ON +ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_64735),y) +LIBHEIF_CONF_OPTS += -DENABLE_PARALLEL_TILE_DECODING=OFF +else +LIBHEIF_CONF_OPTS += -DENABLE_PARALLEL_TILE_DECODING=ON +endif +else +LIBHEIF_CONF_OPTS += \ + -DENABLE_MULTITHREADING_SUPPORT=OFF \ + -DENABLE_PARALLEL_TILE_DECODING=OFF +endif + +$(eval $(cmake-package))