From: Brad Smith Subject: Re: UPDATE: x265 3.6 To: ports@openbsd.org Date: Wed, 24 Apr 2024 05:28:55 -0400 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) > - {