Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Sep 2020 22:17:52 +0000 (UTC)
From:      Mikhail Teterin <mi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r549401 - in head/multimedia/x265: . files
Message-ID:  <202009202217.08KMHqcc054694@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mi
Date: Sun Sep 20 22:17:52 2020
New Revision: 549401
URL: https://svnweb.freebsd.org/changeset/ports/549401

Log:
  Upgrade from 3.2 to 3.4. Resolve incompatibilities with newer
  SVTHEVC.
  
  PR:		247035, 248479
  Sponsored by:	United Marsupials

Added:
  head/multimedia/x265/files/patch-source_abrEncApp.cpp   (contents, props changed)
  head/multimedia/x265/files/patch-source_cmake_Findsvthevc.cmake   (contents, props changed)
  head/multimedia/x265/files/patch-source_common_version.cpp   (contents, props changed)
  head/multimedia/x265/files/patch-source_dynamicHDR10_CMakeLists.txt   (contents, props changed)
Deleted:
  head/multimedia/x265/files/patch-source_encoder_api.cpp
  head/multimedia/x265/files/patch-source_encoder_svt.h
Modified:
  head/multimedia/x265/Makefile
  head/multimedia/x265/distinfo
  head/multimedia/x265/files/patch-source_CMakeLists.txt
  head/multimedia/x265/pkg-plist

Modified: head/multimedia/x265/Makefile
==============================================================================
--- head/multimedia/x265/Makefile	Sun Sep 20 22:12:22 2020	(r549400)
+++ head/multimedia/x265/Makefile	Sun Sep 20 22:17:52 2020	(r549401)
@@ -2,14 +2,9 @@
 # $FreeBSD$
 
 PORTNAME=	x265
-PORTVERSION=	3.2.1
-PORTREVISION=	4
+PORTVERSION=	3.4
 CATEGORIES=	multimedia
-MASTER_SITES=	https://bitbucket.org/multicoreware/x265/downloads/ \
-		https://downloads.videolan.org/pub/videolan/x265/ \
-		https://mirror.leaseweb.com/videolan/x265/ \
-		http://downloads.videolan.org/pub/videolan/x265/ \
-		http://mirror.leaseweb.com/videolan/x265/
+MASTER_SITES=	https://bitbucket.org/multicoreware/x265/downloads/
 DISTNAME=	${PORTNAME}_${PORTVERSION}
 
 MAINTAINER=	mi@aldan.algebra.com
@@ -18,19 +13,19 @@ COMMENT=	H.265/High Efficiency Video Coding (HEVC) for
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC:H}/COPYING
 
-BUILD_DEPENDS=	${BUILD_DEPENDS_${ARCH}}
-BUILD_DEPENDS_amd64=	nasm:devel/nasm
-BUILD_DEPENDS_i386=	nasm:devel/nasm
+USES=		cmake compiler:c++14-lang pathfix dos2unix
 
-USES=		cmake compiler:c++14-lang pathfix
-
 OPTIONS_DEFINE=		DEBUG OPTIMIZED_FLAGS VMAF
 OPTIONS_DEFAULT=	OPTIMIZED_FLAGS HI8P HI10P HI12P
-OPTIONS_DEFINE_amd64=	SVTHEVC
+OPTIONS_DEFINE_aarch64=	ASM
+OPTIONS_DEFINE_amd64=	ASM SVTHEVC
+OPTIONS_DEFINE_i386=	ASM
+OPTIONS_DEFAULT_amd64=	ASM
 
 OPTIONS_MULTI=		PixelWidth
 OPTIONS_MULTI_PixelWidth=HI8P HI10P HI12P
 
+DOS2UNIX_FILES=		abrEncApp.cpp
 DEBUG_PREVENTS=		OPTIMIZED_FLAGS
 DEBUG_PREVENTS_MSG=	Optimizations are incompatible with debugging code
 DEBUG_VARS_OFF=		CFLAGS+=-DNDEBUG
@@ -42,6 +37,7 @@ SVTHEVC_CMAKE_ON=	-DSVT_HEVC_INCLUDE_DIR:PATH="${LOCAL
 VMAF_LIB_DEPENDS=	libvmaf.so:multimedia/vmaf
 VMAF_USES=		localbase:ldflags
 VMAF_CMAKE_BOOL=	ENABLE_LIBVMAF
