svn commit: r493173 - in head/multimedia: . ffmpeg svt-hevc svt-hevc/files
Jan Beich
jbeich at FreeBSD.org
Sun Feb 17 17:05:52 UTC 2019
Author: jbeich
Date: Sun Feb 17 17:05:49 2019
New Revision: 493173
URL: https://svnweb.freebsd.org/changeset/ports/493173
Log:
multimedia/ffmpeg: add another HEVC encoder
Added:
head/multimedia/svt-hevc/
head/multimedia/svt-hevc/Makefile (contents, props changed)
head/multimedia/svt-hevc/distinfo (contents, props changed)
head/multimedia/svt-hevc/files/
head/multimedia/svt-hevc/files/patch-Source_Lib_Codec_EbThreads.h (contents, props changed)
head/multimedia/svt-hevc/pkg-descr (contents, props changed)
head/multimedia/svt-hevc/pkg-plist (contents, props changed)
Modified:
head/multimedia/Makefile (contents, props changed)
head/multimedia/ffmpeg/Makefile (contents, props changed)
head/multimedia/ffmpeg/distinfo (contents, props changed)
Modified: head/multimedia/Makefile
==============================================================================
--- head/multimedia/Makefile Sun Feb 17 17:03:44 2019 (r493172)
+++ head/multimedia/Makefile Sun Feb 17 17:05:49 2019 (r493173)
@@ -401,6 +401,7 @@
SUBDIR += subtitleripper
SUBDIR += subtools
SUBDIR += svt-av1
+ SUBDIR += svt-hevc
SUBDIR += svt-vp9
SUBDIR += swfdec-gnome
SUBDIR += syncplay
Modified: head/multimedia/ffmpeg/Makefile
==============================================================================
--- head/multimedia/ffmpeg/Makefile Sun Feb 17 17:03:44 2019 (r493172)
+++ head/multimedia/ffmpeg/Makefile Sun Feb 17 17:05:49 2019 (r493173)
@@ -73,7 +73,7 @@ OPTIONS_RADIO_SSL= GNUTLS MBEDTLS OPENSSL
OPTIONS_GROUP= LICENSE
OPTIONS_GROUP_LICENSE= GPL3 NONFREE
-OPTIONS_DEFINE_amd64= BEIGNET MMX SSE SVTAV1 SVTVP9
+OPTIONS_DEFINE_amd64= BEIGNET MMX SSE SVTAV1 SVTHEVC SVTVP9
OPTIONS_DEFINE_armv6= VFP NEON
OPTIONS_DEFINE_i386= BEIGNET MMX SSE
OPTIONS_DEFAULT_amd64= MMX SSE
@@ -108,6 +108,7 @@ RTCPU_DESC= Detect CPU capabilities at runtime
RTMP_DESC= RTMP(T)E protocol support
SRT_DESC= Haivision SRT protocol via libsrt
SVTAV1_DESC= AV1 encoding via SVT-AV1
+SVTHEVC_DESC= HEVC encoding via SVT-HEVC
SVTVP9_DESC= VP9 encoding via SVT-VP9
LIBRTMP_DESC= ${RTMP_DESC} via librtmp
TENSORFLOW_DESC=TensorFlow as a DNN module backend for DNN based filters like sr
@@ -417,10 +418,23 @@ SVTAV1_PATCHFILES= 0001-Add-ability-for-ffmpeg-to-run-
.if make(makesum)
.MAKEFLAGS: WITH+=SVTAV1
.else
-SVTAV1_PREVENTS= SVTVP9
+SVTAV1_PREVENTS= SVTHEVC SVTVP9
SVTAV1_PREVENTS_MSG= Only one SVT vendor patch can be applied at the same time
.endif
+# svt-hevc
+SVTHEVC_LIB_DEPENDS= libSvtHevcEnc.so:multimedia/svt-hevc
+SVTHEVC_CONFIGURE_ON= --enable-libsvthevc
+SVTHEVC_PATCH_SITES= https://github.com/Intel/SVT-HEVC/raw/v1.3.0/ffmpeg_plugin/:svthevc
+SVTHEVC_PATCHFILES= 0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch:-p1:svthevc \
+ 0002-doc-Add-libsvt_hevc-encoder-docs.patch:-p1:svthevc
+.if make(makesum)
+.MAKEFLAGS: WITH+=SVTHEVC
+.else
+SVTHEVC_PREVENTS= SVTAV1 SVTVP9
+SVTHEVC_PREVENTS_MSG= ${SVTAV1_PREVENTS_MSG}
+.endif
+
# svt-vp9
SVTVP9_LIB_DEPENDS= libSvtVp9Enc.so:multimedia/svt-vp9
SVTVP9_CONFIGURE_ON= --enable-libsvtvp9
@@ -429,7 +443,7 @@ SVTVP9_PATCHFILES= 0001-Add-ability-for-ffmpeg-to-run-
.if make(makesum)
.MAKEFLAGS: WITH+=SVTVP9
.else
-SVTVP9_PREVENTS= SVTAV1
+SVTVP9_PREVENTS= SVTAV1 SVTHEVC
SVTVP9_PREVENTS_MSG= ${SVTAV1_PREVENTS_MSG}
.endif
Modified: head/multimedia/ffmpeg/distinfo
==============================================================================
--- head/multimedia/ffmpeg/distinfo Sun Feb 17 17:03:44 2019 (r493172)
+++ head/multimedia/ffmpeg/distinfo Sun Feb 17 17:05:49 2019 (r493173)
@@ -3,5 +3,9 @@ SHA256 (ffmpeg-4.1.1.tar.xz) = 373749824dfd334d84e55df
SIZE (ffmpeg-4.1.1.tar.xz) = 8893404
SHA256 (0001-Add-ability-for-ffmpeg-to-run-svt-av1.patch) = ffe17691750a952591090e6f7396a6063a0c48907bc4023db15e088a7673528a
SIZE (0001-Add-ability-for-ffmpeg-to-run-svt-av1.patch) = 20364
+SHA256 (0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch) = cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d
+SIZE (0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch) = 22815
+SHA256 (0002-doc-Add-libsvt_hevc-encoder-docs.patch) = 516c5a1b3ab6dc444e2270a1bae90455838fc3b7e3a18de37d7d63e25e79493d
+SIZE (0002-doc-Add-libsvt_hevc-encoder-docs.patch) = 5602
SHA256 (0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch) = c8e8652924887eadbe3455af89f213a89b119d8e172fdad5a12d53fea64d1391
SIZE (0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch) = 18613
Added: head/multimedia/svt-hevc/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/svt-hevc/Makefile Sun Feb 17 17:05:49 2019 (r493173)
@@ -0,0 +1,52 @@
+# $FreeBSD$
+
+PORTNAME= svt-hevc
+DISTVERSIONPREFIX= v
+PORTVERSION= 1.3.0
+CATEGORIES= multimedia
+
+MAINTAINER= jbeich at FreeBSD.org
+COMMENT= Scalable HEVC encoder
+
+LICENSE= BSD2CLAUSE+PATENT
+LICENSE_GROUPS= FSF OSI COPYFREE
+LICENSE_NAME= BSD-2-Clause Plus Patent License
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+ONLY_FOR_ARCHS= amd64
+ONLY_FOR_ARCHS_REASON= uses x86-64 assembly
+
+BUILD_DEPENDS= nasm:devel/nasm
+
+USES= cmake
+USE_GITHUB= yes
+USE_LDCONFIG= yes
+GH_ACCOUNT= Intel
+GH_PROJECT= SVT-HEVC
+
+post-patch:
+# Default CFLAGS are already set by USES=cmake
+ @${REINPLACE_CMD} -i .flags -E -e 's/ -march=native//' \
+ -e 's/-O2 -flto //' \
+ -e '/C_FLAGS_(RELEASE|DEBUG)/d' \
+ ${WRKSRC}/CMakeLists.txt
+# Avoid devel/yasm dependency
+ @${REINPLACE_CMD} -i .typo 's/MAKE_ASM_NASM_COMPILER/s&/' \
+ ${WRKSRC}/CMakeLists.txt
+# Avoid lang/gcc* dependency
+ @${REINPLACE_CMD} -i .gcc -e 's/gcc-//' \
+ -e '/CMAKE_C/{ s/STREQUAL/MATCHES/; s/"GNU/&|Clang/; }' \
+ ${WRKSRC}/CMakeLists.txt \
+ ${WRKSRC}/Source/Lib/*/CMakeLists.txt
+# Avoid conflict with standard types
+ @${GREP} -Flr '_T_DEFINED' ${WRKSRC} | ${XARGS} \
+ ${REINPLACE_CMD} -i .types 's/_T_DEFINED/_DEFINED/'
+# Avoid platform whitelists for generic non-Windows code
+ @${REINPLACE_CMD} -i .opsys 's/Linux/${OPSYS}/' \
+ ${WRKSRC}/CMakeLists.txt \
+ ${WRKSRC}/Source/Lib/*/CMakeLists.txt
+ @${GREP} -Flr '__linux' ${WRKSRC} | ${XARGS} \
+ ${REINPLACE_CMD} -i .opsys -E 's/__linux(__)?/__${OPSYS}__/'
+
+.include <bsd.port.mk>
Added: head/multimedia/svt-hevc/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/svt-hevc/distinfo Sun Feb 17 17:05:49 2019 (r493173)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1550104614
+SHA256 (Intel-SVT-HEVC-v1.3.0_GH0.tar.gz) = ef21f3a13e33b4f61af4a0c79337ce9e4f73f6fe13d1c2afe2c3b0712f4158d9
+SIZE (Intel-SVT-HEVC-v1.3.0_GH0.tar.gz) = 1137878
Added: head/multimedia/svt-hevc/files/patch-Source_Lib_Codec_EbThreads.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/svt-hevc/files/patch-Source_Lib_Codec_EbThreads.h Sun Feb 17 17:05:49 2019 (r493173)
@@ -0,0 +1,24 @@
+FreeBSD (unlike DragonFly) didn't try to be compatible with GNU libc at first.
+
+In file included from Source/Lib/Codec/EbEncDecProcess.c:9:
+In file included from Source/Lib/Codec/EbTransforms.h:14:
+In file included from Source/Lib/Codec/EbSequenceControlSet.h:10:
+Source/Lib/Codec/EbThreads.h:100:11: error: unknown type name 'cpu_set_t'
+extern cpu_set_t groupAffinity;
+ ^
+
+--- Source/Lib/Codec/EbThreads.h.orig 2019-02-14 00:36:54 UTC
++++ Source/Lib/Codec/EbThreads.h
+@@ -95,7 +95,12 @@ extern EB_BOOL alternateGroups;
+ #else
+ #define __USE_GNU
+ #define _GNU_SOURCE
++#ifdef __FreeBSD__
++#include <pthread_np.h>
++#define cpu_set_t cpuset_t
++#else
+ #include <sched.h>
++#endif
+ #include <pthread.h>
+ extern cpu_set_t groupAffinity;
+ #define EB_CREATETHREAD(type, pointer, nElements, pointerClass, threadFunction, threadContext) \
Added: head/multimedia/svt-hevc/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/svt-hevc/pkg-descr Sun Feb 17 17:05:49 2019 (r493173)
@@ -0,0 +1,6 @@
+The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is
+an HEVC-compliant encoder library core that achieves excellent
+density-quality tradeoffs, and is highly optimized for Intel Xeon
+Scalable Processor and Xeon D processors.
+
+WWW: https://github.com/Intel/SVT-HEVC
Added: head/multimedia/svt-hevc/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/svt-hevc/pkg-plist Sun Feb 17 17:05:49 2019 (r493173)
@@ -0,0 +1,8 @@
+bin/SvtHevcEncApp
+bin/SvtHevcEncSimpleApp
+include/svt-hevc/EbApi.h
+include/svt-hevc/EbErrorCodes.h
+include/svt-hevc/EbTime.h
+lib/libSvtHevcEnc.so
+lib/libSvtHevcEnc.so.1
+libdata/pkgconfig/SvtHevcEnc.pc
More information about the svn-ports-head
mailing list