From nobody Sun Oct 06 11:50:03 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XM0vb6BJgz5XjkZ; Sun, 06 Oct 2024 11:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XM0vb5tF7z4yGg; Sun, 6 Oct 2024 11:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728215403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uXdERBkkKwa0iB+qd6OTgNuMVVcxHgOOHpiJ+MJm+Zg=; b=nusLdb36P2/x9zdvCiwWgunhu5bdPL3aXYD2YHJplq/8iCc+TLAbJo7EIA/EMr33irQOHP lMn86B1UUOK1YpSEXZD8/6qfXDt+gAIjxCDbnMWGXJLDqbBECIDw4Uw7w8i0wH3OXwG7VZ xQIrzI8bXZ+6L74053R8Dc8OOXVNPUo/XD/TheDdcHyX8p9iW8f4vIZR5+gEjhdRuOVZE8 /Zpm16OtzauuT8NGnq54dO+fKiD8CgA/CoXcFw3Na/qR/+E4eaQkwUNcdnjjEPJDABoZdK da5eWc/JMTjwjk9DaNg5ykX4SxGtPPdiURCHP6nFXHi42Wvbl3Ws9Sw94I8RgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1728215403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uXdERBkkKwa0iB+qd6OTgNuMVVcxHgOOHpiJ+MJm+Zg=; b=DGhszNS/QERTY6PMJt6jJity5GyvhN3ouhXHyHnEJCI6+fngjEtNP7Bkb7yL1LuezVg/0N M9tS4evS3ZVSaq7+DNG0hh+pwG7DFNfHXQclk6kBumrBmCOpryp1OpudOW5XTm/mkc3TQV fM7iX+AYmQIHEig6NeRuQ6EGqaN0DWV/riIo9livZBdD5ym90zVVvRBhZMcpqnqVvJlAh3 gO27WHJw2UhbEzdRf710SY0gAbjx0IhcGAlBxKt7merA75s/enmfj0rM5svm+VXixBHxL0 PoW5cdP2C/E3JxfzGXqhNVg7oOPm686spvqFkVCWjow5G02dF/z4HAQLE4oGUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1728215403; a=rsa-sha256; cv=none; b=RCfLyXbmRkPugzVDE9R6IVIb1nF5P3lyEjKwU2hzbroEDQlhAIOUSrtSJJLGzyg9qiNcQy DkvTwkSW52iQc47ZMthYPHf2u9jDRiIDrMlRVX+CXmx4gDGjorLek01tJ6XFSSiioJV9uH 2BsfGMfjgbURTF03UOGY1w8APWF8b3vuqytgIJMb89gX+wqNmPfUq7VkbLfFJP9Q+9bQYG wXPcg9ChrSVtWYEmQ40Ma8iVa6tBOv37jxLDnVQAV9FaeIqqeI5VIU88w4RbIyzScjty7I +JvLHtTbUvCf1CbMnE9NKBDLdZxukbJK4baPxQt/qWCaeiHJu1HlOsDrhp5GNw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XM0vb5T88z11jM; Sun, 6 Oct 2024 11:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 496Bo33v010125; Sun, 6 Oct 2024 11:50:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 496Bo3wa010120; Sun, 6 Oct 2024 11:50:03 GMT (envelope-from git) Date: Sun, 6 Oct 2024 11:50:03 GMT Message-Id: <202410061150.496Bo3wa010120@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Robert Clausecker Subject: git: 7c8a3f43dc84 - main - multimedia/x265: update to 3.6 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7c8a3f43dc8455ad4c80782e172f8f0926b2cc99 Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=7c8a3f43dc8455ad4c80782e172f8f0926b2cc99 commit 7c8a3f43dc8455ad4c80782e172f8f0926b2cc99 Author: Mikhail T. AuthorDate: 2024-10-01 14:45:56 +0000 Commit: Robert Clausecker CommitDate: 2024-10-06 11:49:16 +0000 multimedia/x265: update to 3.6 The latest edition provides fixes for the 32-bit ARM, and drops the need for gcc/binutils on the 64-bit ARM (aarch64). Many thanks to fuz@ for providing remote access to the two ARM-systems. The libvmaf-support remains broken, because our port of the dependency has been upgraded to 3.0.0, which is only supported by x265-4.0. Not removing this option for the sake of those, who might have kept the older vmaf on their systems. The ASM is no longer an option -- it was always a requirement on some platforms, and is very useful on others. PR: 281680 --- multimedia/x265/Makefile | 63 +++---- multimedia/x265/distinfo | 8 +- multimedia/x265/files/patch-arm-assembly | 117 +++++++++++++ multimedia/x265/files/patch-source_CMakeLists.txt | 14 +- .../patch-source_common_ppc_intrapred__altivec.cpp | 14 -- multimedia/x265/files/patch-source_encoder_api.cpp | 2 +- multimedia/x265/files/patch-source_x265.h | 13 -- multimedia/x265/files/patch-warnings | 193 ++++++++++++++++++--- multimedia/x265/pkg-plist | 2 +- 9 files changed, 320 insertions(+), 106 deletions(-) diff --git a/multimedia/x265/Makefile b/multimedia/x265/Makefile index c37f1d7885a9..46d4550d1123 100644 --- a/multimedia/x265/Makefile +++ b/multimedia/x265/Makefile @@ -1,11 +1,9 @@ PORTNAME= x265 -PORTVERSION= 3.5 -PORTREVISION= 3 +PORTVERSION= 3.6 CATEGORIES= multimedia -MASTER_SITES= https://bitbucket.org/multicoreware/x265_git/get/${BB_TAG}.tar.gz?meow=/ - -PATCH_SITES= https://bitbucket.org/multicoreware/x265_git/commits/8f18e3ad32684eee95e885e718655f93951128c3/raw/ -PATCHFILES+= x265-asm-warnings.patch:-p1 +MASTER_SITES= https://bitbucket.org/multicoreware/x265_git/downloads/ \ + http://ftp.videolan.org/pub/videolan/x265/ +DISTNAME= ${PORTNAME}_${PORTVERSION} MAINTAINER= ports@virtual-estates.net COMMENT= H.265/High Efficiency Video Coding (HEVC) format @@ -26,52 +24,40 @@ PATCH_WRKSRC= ${WRKSRC:H} WRKSRC= ${WRKDIR}/source BB_TAG= Release_${DISTVERSION} -OPTIONS_DEFINE= DEBUG OPTIMIZED_FLAGS VMAF -OPTIONS_DEFINE_aarch64= ASM -OPTIONS_DEFINE_amd64= ASM SVTHEVC -OPTIONS_DEFINE_i386= ASM -OPTIONS_DEFINE_powerpc64= ASM -OPTIONS_DEFINE_powerpc64le= ASM +OPTIONS_DEFINE= VMAF +OPTIONS_DEFINE_amd64= SVTHEVC OPTIONS_DEFAULT= HI10P HI12P HI8P OPTIMIZED_FLAGS -OPTIONS_DEFAULT_amd64= ASM -OPTIONS_DEFAULT_powerpc64le= ASM OPTIONS_MULTI= PIXELWIDTH OPTIONS_MULTI_PIXELWIDTH= HI10P HI12P HI8P +OPTIONS_RADIO= OPTIMIZATION +OPTIONS_RADIO_OPTIMIZATION= DEBUG OPTIMIZED_FLAGS -DEBUG_DESC= Enable debugging +DEBUG_DESC= Enable debugging (and -O0 -g) HI10P_DESC= Enable 10-bit pixels (may break on i386) HI12P_DESC= Enable 12-bit pixels (may break on i386) HI8P_DESC= Enable 8-bit pixel-width (you, probably, want this) OPTIMIZED_FLAGS_DESC= Enable O3 optimization SVTHEVC_DESC= HEVC encoding via SVT-HEVC -VMAF_DESC= Per frame and aggregate VMAF score +VMAF_DESC= VMAF scores (broken: needs older VMAF) +VMAF_USES= localbase:ldflags -DEBUG_PREVENTS= OPTIMIZED_FLAGS -DEBUG_PREVENTS_MSG= Optimizations are incompatible with debugging code DEBUG_CMAKE_ON= -DCMAKE_ASM_NASM_FLAGS:STRING="-g -O0" -OPTIMIZED_FLAGS_CFLAGS= -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" +SVTHEVC_CMAKE_BOOL= ENABLE_SVT_HEVC +VMAF_CMAKE_ON= -DVMAF_INCLUDE_DIR:PATH="${LOCALBASE}/include/libvmaf" 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" .include -.if ${ARCH} == aarch64 && ${PORT_OPTIONS:MASM} -BUILD_DEPENDS= as:devel/binutils -USE_GCC= yes -.endif - -.if ${ARCH:Mpowerpc64*} && ${PORT_OPTIONS:MASM} +.if ${ARCH:Mpowerpc64*} CMAKE_ARGS+= -DCPU_POWER8=ON \ -DENABLE_ALTIVEC=ON .endif -.if ${ARCH} != aarch64 && !${ARCH:Mpowerpc64*} && ${PORT_OPTIONS:MASM} +.if !${ARCH:Mpowerpc64*} && !${ARCH:Marmv7} BUILD_DEPENDS= nasm:devel/nasm .endif @@ -92,36 +78,37 @@ CMAKE_OTHER_ARGS= ${CMAKE_ARGS:C/.*-D_END_CUSTOM_OPTIONS=1 +//W} CFLAGS:= ${CFLAGS:N-O*} -O0 -g .endif +.if ${PORT_OPTIONS:MOPTIMIZED_FLAGS} +CFLAGS:= ${CFLAGS:N-O*} -O3 +.endif + .for b in ${OTHER_DEPTHS:C/HI([0-9]+)P/\1/} EXTRA_LINK_FLAGS+= -L${WRKSRC:H}/${b}bit .if ${ARCH:Mpowerpc64*} -.if ${b} != 8 || ! ${PORT_OPTIONS:MASM} +.if ${b} != 8 ASSEMBLY= false .else ASSEMBLY= true .endif -.if ${PORT_OPTIONS:MASM} -POWER8= true -.else -POWER8= false -.endif +post-patch: + ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/x265.h pre-build:: @${ECHO_MSG} "---> Building the ${b}-bit library ---" ${MKDIR} ${WRKSRC:H}/${b}bit ${CMAKE_BIN} -S ${WRKSRC} -B ${WRKSRC:H}/${b}bit \ ${CMAKE_OTHER_ARGS} ${b:C/1./-DHIGH_BIT_DEPTH:BOOL=true/} \ - -DMAIN${b}:BOOL=true -DENABLE_ALTIVEC=${ASSEMBLY} -DCPU_POWER8=${POWER8} \ + -DMAIN${b}:BOOL=true -DENABLE_ALTIVEC=${ASSEMBLY} -DCPU_POWER8=true \ -DEXPORT_C_API:BOOL=false -DENABLE_CLI=false ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC:H}/${b}bit ${MAKE_ARGS} ${LN} -f ${WRKSRC:H}/${b}bit/libx265.a ${WRKSRC:H}/${b}bit/libx265_${b}bit.a ${ECHO_MSG} "---> Built the ${b}-bit library ---" .else -.if ${ARCH} == i386 && ${b} != 8 || ! ${PORT_OPTIONS:MASM} +.if (${ARCH} == i386 || ${ARCH} == armv7) && $b != 8 ASSEMBLY= false .else ASSEMBLY= true @@ -148,7 +135,7 @@ CMAKE_ARGS+= ${OTHER_DEPTHS:C/HI([0-9]+)P/-DLINKED_\1BIT:BOOL=true/} CMAKE_ARGS+= -DENABLE_SHARED:BOOL=true -.if ${ARCH} == i386 && ${DEFAULT_DEPTH} != "HI8P" || ! ${PORT_OPTIONS:MASM} +.if ${ARCH} == i386 && ${DEFAULT_DEPTH} != "HI8P" CMAKE_ARGS+= -DENABLE_ASSEMBLY:BOOL=false .else .if !${ARCH:Mpowerpc64*} diff --git a/multimedia/x265/distinfo b/multimedia/x265/distinfo index f52b46a4fd2b..7e5f3d943d14 100644 --- a/multimedia/x265/distinfo +++ b/multimedia/x265/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1726840725 -SHA256 (x265-3.5.tar.gz) = 8a5fcfddb3e2db520b637e475a507fb00117d554bdb3204c5828626d888c306a -SIZE (x265-3.5.tar.gz) = 1538610 -SHA256 (x265-asm-warnings.patch) = 9c3fd7fb00d535cf5cb57be5ccecd73731aba883059291b5d0da8501a15cf253 -SIZE (x265-asm-warnings.patch) = 4526 +TIMESTAMP = 1727555881 +SHA256 (x265_3.6.tar.gz) = 663531f341c5389f460d730e62e10a4fcca3428ca2ca109693867bc5fe2e2807 +SIZE (x265_3.6.tar.gz) = 1655889 diff --git a/multimedia/x265/files/patch-arm-assembly b/multimedia/x265/files/patch-arm-assembly new file mode 100644 index 000000000000..e481269c43f0 --- /dev/null +++ b/multimedia/x265/files/patch-arm-assembly @@ -0,0 +1,117 @@ +--- source/common/arm/blockcopy8.S 2024-09-30 08:38:43.172350000 +0200 ++++ source/common/arm/blockcopy8.S 2024-09-30 09:13:08.635457000 +0200 +@@ -833,5 +833,5 @@ + vmov.u32 r0, d0[0] + uasx r0, r0, r0 +- mov r0, r0, lsr 16 ++ lsr r0, r0, #16 + rsb r0, #1024 + bx lr +--- source/common/arm/asm.S 2024-04-04 11:39:50.000000000 +0200 ++++ source/common/arm/asm.S 2024-09-30 19:45:33.295896000 +0200 +@@ -85,4 +85,9 @@ + .endm + ++.macro MYADRLSUB reg:req, label:req ++sub \reg, pc, #((. - \label) & 0xff00) ++sub \reg, \reg, #((. - \label) - ((. - \label) & 0xff00)) + 4 ++.endm ++ + .macro movrel rd, val + #if HAVE_ARMV6T2 && !defined(PIC) +@@ -90,5 +95,5 @@ + movt \rd, #:upper16:\val + #else +- ldr \rd, =\val ++ MYADRLSUB \rd, \val + #endif + .endm +--- source/common/arm/ipfilter8.S 2024-04-04 11:39:50.000000000 +0200 ++++ source/common/arm/ipfilter8.S 2024-09-30 19:48:31.490019000 +0200 +@@ -26,5 +26,5 @@ + #include "asm.S" + +-.section .rodata ++.text + .align 4 + +@@ -43,7 +43,4 @@ + .word -2, -2, 16, 16, 54, 54, -4 ,-4 + .word -2, -2, 10, 10, 58, 58, -2, -2 +- +- +-.text + + // filterPixelToShort(const pixel* src, intptr_t srcStride, int16_t* dst, intptr_t dstStride) +--- source/common/arm/sad-a.S 2024-04-04 11:39:50.000000000 +0200 ++++ source/common/arm/sad-a.S 2024-09-30 19:49:06.534263000 +0200 +@@ -26,11 +26,9 @@ + #include "asm.S" + +-.section .rodata ++.text + + .align 4 + sad12_mask: + .byte 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 +- +-.text + + /* sad4x4(pixel* dst, intptr_t dstStride, const pixel* src, intptr_t srcStride) +--- source/test/checkasm-arm.S 2024-04-04 11:39:50.000000000 +0200 ++++ source/test/checkasm-arm.S 2024-10-01 02:51:29.815273000 +0200 +@@ -27,5 +27,5 @@ + #include "../common/arm/asm.S" + +-.section .rodata ++.text + .align 4 + register_init: +@@ -41,6 +41,4 @@ + error_message: + .asciz "failed to preserve register" +- +-.text + + @ max number of args used by any x265 asm function. +--- source/common/cpu.cpp 2024-04-04 11:39:50.000000000 +0200 ++++ source/common/cpu.cpp 2024-10-01 02:56:32.094316000 +0200 +@@ -339,6 +339,6 @@ + + extern "C" { +-void PFX(cpu_neon_test)(void); +-int PFX(cpu_fast_neon_mrc_test)(void); ++void x265_cpu_neon_test(void); ++int x265_cpu_fast_neon_mrc_test(void); + } + +@@ -361,5 +361,5 @@ + + canjump = 1; +- PFX(cpu_neon_test)(); ++ x265_cpu_neon_test(); + canjump = 0; + signal(SIGILL, oldsig); +@@ -377,5 +377,5 @@ + // right now Apple does not seem to support performance counters for this test + #ifndef __MACH__ +- flags |= PFX(cpu_fast_neon_mrc_test)() ? X265_CPU_FAST_NEON_MRC : 0; ++ flags |= x265_cpu_fast_neon_mrc_test() ? X265_CPU_FAST_NEON_MRC : 0; + #endif + // TODO: write dual issue test? currently it's A8 (dual issue) vs. A9 (fast mrc) +--- source/test/testharness.h 2024-04-04 11:39:50.000000000 +0200 ++++ source/test/testharness.h 2024-10-01 03:05:54.786008000 +0200 +@@ -83,9 +83,12 @@ + asm volatile("rdtsc" : "=a" (a) ::"edx"); + #elif X265_ARCH_ARM ++ struct timeval tv; ++ gettimeofday(&tv, nullptr); ++ return static_cast(tv.tv_sec) * 1000000 + tv.tv_usec; + // TOD-DO: verify following inline asm to get cpu Timestamp Counter for ARM arch + // asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(a)); + + // TO-DO: replace clock() function with appropriate ARM cpu instructions +- a = clock(); ++ // a = clock(); + #elif X265_ARCH_ARM64 + asm volatile("mrs %0, cntvct_el0" : "=r"(a)); diff --git a/multimedia/x265/files/patch-source_CMakeLists.txt b/multimedia/x265/files/patch-source_CMakeLists.txt index 8026004c5378..962a2a7a58d1 100644 --- a/multimedia/x265/files/patch-source_CMakeLists.txt +++ b/multimedia/x265/files/patch-source_CMakeLists.txt @@ -1,14 +1,12 @@ --- source/CMakeLists.txt 2023-10-22 22:08:10.704150000 -0400 +++ source/CMakeLists.txt 2023-10-22 22:10:02.947579000 -0400 -@@ -43,7 +43,7 @@ - set(ARM_ALIASES armv6l armv7l aarch64) +@@ -45,5 +45,5 @@ + endif() + set(X86_ALIASES x86 i386 i686 x86_64 amd64) +-set(ARM_ALIASES armv6l armv7l) ++set(ARM_ALIASES armv6l armv7l armv7) + set(ARM64_ALIASES arm64 arm64e aarch64) list(FIND X86_ALIASES "${SYSPROC}" X86MATCH) - list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH) --set(POWER_ALIASES ppc64 ppc64le) -+set(POWER_ALIASES powerpc64 powerpc64le ppc64 ppc64le) - list(FIND POWER_ALIASES "${SYSPROC}" POWERMATCH) - if("${SYSPROC}" STREQUAL "" OR X86MATCH GREATER "-1") - set(X86 1) @@ -122,6 +122,7 @@ option(ENABLE_LIBVMAF "Enable VMAF" OFF) if(ENABLE_LIBVMAF) diff --git a/multimedia/x265/files/patch-source_common_ppc_intrapred__altivec.cpp b/multimedia/x265/files/patch-source_common_ppc_intrapred__altivec.cpp deleted file mode 100644 index b7b6cbcbcaf4..000000000000 --- a/multimedia/x265/files/patch-source_common_ppc_intrapred__altivec.cpp +++ /dev/null @@ -1,14 +0,0 @@ ---- source/common/ppc/intrapred_altivec.cpp.orig 2021-11-16 17:20:04 UTC -+++ source/common/ppc/intrapred_altivec.cpp -@@ -27,7 +27,11 @@ - #include - #include - #include -+#ifdef __linux__ - #include -+#else -+#include -+#endif - #include - #include - #include diff --git a/multimedia/x265/files/patch-source_encoder_api.cpp b/multimedia/x265/files/patch-source_encoder_api.cpp index dcd29b667096..ed77a79d7aa3 100644 --- a/multimedia/x265/files/patch-source_encoder_api.cpp +++ b/multimedia/x265/files/patch-source_encoder_api.cpp @@ -1,4 +1,4 @@ -In svt-hevc 1.5.0, they payload-array (1024 bytes) is part of the structure, +In svt-hevc 1.5.0, the payload-array (1024 bytes) is part of the structure, rather than a pointer to be allocated separately. This patch should allow compiling x265 against both older (1.4.x) and 1.5.x diff --git a/multimedia/x265/files/patch-source_x265.h b/multimedia/x265/files/patch-source_x265.h deleted file mode 100644 index 688edb23a552..000000000000 --- a/multimedia/x265/files/patch-source_x265.h +++ /dev/null @@ -1,13 +0,0 @@ -https://github.com/Netflix/vmaf/commit/122089fa3d23 - ---- source/x265.h.orig 2023-06-27 14:11:49 UTC -+++ source/x265.h -@@ -753,7 +753,7 @@ typedef struct x265_vmaf_commondata - int enable_conf_interval; - }x265_vmaf_commondata; - --static const x265_vmaf_commondata vcd[] = { { NULL, (char *)"/usr/local/share/model/vmaf_v0.6.1.pkl", NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 1, 0 } }; -+static const x265_vmaf_commondata vcd[] = { { NULL, (char *)"/usr/local/share/model/vmaf_v0.6.1.json", NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 1, 0 } }; - - typedef struct x265_temporal_layer { - int poc_offset; /* POC offset */ diff --git a/multimedia/x265/files/patch-warnings b/multimedia/x265/files/patch-warnings index 1f94ec5094bb..e1a65940be2e 100644 --- a/multimedia/x265/files/patch-warnings +++ b/multimedia/x265/files/patch-warnings @@ -1,6 +1,6 @@ ---- source/encoder/entropy.cpp 2023-06-27 10:11:49.000000000 -0400 -+++ source/encoder/entropy.cpp 2023-10-22 21:00:30.522586000 -0400 -@@ -1362,5 +1362,7 @@ +--- source/encoder/entropy.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/encoder/entropy.cpp 2024-09-24 00:56:25.162151000 -0400 +@@ -1758,5 +1762,7 @@ bool bDenomCoded = false; int numRefDirs = slice.m_sliceType == B_SLICE ? 2 : 1; +#if CHECKED_BUILD || _DEBUG @@ -8,7 +8,7 @@ +#endif if ((slice.m_sliceType == P_SLICE && slice.m_pps->bUseWeightPred) || -@@ -1384,5 +1386,7 @@ +@@ -1784,5 +1790,7 @@ } WRITE_FLAG(!!wp[0].wtPresent, "luma_weight_lX_flag"); +#if CHECKED_BUILD || _DEBUG @@ -16,7 +16,7 @@ +#endif } -@@ -1393,5 +1397,7 @@ +@@ -1797,5 +1805,7 @@ wp = slice.m_weightPredTable[list][ref]; WRITE_FLAG(!!wp[1].wtPresent, "chroma_weight_lX_flag"); +#if CHECKED_BUILD || _DEBUG @@ -172,30 +172,171 @@ - dst_stride <<= 1; m_algorithmFlags = algorithmFlags; ---- source/encoder/ratecontrol.cpp 2023-08-24 07:11:18.000000000 -0400 -+++ source/encoder/ratecontrol.cpp 2023-10-22 22:12:33.546126000 -0400 -@@ -580,5 +580,4 @@ - /* read stats */ - p = statsIn; -- double totalQpAq = 0; - for (int i = 0; i < m_numEntries; i++) - { -@@ -645,5 +644,4 @@ - } - rce->qScale = rce->newQScale = x265_qp2qScale(qpRc); -- totalQpAq += qpAq; - rce->qpNoVbv = qNoVbv; - rce->qpaRc = qpRc; -@@ -999,5 +997,5 @@ +--- source/encoder/ratecontrol.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/encoder/ratecontrol.cpp 2024-09-23 23:12:11.531124000 -0400 +@@ -661,5 +661,4 @@ + /* read stats */ + p = statsIn; +- double totalQpAq = 0; + for (int i = 0; i < m_numEntries; i++) + { +@@ -726,5 +725,4 @@ + } + rce->qScale = rce->newQScale = x265_qp2qScale(qpRc); +- totalQpAq += qpAq; + rce->qpNoVbv = qNoVbv; + rce->qpaRc = qpRc; +@@ -1105,5 +1103,5 @@ bool RateControl::initPass2() { - uint64_t allConstBits = 0, allCodedBits = 0; + uint64_t allConstBits = 0; uint64_t allAvailableBits = uint64_t(m_param->rc.bitrate * 1000. * m_numEntries * m_frameDuration); - int startIndex, framesCount, endIndex; -@@ -1010,5 +1008,4 @@ - { - allConstBits += m_rce2Pass[endIndex].miscBits; -- allCodedBits += m_rce2Pass[endIndex].coeffBits + m_rce2Pass[endIndex].mvBits; - if (m_param->rc.rateControlMode == X265_RC_CRF) + int startIndex, endIndex; +@@ -1124,5 +1122,4 @@ { + allConstBits += m_rce2Pass[endIndex].miscBits; +- allCodedBits += m_rce2Pass[endIndex].coeffBits + m_rce2Pass[endIndex].mvBits; + } + +@@ -1222,5 +1219,5 @@ + double qScaleMin = x265_qp2qScale(m_param->rc.qpMin); + double qScaleMax = x265_qp2qScale(m_param->rc.qpMax); +- int iterations = 0 , adjMin, adjMax; ++ int adjMin, adjMax; + CHECKED_MALLOC(fills, double, m_numEntries + 1); + fills++; +@@ -1229,5 +1226,4 @@ + do + { +- iterations++; + prevBits = expectedBits; + +--- source/encoder/search.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/encoder/search.cpp 2024-09-23 23:37:29.009223000 -0400 +@@ -277,5 +277,4 @@ + } + +- uint32_t tuDepthC = tuDepth; + uint32_t log2TrSizeC = log2TrSize - m_hChromaShift; + +@@ -286,5 +285,4 @@ + return; + log2TrSizeC = 2; +- tuDepthC--; + } + +@@ -5706,10 +5708,8 @@ + uint32_t log2TrSizeC = log2TrSize - m_hChromaShift; + uint32_t codeChroma = (m_csp != X265_CSP_I400 && m_frame->m_fencPic->m_picCsp != X265_CSP_I400) ? 1 : 0; +- uint32_t tuDepthC = tuDepth; + if (log2TrSizeC < 2) + { + X265_CHECK(log2TrSize == 2 && m_csp != X265_CSP_I444 && tuDepth, "invalid tuDepth\n"); + log2TrSizeC = 2; +- tuDepthC--; + codeChroma &= !(absPartIdx & 3); + } +--- source/dynamicHDR10/json11/json11.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/dynamicHDR10/json11/json11.cpp 2024-09-23 23:43:58.447286000 -0400 +@@ -158,5 +158,5 @@ + // Constructors + explicit Value(const T &value) : m_value(value) {} +- explicit Value(T &&value) : m_value(move(value)) {} ++ explicit Value(T &&value) : m_value(std::move(value)) {} + + // Get type tag +@@ -205,5 +205,5 @@ + public: + explicit JsonString(const string &value) : Value(value) {} +- explicit JsonString(string &&value) : Value(move(value)) {} ++ explicit JsonString(string &&value) : Value(std::move(value)) {} + }; + +@@ -213,5 +213,5 @@ + public: + explicit JsonArray(const Json::array &value) : Value(value) {} +- explicit JsonArray(Json::array &&value) : Value(move(value)) {} ++ explicit JsonArray(Json::array &&value) : Value(std::move(value)) {} + }; + +@@ -221,5 +221,5 @@ + public: + explicit JsonObject(const Json::object &value) : Value(value) {} +- explicit JsonObject(Json::object &&value) : Value(move(value)) {} ++ explicit JsonObject(Json::object &&value) : Value(std::move(value)) {} + }; + +@@ -263,10 +263,10 @@ + Json::Json(bool value) : m_ptr(value ? statics().t : statics().f) {} + Json::Json(const string &value) : m_ptr(make_shared(value)) {} +-Json::Json(string &&value) : m_ptr(make_shared(move(value))) {} ++Json::Json(string &&value) : m_ptr(make_shared(std::move(value))) {} + Json::Json(const char * value) : m_ptr(make_shared(value)) {} + Json::Json(const Json::array &values) : m_ptr(make_shared(values)) {} +-Json::Json(Json::array &&values) : m_ptr(make_shared(move(values))) {} ++Json::Json(Json::array &&values) : m_ptr(make_shared(std::move(values))) {} + Json::Json(const Json::object &values) : m_ptr(make_shared(values)) {} +-Json::Json(Json::object &&values) : m_ptr(make_shared(move(values))) {} ++Json::Json(Json::object &&values) : m_ptr(make_shared(std::move(values))) {} + + /* * * * * * * * * * * * * * * * * * * * +@@ -362,5 +362,5 @@ + */ + Json fail(string &&msg) { +- return fail(move(msg), Json()); ++ return fail(std::move(msg), Json()); + } + +--- source/encoder/slicetype.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/encoder/slicetype.cpp 2024-09-23 23:46:16.350590000 -0400 +@@ -1455,5 +1455,4 @@ + uint32_t variance; + +- uint64_t blockXY = 0; + pixel* src = curFrame->m_fencPic->m_picOrg[0]; + +@@ -1471,5 +1470,4 @@ + + rowVariance += variance; +- blockXY++; + } + picTotVariance += (uint16_t)(rowVariance / maxCol); +@@ -1502,5 +1500,4 @@ + + rowVariance += variance; +- blockXY++; + } + picTotVariance += (uint16_t)(rowVariance / maxColChroma); +@@ -1526,5 +1523,4 @@ + + rowVariance += variance; +- blockXY++; + } + picTotVariance += (uint16_t)(rowVariance / maxColChroma); +--- source/common/param.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/common/param.cpp 2024-09-23 23:52:41.800395000 -0400 +@@ -871,10 +871,13 @@ + bool bExtraParams = false; + char nameBuf[64]; +- static int count; + + if (!name) + return X265_PARAM_BAD_NAME; + ++#ifdef SVT_HEVC ++ static int count; + count++; ++#endif ++ + // skip -- prefix if provided + if (name[0] == '-' && name[1] == '-') +--- source/common/cudata.cpp 2024-09-13 09:02:55.000000000 -0400 ++++ source/common/cudata.cpp 2024-09-24 00:04:19.872724000 -0400 +@@ -74,5 +74,5 @@ + inline bool isEqualRowOrCol(int addrA, int addrB) + { +- return isEqualCol(addrA, addrB) | isEqualRow(addrA, addrB); ++ return isEqualCol(addrA, addrB) || isEqualRow(addrA, addrB); + } + diff --git a/multimedia/x265/pkg-plist b/multimedia/x265/pkg-plist index 33c170ed4109..25e1a71607c4 100644 --- a/multimedia/x265/pkg-plist +++ b/multimedia/x265/pkg-plist @@ -6,5 +6,5 @@ lib/libhdr10plus.a lib/libhdr10plus.so lib/libx265.a lib/libx265.so -lib/libx265.so.200 +lib/libx265.so.209 libdata/pkgconfig/x265.pc