From e1588845142398ee9e699f8d6487d3a5d67f47b5 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Sat, 9 May 2026 00:29:06 +0000
Subject: [PATCH] Switch to x265 4.2, enable alpha support

---
 cinelerra-5.1/configure.ac                   |  2 +-
 cinelerra-5.1/thirdparty/src/x265_4.2.patch1 |  4 ++
 cinelerra-5.1/thirdparty/src/x265_4.2.patch2 |  7 +++
 cinelerra-5.1/thirdparty/src/x265_4.2.patch3 | 57 ++++++++++++++++++++
 4 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100644 cinelerra-5.1/thirdparty/src/x265_4.2.patch1
 create mode 100644 cinelerra-5.1/thirdparty/src/x265_4.2.patch2
 create mode 100644 cinelerra-5.1/thirdparty/src/x265_4.2.patch3

diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
index 99014ce6..c8a37bce 100644
--- a/cinelerra-5.1/configure.ac
+++ b/cinelerra-5.1/configure.ac
@@ -436,7 +436,7 @@ PKG_3RD([x264],[auto],
   [ . ])
 
 PKG_3RD([x265],[auto],
-  [x265_4.0],
+  [x265_4.2],
   [ libx265.a ],
   [ . source ])
 
diff --git a/cinelerra-5.1/thirdparty/src/x265_4.2.patch1 b/cinelerra-5.1/thirdparty/src/x265_4.2.patch1
new file mode 100644
index 00000000..23d7e84f
--- /dev/null
+++ b/cinelerra-5.1/thirdparty/src/x265_4.2.patch1
@@ -0,0 +1,4 @@
+--- /dev/null	2020-03-14 06:02:18.586124011 +0300
++++ ./configure	2020-03-18 00:04:59.360807192 +0300
+@@ -0,0 +1 @@
++/bin/true
diff --git a/cinelerra-5.1/thirdparty/src/x265_4.2.patch2 b/cinelerra-5.1/thirdparty/src/x265_4.2.patch2
new file mode 100644
index 00000000..12348b11
--- /dev/null
+++ b/cinelerra-5.1/thirdparty/src/x265_4.2.patch2
@@ -0,0 +1,7 @@
+--- /dev/null	2020-03-14 06:02:18.586124011 +0300
++++ ./Makefile	2020-03-18 00:04:59.388807329 +0300
+@@ -0,0 +1,4 @@
++#$(shell cd build/linux ; ./multilib.sh)
++.NOTPARALLEL:
++all:
++	./multilib.sh ; cp 8bit/libx265.a . ; cp 8bit/x265.pc . ; cp 8bit/x265_config.h .
diff --git a/cinelerra-5.1/thirdparty/src/x265_4.2.patch3 b/cinelerra-5.1/thirdparty/src/x265_4.2.patch3
new file mode 100644
index 00000000..8db04cac
--- /dev/null
+++ b/cinelerra-5.1/thirdparty/src/x265_4.2.patch3
@@ -0,0 +1,57 @@
+--- /dev/null	2020-07-19 09:07:01.788494015 +0300
++++ ./multilib.sh	2020-08-02 02:34:58.444933214 +0300
+@@ -0,0 +1,54 @@
++#!/bin/bash
++
++mkdir -p 8bit 10bit 12bit
++
++
++cd 12bit
++if [ $(uname -m) == 'x86_64' ]; then
++  # 64-bit stuff here
++cmake ../source -DHIGH_BIT_DEPTH=ON -DENABLE_ASSEMBLY=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DENABLE_ALPHA=ON -DMAIN12=ON
++else
++  # 32-bit stuff here
++cmake ../source -DHIGH_BIT_DEPTH=ON -DENABLE_ASSEMBLY=OFF -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DENABLE_ALPHA=ON -DMAIN12=ON 
++fi
++make -j $(nproc)
++
++cd ../10bit
++if [ $(uname -m) == 'x86_64' ]; then
++  # 64-bit stuff here
++cmake ../source -DHIGH_BIT_DEPTH=ON -DENABLE_ASSEMBLY=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DENABLE_ALPHA=ON
++else
++  # 32-bit stuff here
++cmake ../source -DHIGH_BIT_DEPTH=ON -DENABLE_ASSEMBLY=OFF -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DENABLE_ALPHA=ON
++fi
++make -j $(nproc)
++
++cd ../8bit
++ln -sf ../10bit/libx265.a libx265_main10.a
++ln -sf ../12bit/libx265.a libx265_main12.a
++cmake ../source -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DENABLE_SHARED=OFF -DENABLE_ALPHA=ON -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON -DENABLE_CLI=OFF
++make -j $(nproc)
++
++# rename the 8bit library, then combine all three into libx265.a
++mv libx265.a libx265_main.a
++
++uname=`uname`
++if [ "$uname" = "Linux" ]
++then
++
++# On Linux, we use GNU ar to combine the static libraries together
++ar -M <<EOF
++CREATE libx265.a
++ADDLIB libx265_main.a
++ADDLIB libx265_main10.a
++ADDLIB libx265_main12.a
++SAVE
++END
++EOF
++
++else
++
++# Mac/BSD libtool
++libtool -static -o libx265.a libx265_main.a libx265_main10.a libx265_main12.a 2>/dev/null
++
++fi
-- 
2.29.0

