From 0899bc30c34c8775c4654e3a0b7f264f9a51455b Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Thu, 21 Feb 2019 01:40:52 +0000 Subject: [PATCH] multimedia/x265: update to 3.0 - Add SVTHEVC option, see http://x265.org/x265-svt-hevc-house/ - Drop libmd patch due to rebase churn for what little value it provides Changes: https://x265.readthedocs.io/en/latest/releasenotes.html#version-3-0 PR: 235906 Approved by: mi (maintainer) --- graphics/libbpg/Makefile | 2 +- graphics/libheif/Makefile | 1 + multimedia/avidemux-plugins/Makefile | 2 +- multimedia/ccextractor/Makefile | 2 +- multimedia/cinelerra-gg/Makefile | 2 +- multimedia/ffmpeg/Makefile | 1 + multimedia/gstreamer1-plugins-x265/Makefile | 2 +- multimedia/vlc/Makefile | 2 +- multimedia/x265/Makefile | 16 ++++--- multimedia/x265/distinfo | 12 ++--- multimedia/x265/files/patch-bug-422 | 13 ------ multimedia/x265/files/patch-md5 | 33 -------------- .../x265/files/patch-source_CMakeLists.txt | 22 +++++++++ .../x265/files/patch-source_encoder_api.cpp | 45 +++++++++++++++++++ multimedia/x265/pkg-plist | 2 +- x11/xpra/Makefile | 2 +- 16 files changed, 94 insertions(+), 65 deletions(-) delete mode 100644 multimedia/x265/files/patch-bug-422 delete mode 100644 multimedia/x265/files/patch-md5 create mode 100644 multimedia/x265/files/patch-source_CMakeLists.txt create mode 100644 multimedia/x265/files/patch-source_encoder_api.cpp diff --git a/graphics/libbpg/Makefile b/graphics/libbpg/Makefile index e87c2933d599..b7c841c9b0e5 100644 --- a/graphics/libbpg/Makefile +++ b/graphics/libbpg/Makefile @@ -3,7 +3,7 @@ PORTNAME= libbpg PORTVERSION= 0.9.7 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= graphics MASTER_SITES= http://bellard.org/bpg/ diff --git a/graphics/libheif/Makefile b/graphics/libheif/Makefile index f30d73bded75..c1610e361340 100644 --- a/graphics/libheif/Makefile +++ b/graphics/libheif/Makefile @@ -3,6 +3,7 @@ PORTNAME= libheif DISTVERSIONPREFIX= v DISTVERSION= 1.3.2 +PORTREVISION= 1 CATEGORIES= graphics MAINTAINER= me@sebastiansteinmetz.ch diff --git a/multimedia/avidemux-plugins/Makefile b/multimedia/avidemux-plugins/Makefile index b27e9da348ff..5303d5f0f4ce 100644 --- a/multimedia/avidemux-plugins/Makefile +++ b/multimedia/avidemux-plugins/Makefile @@ -3,7 +3,7 @@ PORTNAME= avidemux PORTVERSION= ${AVIDEMUX_VERSION} -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES= multimedia PKGNAMESUFFIX= -plugins diff --git a/multimedia/ccextractor/Makefile b/multimedia/ccextractor/Makefile index 071ebee878e0..9b26a8d0050f 100644 --- a/multimedia/ccextractor/Makefile +++ b/multimedia/ccextractor/Makefile @@ -3,7 +3,7 @@ PORTNAME= ccextractor DISTVERSIONPREFIX= v DISTVERSION= 0.85 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MAINTAINER= oz@nixil.net diff --git a/multimedia/cinelerra-gg/Makefile b/multimedia/cinelerra-gg/Makefile index a54eb69f0a8d..fcfbe04d90dc 100644 --- a/multimedia/cinelerra-gg/Makefile +++ b/multimedia/cinelerra-gg/Makefile @@ -3,7 +3,7 @@ PORTNAME= cinelerra-gg DISTVERSION= 5.1-20180714 DISTVERSIONSUFFIX= -${REV:C/(.......).*/\1/} -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= multimedia MASTER_SITES= https://git.cinelerra-cv.org/gitweb?p=goodguy/cinelerra.git;a=snapshot;h=${REV};sf=tgz;dummy=/ # tarballs are @ https://cinelerra-cv.org/five/pkgs/src/ diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index 431ba97bdf63..3eab57e9af74 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -3,6 +3,7 @@ PORTNAME= ffmpeg PORTVERSION= 4.1.1 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= multimedia audio ipv6 net MASTER_SITES= https://ffmpeg.org/releases/ diff --git a/multimedia/gstreamer1-plugins-x265/Makefile b/multimedia/gstreamer1-plugins-x265/Makefile index 20f162c047cd..432edc47a4b2 100644 --- a/multimedia/gstreamer1-plugins-x265/Makefile +++ b/multimedia/gstreamer1-plugins-x265/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= multimedia COMMENT= GStreamer libx265 based H265 plugin diff --git a/multimedia/vlc/Makefile b/multimedia/vlc/Makefile index 6d8f2674e32c..f729a76dfd31 100644 --- a/multimedia/vlc/Makefile +++ b/multimedia/vlc/Makefile @@ -3,7 +3,7 @@ PORTNAME= vlc DISTVERSION= 3.0.6 -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 4 CATEGORIES= multimedia audio ipv6 net www MASTER_SITES= http://download.videolan.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \ diff --git a/multimedia/x265/Makefile b/multimedia/x265/Makefile index ef472bf83b1f..5a504abd6abc 100644 --- a/multimedia/x265/Makefile +++ b/multimedia/x265/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= x265 -PORTVERSION= 2.8 -PORTREVISION= 2 +PORTVERSION= 3.0 CATEGORIES= multimedia MASTER_SITES= https://downloads.videolan.org/pub/videolan/x265/ \ https://mirror.leaseweb.com/videolan/x265/ \ @@ -12,7 +11,7 @@ MASTER_SITES= https://downloads.videolan.org/pub/videolan/x265/ \ DISTNAME= ${PORTNAME}_${PORTVERSION} PATCH_SITES= http://hg.videolan.org/${PORTNAME}/raw-rev/ -PATCHFILES= 450421921079:-p2 +PATCHFILES+= 878541319ea1:-p1 a41325fc854f:-p1 # SVT-HEVC MAINTAINER= mi@aldan.algebra.com COMMENT= H.265/High Efficiency Video Coding (HEVC) format @@ -25,7 +24,7 @@ BUILD_DEPENDS= nasm:devel/nasm USES= cmake compiler:c++14-lang pathfix OPTIONS_DEFINE= DEBUG OPTIMIZED_FLAGS -OPTIONS_DEFINE_amd64= HI10P HI12P +OPTIONS_DEFINE_amd64= HI10P HI12P SVTHEVC DEBUG_PREVENTS= OPTIMIZED_FLAGS DEBUG_PREVENTS_MSG= Optimizations are incompatible with debugging code @@ -34,18 +33,23 @@ HI10P_CMAKE_BOOL= HIGH_BIT_DEPTH HI12P_CMAKE_BOOL= MAIN12 HI12P_IMPLIES= HI10P OPTIMIZED_FLAGS_VARS= CFLAGS+=-O3 CXXFLAGS+=-O3 +SVTHEVC_LIB_DEPENDS= libSvtHevcEnc.so:multimedia/svt-hevc +SVTHEVC_CMAKE_BOOL= ENABLE_SVT_HEVC +SVTHEVC_CMAKE_ON= -DSVT_HEVC_INCLUDE_DIR:PATH="${LOCALBASE}/include/svt-hevc" DEBUG_DESC= Enable debugging HI10P_DESC= Enable HI10P Support (64-bit only) HI12P_DESC= Enable HI12P Support (64-bit only) OPTIMIZED_FLAGS_DESC= Enable O3 optimization +SVTHEVC_DESC= HEVC encoding via SVT-HEVC USE_LDCONFIG= yes -CMAKE_ARGS= -DENABLE_PIC=on -DPLATFORM_LIBS=md -DENABLE_TESTS=on +CMAKE_ARGS= -DENABLE_PIC=on -DENABLE_TESTS=on CFLAGS_mips= -DNO_ATOMICS # cannot use lang/gcc CFLAGS_mips64= -DNO_ATOMICS # cannot use lang/gcc LDFLAGS_i386= -Wl,-znotext -EXTRACT_AFTER_ARGS+= --exclude "md5*" --exclude compat +EXTRACT_AFTER_ARGS+= --exclude compat +PATCH_WRKSRC= ${WRKSRC:H} WRKSRC= ${WRKDIR}/${PORTNAME}_${PORTVERSION}/source do-test: diff --git a/multimedia/x265/distinfo b/multimedia/x265/distinfo index be4b3fd9db1d..d555c822ffa0 100644 --- a/multimedia/x265/distinfo +++ b/multimedia/x265/distinfo @@ -1,5 +1,7 @@ -TIMESTAMP = 1531665864 -SHA256 (x265_2.8.tar.gz) = 6e59f9afc0c2b87a46f98e33b5159d56ffb3558a49d8e3d79cb7fdc6b7aaa863 -SIZE (x265_2.8.tar.gz) = 1379551 -SHA256 (450421921079) = 015d99bbcc60e184293cd86879f54d6f78559c9ff2cda32c5ad54e6113bc7fca -SIZE (450421921079) = 703 +TIMESTAMP = 1548236838 +SHA256 (x265_3.0.tar.gz) = c5b9fc260cabbc4a81561a448f4ce9cad7218272b4011feabc3a6b751b2f0662 +SIZE (x265_3.0.tar.gz) = 1398519 +SHA256 (878541319ea1) = cb135430143d4d0df4e1d7e5b9d7994f0b6279796f44f7b8b6e5159c00c92768 +SIZE (878541319ea1) = 86799 +SHA256 (a41325fc854f) = 5fb5a2d97cecf9920f5800364534f56584dbf805f1e215de9dbdeca025eb3ec8 +SIZE (a41325fc854f) = 912 diff --git a/multimedia/x265/files/patch-bug-422 b/multimedia/x265/files/patch-bug-422 deleted file mode 100644 index b26f06db7be1..000000000000 --- a/multimedia/x265/files/patch-bug-422 +++ /dev/null @@ -1,13 +0,0 @@ -See: - - https://bitbucket.org/multicoreware/x265/issues/422 - ---- common/pixel.cpp 2018-05-21 08:33:10 UTC -+++ common/pixel.cpp 2018-08-05 21:57:26 UTC -@@ -923,5 +923,5 @@ - { - for (int i = 0; i < count; i++) -- dst[i] = (uint16_t)(src[i] * 256.0); -+ dst[i] = (int16_t)(src[i] * 256.0); - } - diff --git a/multimedia/x265/files/patch-md5 b/multimedia/x265/files/patch-md5 deleted file mode 100644 index fea6f09f1d9b..000000000000 --- a/multimedia/x265/files/patch-md5 +++ /dev/null @@ -1,33 +0,0 @@ -Use FreeBSD's MD5-implementation instead of yet another bundled one. - - -mi - ---- common/CMakeLists.txt 2016-01-25 00:16:50.000000000 -0500 -+++ common/CMakeLists.txt 2016-02-02 17:57:52.620700000 -0500 -@@ -109,5 +109,4 @@ - threadpool.cpp threadpool.h - wavefront.h wavefront.cpp -- md5.cpp md5.h - bitstream.h bitstream.cpp - yuv.cpp yuv.h ---- common/picyuv.h 2016-01-25 00:16:50.000000000 -0500 -+++ common/picyuv.h 2016-02-02 21:52:24.690114000 -0500 -@@ -25,6 +25,8 @@ - #define X265_PICYUV_H - -+#include -+#include -+ - #include "common.h" --#include "md5.h" - #include "x265.h" - ---- encoder/frameencoder.cpp 2016-01-25 00:16:50.000000000 -0500 -+++ encoder/frameencoder.cpp 2016-02-02 18:06:58.918647000 -0500 -@@ -667,5 +667,5 @@ - m_seiReconPictureDigest.m_method = SEIDecodedPictureHash::MD5; - for (int i = 0; i < planes; i++) -- MD5Final(&m_state[i], m_seiReconPictureDigest.m_digest[i]); -+ MD5Final(m_seiReconPictureDigest.m_digest[i], &m_state[i]); - } - else if (m_param->decodedPictureHashSEI == 2) diff --git a/multimedia/x265/files/patch-source_CMakeLists.txt b/multimedia/x265/files/patch-source_CMakeLists.txt new file mode 100644 index 000000000000..d7c218ce3f51 --- /dev/null +++ b/multimedia/x265/files/patch-source_CMakeLists.txt @@ -0,0 +1,22 @@ +===> Checking for items in STAGEDIR missing from pkg-plist +Error: Orphaned: bin/libSvtHevcEnc.so +Error: Orphaned: include/EbApi.h +Error: Orphaned: include/EbErrorCodes.h +Error: Orphaned: include/EbTime.h + +--- source/CMakeLists.txt.orig 2019-01-23 09:47:18 UTC ++++ source/CMakeLists.txt +@@ -570,13 +570,6 @@ if(ENABLE_HDR10_PLUS) + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + endif() + +-if(SVTHEVC_FOUND) +- install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbApi.h" DESTINATION include) +- install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbErrorCodes.h" DESTINATION include) +- install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbTime.h" DESTINATION include) +- install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${BIN_INSTALL_DIR}) +-endif() +- + install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) + if((WIN32 AND ENABLE_CLI) OR (WIN32 AND ENABLE_SHARED)) + if(MSVC_IDE) diff --git a/multimedia/x265/files/patch-source_encoder_api.cpp b/multimedia/x265/files/patch-source_encoder_api.cpp new file mode 100644 index 000000000000..6b65641169f5 --- /dev/null +++ b/multimedia/x265/files/patch-source_encoder_api.cpp @@ -0,0 +1,45 @@ +source/encoder/api.cpp:432:17: error: cannot jump from this + goto statement to its label + goto fail; + ^ +source/encoder/api.cpp:436:36: note: jump bypasses variable + initialization + EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; + ^ +source/encoder/api.cpp:413:17: error: cannot jump from this + goto statement to its label + goto fail; + ^ +source/encoder/api.cpp:436:36: note: jump bypasses variable + initialization + EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; + ^ +source/encoder/api.cpp:406:21: error: cannot jump from this + goto statement to its label + goto fail; + ^ +source/encoder/api.cpp:436:36: note: jump bypasses variable + initialization + EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; + ^ +3 errors generated. + +--- source/encoder/api.cpp.orig 2019-01-23 09:47:18 UTC ++++ source/encoder/api.cpp +@@ -355,6 +355,7 @@ int x265_encoder_encode(x265_encoder *enc, x265_nal ** + static unsigned char picSendDone = 0; + numEncoded = 0; + static int codedNal = 0, eofReached = 0; ++ EB_H265_ENC_CONFIGURATION* svtParam = NULL; + + if (encoder->m_param->bEnableSvtHevc) + { +@@ -433,7 +434,7 @@ int x265_encoder_encode(x265_encoder *enc, x265_nal ** + } + } + +- EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; ++ svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; + if (eofReached && svtParam->codeEosNal == 0 && !codedNal) + { + EB_BUFFERHEADERTYPE *outputStreamPtr = 0; diff --git a/multimedia/x265/pkg-plist b/multimedia/x265/pkg-plist index 08f6668f2240..c7e971fda4b0 100644 --- a/multimedia/x265/pkg-plist +++ b/multimedia/x265/pkg-plist @@ -3,5 +3,5 @@ include/x265.h include/x265_config.h lib/libx265.a lib/libx265.so -lib/libx265.so.160 +lib/libx265.so.170 libdata/pkgconfig/x265.pc diff --git a/x11/xpra/Makefile b/x11/xpra/Makefile index db766dd96046..b8d117a49a44 100644 --- a/x11/xpra/Makefile +++ b/x11/xpra/Makefile @@ -2,7 +2,7 @@ PORTNAME= xpra PORTVERSION= 2.4.3 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 MASTER_SITES= http://xpra.org/src/