From: Brad Smith Subject: Re: UPDATE: x265 3.6 To: ports@openbsd.org Date: Fri, 3 May 2024 11:54:26 -0400 ping. On 2024-04-24 5:28 a.m., Brad Smith wrote: > ping. > > On 2024-04-05 4:19 p.m., Brad Smith wrote: >> Here is an update to x265 3.6. >> >> >> Version 3.6 >> =========== >> >> Release date - 4th April, 2024. >> >> New feature >> ----------- >> 1. Segment based Ratecontrol (SBRC) feature >> 2. Motion-Compensated Spatio-Temporal Filtering >> 3. Scene-cut aware qp - BBAQ (Bidirectional Boundary Aware Quantization) >> 4. Histogram-Based Scene Change Detection >> 5. Film-Grain characteristics as a SEI message to support Film Grain >> Synthesis(FGS) >> 6. Add temporal layer implementation(Hierarchical B-frame >> implementation) >>   Enhancements to existing features >> --------------------------------- >> 1. Added Dolby Vision 8.4 Profile Support >> >> API changes >> ----------- >> 1. Add Segment based Ratecontrol(SBRC) feature: "--[no-]sbrc". >> 2. Add command line parameter for mcstf feature: "--[no-]mctf". >> 3. Add command line parameters for the scene cut aware qp feature: >> "--scenecut-aware-qp" and "--masking-strength". >> 4. Add command line parameters for Histogram-Based Scene Change >> Detection: "--hist-scenecut". >> 5. Add film grain characteristics as a SEI message to the bitstream: >> "--film-grain " >> 6. cli: add new option --cra-nal (Force nal type to CRA to all frames >> expect for the first frame, works only with keyint 1) >> >> Optimizations >> --------------------- >> ARM64 NEON optimizations:- Several time-consuming C functions have >> been optimized for the targeted platform - aarch64. The overall >> performance increased by around 20%. >> SVE/SVE2 optimizations >> >> Bug fixes >> --------- >> 1. Linux bug to utilize all the cores >> 2. Crash with hist-scenecut build when source resolution is not >> multiple of minCuSize >> 3. 32bit and 64bit builds generation for ARM >> 4. bugs in zonefile feature (Reflect Zonefile Parameters inside >> Lookahead, extra IDR issue, Avg I Slice QP value issue etc..) >> 5. Add x86 ASM implementation for subsampling luma >> 6. Fix for abrladder segfault with load reuse level 1 >> 7. Reorder miniGOP based on temporal layer hierarchy and add support >> for more B frame >> 8. Add MacOS aarch64 build support >> 9. Fix boundary condition issue for Gaussian filter >> >> >> Index: Makefile >> =================================================================== >> RCS file: /cvs/ports/multimedia/x265/Makefile,v >> retrieving revision 1.58 >> diff -u -p -u -p -r1.58 Makefile >> --- Makefile    20 Feb 2024 10:05:00 -0000    1.58 >> +++ Makefile    5 Apr 2024 19:46:36 -0000 >> @@ -1,13 +1,12 @@ >>   COMMENT=    free H.265/HEVC encoder >>   -VER=        3.5 >> +VER=        3.6 >>   DISTNAME=    x265_${VER} >>   PKGNAME=    x265-${VER} >> -REVISION=    3 >>   CATEGORIES=    multimedia >>   SITES= https://bitbucket.org/multicoreware/x265_git/downloads/ >>   -SHARED_LIBS=    x265    23.0 >> +SHARED_LIBS=    x265    24.0 >>     HOMEPAGE=    https://x265.org/ >>   Index: distinfo >> =================================================================== >> RCS file: /cvs/ports/multimedia/x265/distinfo,v >> retrieving revision 1.26 >> diff -u -p -u -p -r1.26 distinfo >> --- distinfo    24 Apr 2021 05:48:25 -0000    1.26 >> +++ distinfo    5 Apr 2024 19:46:36 -0000 >> @@ -1,2 +1,2 @@ >> -SHA256 (x265_3.5.tar.gz) = 5wozNcrKy7oLOiDsb+zWeDkyKI68gWOtdLzJYGR3yug= >> -SIZE (x265_3.5.tar.gz) = 1537044 >> +SHA256 (x265_3.6.tar.gz) = ZjUx80HFOJ9GDXMOYuEKT8yjQoyiyhCWk4Z7xf4uKAc= >> +SIZE (x265_3.6.tar.gz) = 1655889 >> Index: patches/patch-source_CMakeLists_txt >> =================================================================== >> RCS file: >> /cvs/ports/multimedia/x265/patches/patch-source_CMakeLists_txt,v >> retrieving revision 1.7 >> diff -u -p -u -p -r1.7 patch-source_CMakeLists_txt >> --- patches/patch-source_CMakeLists_txt    11 Mar 2022 19:39:29 >> -0000    1.7 >> +++ patches/patch-source_CMakeLists_txt    5 Apr 2024 19:46:36 -0000 >> @@ -1,7 +1,7 @@ >>   Index: source/CMakeLists.txt >>   --- source/CMakeLists.txt.orig >>   +++ source/CMakeLists.txt >> -@@ -485,7 +485,8 @@ if(POWER) >> +@@ -523,7 +523,8 @@ if(POWER) >>        endif() >>    endif() >>    Index: patches/patch-source_common_aarch64_asm_S >> =================================================================== >> RCS file: >> /cvs/ports/multimedia/x265/patches/patch-source_common_aarch64_asm_S,v >> retrieving revision 1.3 >> diff -u -p -u -p -r1.3 patch-source_common_aarch64_asm_S >> --- patches/patch-source_common_aarch64_asm_S    17 Jun 2023 22:18:31 >> -0000    1.3 >> +++ patches/patch-source_common_aarch64_asm_S    5 Apr 2024 19:46:36 >> -0000 >> @@ -1,50 +1,7 @@ >> -- fix the compiling errors on MAC >> -  0983cffc501e5279e7d9e9b2241b506cb332efcb >> -- fix clang compile errors on linux >> -  577b658105b90ec1c04b049e43a51384172fb8fc >> - >>   Index: source/common/aarch64/asm.S >>   --- source/common/aarch64/asm.S.orig >>   +++ source/common/aarch64/asm.S >> -@@ -25,23 +25,35 @@ >> - >> - #ifdef PREFIX >> - #define EXTERN_ASM _ >> -+#define HAVE_AS_FUNC 0 >> -+#elif defined __clang__ >> -+#define EXTERN_ASM >> -+#define HAVE_AS_FUNC 0 >> -+#define PREFIX 1 >> - #else >> - #define EXTERN_ASM >> -+#define HAVE_AS_FUNC 1 >> - #endif >> - >> - #ifdef __ELF__ >> - #define ELF >> - #else >> -+#ifdef PREFIX >> -+#define ELF # >> -+#else >> - #define ELF @ >> - #endif >> -+#endif >> - >> --#define HAVE_AS_FUNC 1 >> -- >> - #if HAVE_AS_FUNC >> - #define FUNC >> - #else >> -+#ifdef PREFIX >> -+#define FUNC # >> -+#else >> - #define FUNC @ >> - #endif >> -+#endif >> - >> - .macro function name, export=1 >> -     .macro endfunc >> -@@ -56,6 +68,7 @@ ELF     .hidden EXTERN_ASM\name >> +@@ -97,6 +97,7 @@ ELF     .hidden EXTERN_ASM\name >>    ELF     .type   EXTERN_ASM\name, %function >>    FUNC    .func   EXTERN_ASM\name >>    EXTERN_ASM\name: >> Index: patches/patch-source_common_x86_h-ipfilter8_asm >> =================================================================== >> RCS file: patches/patch-source_common_x86_h-ipfilter8_asm >> diff -N patches/patch-source_common_x86_h-ipfilter8_asm >> --- patches/patch-source_common_x86_h-ipfilter8_asm    24 Jan 2023 >> 16:17:29 -0000    1.1 >> +++ /dev/null    1 Jan 1970 00:00:00 -0000 >> @@ -1,23 +0,0 @@ >> -Index: source/common/x86/h-ipfilter8.asm >> ---- source/common/x86/h-ipfilter8.asm.orig >> -+++ source/common/x86/h-ipfilter8.asm >> -@@ -125,6 +125,9 @@ const pb_8tap_hps_0, times 2 db 0, 1, 1, 2, 2, >> 3, 3, 4 >> - ALIGN 32 >> - interp4_hps_shuf: times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, >> 9, 10, 11, 12 >> - >> -+ALIGN 32 >> -+const interp_4tap_8x8_horiz_shuf,   dd 0, 4, 1, 5, 2, 6, 3, 7 >> -+ >> - SECTION .text >> - >> - cextern pw_1 >> -@@ -1458,9 +1461,6 @@ cglobal interp_4tap_horiz_pp_4x32, 4, 6, 5, >> src, srcst >> -     jnz         .loop >> - >> -     RET >> -- >> --ALIGN 32 >> --const interp_4tap_8x8_horiz_shuf,   dd 0, 4, 1, 5, 2, 6, 3, 7 >> - >> - %macro FILTER_H4_w6 3 >> -     movu        %1, [srcq - 1] >> Index: patches/patch-source_common_x86_x86inc_asm >> =================================================================== >> RCS file: >> /cvs/ports/multimedia/x265/patches/patch-source_common_x86_x86inc_asm,v >> retrieving revision 1.1 >> diff -u -p -u -p -r1.1 patch-source_common_x86_x86inc_asm >> --- patches/patch-source_common_x86_x86inc_asm    20 Feb 2024 >> 10:05:00 -0000    1.1 >> +++ patches/patch-source_common_x86_x86inc_asm    5 Apr 2024 19:46:36 >> -0000 >> @@ -1,7 +1,7 @@ >>   Index: source/common/x86/x86inc.asm >>   --- source/common/x86/x86inc.asm.orig >>   +++ source/common/x86/x86inc.asm >> -@@ -717,6 +717,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, >> jnle, jg, >> +@@ -731,6 +731,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, >> jnle, jg, >>        %endif >>        align function_align >>        %2: >> Index: patches/patch-source_test_testharness_h >> =================================================================== >> RCS file: patches/patch-source_test_testharness_h >> diff -N patches/patch-source_test_testharness_h >> --- patches/patch-source_test_testharness_h    11 Mar 2022 19:39:29 >> -0000    1.2 >> +++ /dev/null    1 Jan 1970 00:00:00 -0000 >> @@ -1,15 +0,0 @@ >> -fix the compiling errors on MAC >> -0983cffc501e5279e7d9e9b2241b506cb332efcb >> - >> -Index: source/test/testharness.h >> ---- source/test/testharness.h.orig >> -+++ source/test/testharness.h >> -@@ -73,7 +73,7 @@ class TestHarness (protected) >> - #include >> - #elif ( !defined(__APPLE__) && defined (__GNUC__) && >> defined(__ARM_NEON__)) >> - #include >> --#elif defined(__GNUC__) && (!defined(__clang__) || __clang_major__ >> < 4) >> -+#else >> - /* fallback for older GCC/MinGW */ >> - static inline uint32_t __rdtsc(void) >> - { >