Browse Source

package/libheif: new package

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Bernd Kuhls 2 years ago
parent
commit
afb3000240
5 changed files with 79 additions and 0 deletions
  1. 1 0
      DEVELOPERS
  2. 1 0
      package/Config.in
  3. 15 0
      package/libheif/Config.in
  4. 3 0
      package/libheif/libheif.hash
  5. 59 0
      package/libheif/libheif.mk

+ 1 - 0
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/

+ 1 - 0
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"

+ 15 - 0
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

+ 3 - 0
package/libheif/libheif.hash

@@ -0,0 +1,3 @@
+# Locally computed:
+sha256  7f97e4205c0bd9f9b8560536c8bd2e841d1c9a6d610401eb3eb87ed9cdfe78ea  libheif-1.16.2.tar.gz
+sha256  b2eb4f6588b005bebac44cfb2dfd23f6a16c5ca9b8a619a315158b0215a917a3  COPYING

+ 59 - 0
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))