Date: Sun, 17 Feb 2019 17:05:49 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r493173 - in head/multimedia: . ffmpeg svt-hevc svt-hevc/files Message-ID: <201902171705.x1HH5nhO053335@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902171705.x1HH5nhO053335>