+VMAF_CMAKE_ON=	-DVMAF_INCLUDE_DIR:PATH="${LOCALBASE}/include/libvmaf"
 
 DEBUG_DESC=	Enable debugging
 HI8P_DESC=	Enable 8-bit pixel-width (you, probably, want this)
@@ -51,7 +47,6 @@ OPTIMIZED_FLAGS_DESC=	Enable O3 optimization
 SVTHEVC_DESC=	HEVC encoding via SVT-HEVC
 VMAF_DESC=	Per frame and aggregate VMAF score
 
-OPTIONS_SUB=	yes
 USE_LDCONFIG=	yes
 CMAKE_ARGS=	-DENABLE_TESTS=on -DENABLE_HDR10_PLUS:BOOL=true
 LDFLAGS_i386=	-Wl,-znotext
@@ -61,6 +56,17 @@ WRKSRC=		${WRKDIR}/${PORTNAME}_${PORTVERSION}/source
 
 .include <bsd.port.options.mk>
 
+.if ${ARCH} == aarch64 && ${PORT_OPTIONS:MASM}
+BUILD_DEPENDS=	as:devel/binutils
+USE_GCC=	yes
+ASM_PREVENTS=	HI10P HI12P
+ASM_PREVENTS_MSG=	Currently HI10P and HI12P doesn't build with assembly
+.endif
+
+.if ${ARCH} != aarch64 && ${PORT_OPTIONS:MASM}
+BUILD_DEPENDS=	nasm:devel/nasm
+.endif
+
 DEFAULT_DEPTH=	${PORT_OPTIONS:MHI*P:O:ts/:T}
 OTHER_DEPTHS=	${PORT_OPTIONS:MHI*P:N${DEFAULT_DEPTH}}
 
@@ -69,7 +75,7 @@ CMAKE_ARGS+=	-DMAIN12:BOOL=true
 .endif
 
 .if "${DEFAULT_DEPTH}" != "HI8P"
