aboutsummaryrefslogtreecommitdiff
path: root/multimedia/x265
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2019-03-10 17:10:56 +0000
committerJan Beich <jbeich@FreeBSD.org>2019-03-10 17:10:56 +0000
commit71bb197b3aab49b09719d421fb6d759af74e4fb9 (patch)
treebf8ef7458d6c9930be312d5ef66088762504b776 /multimedia/x265
parent8c5202b6db28e9d2b87d38bf4c165fd7f2c599a5 (diff)
downloadports-71bb197b3aab49b09719d421fb6d759af74e4fb9.tar.gz
ports-71bb197b3aab49b09719d421fb6d759af74e4fb9.zip
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: maintainer timeout (2 weeks)
Notes
Notes: svn path=/head/; revision=495302
Diffstat (limited to 'multimedia/x265')
-rw-r--r--multimedia/x265/Makefile16
-rw-r--r--multimedia/x265/distinfo12
-rw-r--r--multimedia/x265/files/patch-bug-42213
-rw-r--r--multimedia/x265/files/patch-md533
-rw-r--r--multimedia/x265/files/patch-source_CMakeLists.txt22
-rw-r--r--multimedia/x265/files/patch-source_encoder_api.cpp45
-rw-r--r--multimedia/x265/pkg-plist2
7 files changed, 85 insertions, 58 deletions
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 <sys/types.h>
-+#include <md5.h>
-+
- #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