-CMAKE_ARGS+=   -DHIGH_BIT_DEPTH:BOOL=true
+CMAKE_ARGS+=	-DHIGH_BIT_DEPTH:BOOL=true
 .endif
 
 CMAKE_OTHER_ARGS=${CMAKE_ARGS:C/.*-D_END_CUSTOM_OPTIONS=1 +//W}
@@ -81,7 +87,7 @@ CFLAGS:=	${CFLAGS:N-O*} -O0 -g
 .for b in ${OTHER_DEPTHS:C/HI([0-9]+)P/\1/}
 EXTRA_LINK_FLAGS+=-L${WRKSRC:H}/$bbit
 
-.if ${ARCH} == i386 && $b != 8 || ! ${BUILD_DEPENDS:Mnasm*}
+.if ${ARCH} == i386 && $b != 8 || ! ${PORT_OPTIONS:MASM}
 ASSEMBLY=false
 .else
 ASSEMBLY=true
@@ -95,7 +101,7 @@ pre-build::
 		-DMAIN$b:BOOL=true -DENABLE_ASSEMBLY:BOOL=${ASSEMBLY} \
 		-DEXPORT_C_API:BOOL=false -DENABLE_CLI=false
 	${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC:H}/$bbit ${MAKE_ARGS}
-	${LN} ${WRKSRC:H}/$bbit/libx265.a ${WRKSRC:H}/$bbit/libx265_$bbit.a
+	${LN} -f ${WRKSRC:H}/$bbit/libx265.a ${WRKSRC:H}/$bbit/libx265_$bbit.a
 	${ECHO_MSG} "---> Built the $b-bit library ---"
 .endfor
 
@@ -107,10 +113,11 @@ CMAKE_ARGS+=	${OTHER_DEPTHS:C/HI([0-9]+)P/-DLINKED_\1B
 
 CMAKE_ARGS+=	-DENABLE_SHARED:BOOL=true
 
-.if ${ARCH} == i386 && ${DEFAULT_DEPTH} != "HI8P" || ! ${BUILD_DEPENDS:Mnasm*}
+.if ${ARCH} == i386 && ${DEFAULT_DEPTH} != "HI8P" || ! ${PORT_OPTIONS:MASM}
 CMAKE_ARGS+=	-DENABLE_ASSEMBLY:BOOL=false
 .else
 CMAKE_ARGS+=	-DENABLE_ASSEMBLY:BOOL=true
+
 do-test:
 	${WRKDIR}/.build/test/TestBench
 .endif

Modified: head/multimedia/x265/distinfo
==============================================================================
--- head/multimedia/x265/distinfo	Sun Sep 20 22:12:22 2020	(r549400)
+++ head/multimedia/x265/distinfo	Sun Sep 20 22:17:52 2020	(r549401)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1572350105
-SHA256 (x265_3.2.1.tar.gz) = fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc
-SIZE (x265_3.2.1.tar.gz) = 1426255
+TIMESTAMP = 1591425294
+SHA256 (x265_3.4.tar.gz) = c2047f23a6b729e5c70280d23223cb61b57bfe4ad4e8f1471eeee2a61d148672
+SIZE (x265_3.4.tar.gz) = 1469365

Modified: head/multimedia/x265/files/patch-source_CMakeLists.txt
==============================================================================
--- head/multimedia/x265/files/patch-source_CMakeLists.txt	Sun Sep 20 22:12:22 2020	(r549400)
+++ head/multimedia/x265/files/patch-source_CMakeLists.txt	Sun Sep 20 22:17:52 2020	(r549401)
@@ -1,34 +1,32 @@
-===> 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
-
-libx265.so.179: undefined reference to `compute_vmaf'
-
---- source/CMakeLists.txt.orig	2019-01-23 09:47:18 UTC
+--- source/CMakeLists.txt.orig	2020-06-06 08:18:40 UTC
 +++ source/CMakeLists.txt
-@@ -570,13 +570,6 @@ if(ENABLE_HDR10_PLUS)
+@@ -122,3 +122,4 @@
+     if(ENABLE_LIBVMAF)
+         add_definitions(-DENABLE_LIBVMAF)
++        include_directories(${VMAF_INCLUDE_DIR})
+     endif()
+@@ -592,12 +592,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})
+-    install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${LIB_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)
-@@ -627,6 +620,9 @@ if(ENABLE_SHARED)
-     endif()
+@@ -649,7 +643,10 @@ if(ENABLE_SHARED)
      if(EXTRA_LIB)
          target_link_libraries(x265-shared ${EXTRA_LIB})
-+    endif()
-+    if(ENABLE_LIBVMAF)
-+        target_link_libraries(x265-shared ${VMAF})
      endif()
- 	 target_link_libraries(x265-shared ${PLATFORM_LIBS})
+-	 target_link_libraries(x265-shared ${PLATFORM_LIBS})
++    if(ENABLE_LIBVMAF)
++	target_link_libraries(x265-shared ${VMAF})
++    endif()
++	target_link_libraries(x265-shared ${PLATFORM_LIBS})
      if(SVTHEVC_FOUND)
+         target_link_libraries(x265-shared ${SVT_HEVC_LIBRARY})
+     endif(SVTHEVC_FOUND)

Added: head/multimedia/x265/files/patch-source_abrEncApp.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/x265/files/patch-source_abrEncApp.cpp	Sun Sep 20 22:17:52 2020	(r549401)
@@ -0,0 +1,9 @@
+--- source/abrEncApp.cpp	2020-05-29 13:39:35.000000000 -0400
++++ source/abrEncApp.cpp	2020-07-19 17:37:32.365958000 -0400
+@@ -815,5 +815,5 @@
+             if (m_param->csvfn && !b_ctrl_c)
+ #if ENABLE_LIBVMAF
+-                api->vmaf_encoder_log(m_encoder, m_cliopt.argCount, m_cliopt.argString, m_cliopt.param, vmafdata);
++                api->vmaf_encoder_log(m_encoder, m_cliopt.argCnt, m_cliopt.argString, m_cliopt.param, vmafdata);
+ #else
+                 api->encoder_log(m_encoder, m_cliopt.argCnt, m_cliopt.argString);

Added: head/multimedia/x265/files/patch-source_cmake_Findsvthevc.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/x265/files/patch-source_cmake_Findsvthevc.cmake	Sun Sep 20 22:17:52 2020	(r549401)
@@ -0,0 +1,13 @@
+--- source/cmake/Findsvthevc.cmake	2020-05-29 17:39:35.000000000 +0000
++++ source/cmake/Findsvthevc.cmake	2020-08-07 02:26:55.307048000 +0000
+@@ -39,9 +39,5 @@
+         set(SVT_VERSION_PATCHLEVEL ${CMAKE_MATCH_1})
+ 
+-        if(NOT ${SVT_VERSION_MAJOR} EQUAL "1" OR NOT ${SVT_VERSION_MINOR} EQUAL "4" OR NOT ${SVT_VERSION_PATCHLEVEL} EQUAL "1")
+-            message (SEND_ERROR "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL} which doesn't match the required version: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure  ")
+-        else()
+-            message(STATUS "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL}")
+-        endif()
++        message(STATUS "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL}")
+     else()
+         message (SEND_ERROR "-- Required version of SVT-HEVC Lib: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure  ")

Added: head/multimedia/x265/files/patch-source_common_version.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/x265/files/patch-source_common_version.cpp	Sun Sep 20 22:17:52 2020	(r549401)
@@ -0,0 +1,20 @@
+--- source/common/version.cpp.orig	2020-05-29 17:39:35 UTC
++++ source/common/version.cpp
+@@ -63,6 +63,8 @@
+ #define ONOS    "[Linux]"
+ #elif __OpenBSD__
+ #define ONOS    "[OpenBSD]"
++#elif __FreeBSD__
++#define ONOS	"[FreeBSD]"
+ #elif  __CYGWIN__
+ #define ONOS    "[Cygwin]"
+ #elif __APPLE__
+@@ -71,7 +73,7 @@
+ #define ONOS    "[Unk-OS]"
+ #endif
+ 
+-#if X86_64
++#if defined(X86_64) || X265_ARCH_ARM64
+ #define BITS    "[64 bit]"
+ #else
+ #define BITS    "[32 bit]"

Added: head/multimedia/x265/files/patch-source_dynamicHDR10_CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/x265/files/patch-source_dynamicHDR10_CMakeLists.txt	Sun Sep 20 22:17:52 2020	(r549401)
@@ -0,0 +1,28 @@
+--- source/dynamicHDR10/CMakeLists.txt.orig	2020-06-06 13:37:44 UTC
++++ source/dynamicHDR10/CMakeLists.txt
+@@ -42,18 +42,6 @@ if(GCC)
+             endif()
+         endif()
+     endif()
+-    if(ARM AND CROSS_COMPILE_ARM)
+-        set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
+-    elseif(ARM)
+-        find_package(Neon)
+-        if(CPU_HAS_NEON)
+-            set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
+-            add_definitions(-DHAVE_NEON)
+-        else()
+-            set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
+-        endif()
+-    endif()
+-    add_definitions(${ARM_ARGS})
+     if(FPROFILE_GENERATE)
+         if(INTEL_CXX)
+             add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}")
+@@ -150,4 +138,4 @@ set(BIN_INSTALL_DIR bin CACHE STRING "Install location
+ option(ENABLE_SHARED "Build shared library" OFF)
+ 
+ install(FILES hdr10plus.h DESTINATION include)
+-endif()
+\ No newline at end of file
++endif()

Modified: head/multimedia/x265/pkg-plist
==============================================================================
--- head/multimedia/x265/pkg-plist	Sun Sep 20 22:12:22 2020	(r549400)
+++ head/multimedia/x265/pkg-plist	Sun Sep 20 22:17:52 2020	(r549401)
@@ -6,5 +6,5 @@ lib/libhdr10plus.a
 lib/libhdr10plus.so
 lib/libx265.a
 lib/libx265.so
-lib/libx265.so.179
+lib/libx265.so.192
 libdata/pkgconfig/x265.pc



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202009202217.08KMHqcc054694>