From ef3107dcdfddd7cd831dfbadac2987c5084275dd Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Tue, 4 Mar 2025 09:19:26 +0100 Subject: [PATCH] rebuilds --- mingw-w64-ffmpeg/PKGBUILD | 12 +- mingw-w64-ffmpeg4.4/PKGBUILD | 12 +- .../0005-svt-av1-3.0.0.patch | 156 ++++++++++++++++++ mingw-w64-gst-plugins-bad/PKGBUILD | 11 +- .../0004-fix-svt-av1-3-build.patch | 41 +++++ mingw-w64-handbrake/PKGBUILD | 10 +- mingw-w64-libavif/PKGBUILD | 2 +- mingw-w64-libheif/PKGBUILD | 2 +- 8 files changed, 233 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-gst-plugins-bad/0005-svt-av1-3.0.0.patch create mode 100644 mingw-w64-handbrake/0004-fix-svt-av1-3-build.patch diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index 9ddde41052..3df1db60d4 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -7,7 +7,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=7.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="Complete solution to record, convert and stream audio and video (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -78,13 +78,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc" source=(https://ffmpeg.org/releases/${_realname}-${pkgver}.tar.xz{,.asc} "pathtools.c" "pathtools.h" - "0005-Win32-Add-path-relocation-to-frei0r-plugins-search.patch") + "0005-Win32-Add-path-relocation-to-frei0r-plugins-search.patch" + "https://github.com/FFmpeg/FFmpeg/commit/d1ed5c06e3edc5f2b5f3664c80121fa55b0baa95.patch") validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') sha256sums=('733984395e0dbbe5c046abda2dc49a5544e7e0e1e2366bba849222ae9e3a03b1' 'SKIP' 'ebf471173f5ee9c4416c10a78760cea8afaf1a4a6e653977321e8547ce7bf3c0' '1585ef1b61cf53a2ca27049c11d49e0834683dfda798f03547761375df482a90' - '8c74e9b5800dbb41c33a60114712726ec768ad6de8f147c2eb30656fd4c899cc') + '8c74e9b5800dbb41c33a60114712726ec768ad6de8f147c2eb30656fd4c899cc' + '50af862d25bbeddd0d2e3eff7ebe25899651ee24cc23ed6f785180b5523d246e') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -106,6 +108,10 @@ prepare() { apply_patch_with_msg \ 0005-Win32-Add-path-relocation-to-frei0r-plugins-search.patch + + # svt-av1 3.0 support + apply_patch_with_msg \ + d1ed5c06e3edc5f2b5f3664c80121fa55b0baa95.patch } build() { diff --git a/mingw-w64-ffmpeg4.4/PKGBUILD b/mingw-w64-ffmpeg4.4/PKGBUILD index d2ae261054..6811f7fd1c 100644 --- a/mingw-w64-ffmpeg4.4/PKGBUILD +++ b/mingw-w64-ffmpeg4.4/PKGBUILD @@ -7,7 +7,7 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}4.4" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}4.4" pkgver=4.4.5 -pkgrel=4 +pkgrel=5 pkgdesc="Complete solution to record, convert and stream audio and video (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -77,7 +77,8 @@ source=(https://ffmpeg.org/releases/${_realname}-${pkgver}.tar.xz{,.asc} "0003-fix-clang32-build.patch" https://github.com/FFmpeg/FFmpeg/commit/f9620d74cd49c35223304ba41e28be6144e45783.patch https://github.com/FFmpeg/FFmpeg/commit/03823ac0c6a38bd6ba972539e3203a592579792f.patch - https://github.com/FFmpeg/FFmpeg/commit/d2b46c1ef768bc31ba9180f6d469d5b8be677500.patch) + https://github.com/FFmpeg/FFmpeg/commit/d2b46c1ef768bc31ba9180f6d469d5b8be677500.patch + https://github.com/FFmpeg/FFmpeg/commit/d1ed5c06e3edc5f2b5f3664c80121fa55b0baa95.patch) validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') sha256sums=('f9514e0d3515aee5a271283df71636e1d1ff7274b15853bcd84e144be416ab07' 'SKIP' @@ -87,7 +88,8 @@ sha256sums=('f9514e0d3515aee5a271283df71636e1d1ff7274b15853bcd84e144be416ab07' '06481611d3449e2cc4f4759d2e0ad5b1ce2c4f313d0b63d4cb0a51d9fe02a424' '17df7ec458c7c04f365b3a00328abb3a7cf7f9a7ba9cecf0e492be116d7e6277' '2d90ce59ca85ef42e02b0e707080a6b1447783c035f48a7103d71c4d691a4dcf' - '24cbefad7b2ce3b813ef36a36b984e631c579d43b4107baf5d198fb9da23412b') + '24cbefad7b2ce3b813ef36a36b984e631c579d43b4107baf5d198fb9da23412b' + '50af862d25bbeddd0d2e3eff7ebe25899651ee24cc23ed6f785180b5523d246e') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -109,6 +111,10 @@ prepare() { 03823ac0c6a38bd6ba972539e3203a592579792f.patch \ d2b46c1ef768bc31ba9180f6d469d5b8be677500.patch \ f9620d74cd49c35223304ba41e28be6144e45783.patch + + # svt-av1 3.0 support + apply_patch_with_msg \ + d1ed5c06e3edc5f2b5f3664c80121fa55b0baa95.patch } build() { diff --git a/mingw-w64-gst-plugins-bad/0005-svt-av1-3.0.0.patch b/mingw-w64-gst-plugins-bad/0005-svt-av1-3.0.0.patch new file mode 100644 index 0000000000..9fcbeb9507 --- /dev/null +++ b/mingw-w64-gst-plugins-bad/0005-svt-av1-3.0.0.patch @@ -0,0 +1,156 @@ +diff --git a/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c b/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c +index 2ea84982fad2..65e940d43d98 100644 +--- a/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c ++++ b/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c +@@ -75,7 +75,11 @@ typedef struct _GstSvtAv1Enc + guint maximum_buffer_size; + gint intra_period_length; + gint intra_refresh_type; ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ gint level_of_parallelism; ++#else + gint logical_processors; ++#endif + gint target_socket; + gchar *parameters_string; + +@@ -127,9 +131,10 @@ enum + PROP_MAXIMUM_BUFFER_SIZE, + PROP_INTRA_PERIOD_LENGTH, + PROP_INTRA_REFRESH_TYPE, +- PROP_LOGICAL_PROCESSORS, ++ PROP_LOGICAL_PROCESSORS, /// DEPRECATED: should be removed once the minimum version is 3.0.0 + PROP_TARGET_SOCKET, + PROP_PARAMETERS_STRING, ++ PROP_LEVEL_OF_PARALLELISM, + }; + + #define PROP_PRESET_DEFAULT 10 +@@ -142,7 +147,8 @@ enum + #define PROP_MAXIMUM_BUFFER_SIZE_DEFAULT 1000 + #define PROP_INTRA_PERIOD_LENGTH_DEFAULT -2 + #define PROP_INTRA_REFRESH_TYPE_DEFAULT SVT_AV1_KF_REFRESH +-#define PROP_LOGICAL_PROCESSORS_DEFAULT 0 ++#define PROP_LEVEL_OF_PARALLELISM_DEFAULT 0 ++#define PROP_LOGICAL_PROCESSORS_DEFAULT 0 /// DEPRECATED: should be removed once the minimum version is 3.0.0 + #define PROP_TARGET_SOCKET_DEFAULT -1 + #define PROP_PARAMETERS_STRING_DEFAULT NULL + +@@ -307,15 +313,30 @@ gst_svtav1enc_class_init (GstSvtAv1EncClass * klass) + PROP_INTRA_REFRESH_TYPE_DEFAULT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ g_object_class_install_property (gobject_class, ++ PROP_LEVEL_OF_PARALLELISM, ++ g_param_spec_uint ("level-of-parallelism", ++ "Level of Parallelism", ++ "Controls the number of threads and buffers to allocate. 0: auto", ++ 0, ++ 6, ++ PROP_LEVEL_OF_PARALLELISM_DEFAULT, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++#endif ++ + g_object_class_install_property (gobject_class, + PROP_LOGICAL_PROCESSORS, +- g_param_spec_uint ("logical-processors", +- "Logical Processors", +- "Number of logical CPU cores to be used. 0: auto", ++ g_param_spec_uint ("logical-processors", "Logical Processors", ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ "Deprecated. Use level-of-parallelism instead. 0: auto", ++#else ++ "Number of logical CPU cores to be used. Deprecated and replaced with level-of-parallelism in SVT-AV1 3.0.0. 0: auto", ++#endif + 0, + G_MAXUINT, + PROP_LOGICAL_PROCESSORS_DEFAULT, +- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED)); + + g_object_class_install_property (gobject_class, + PROP_TARGET_SOCKET, +@@ -352,7 +373,11 @@ gst_svtav1enc_init (GstSvtAv1Enc * svtav1enc) + svtav1enc->maximum_buffer_size = PROP_MAXIMUM_BUFFER_SIZE_DEFAULT; + svtav1enc->intra_period_length = PROP_INTRA_PERIOD_LENGTH_DEFAULT; + svtav1enc->intra_refresh_type = PROP_INTRA_REFRESH_TYPE_DEFAULT; ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ svtav1enc->level_of_parallelism = PROP_LEVEL_OF_PARALLELISM_DEFAULT; ++#else + svtav1enc->logical_processors = PROP_LOGICAL_PROCESSORS_DEFAULT; ++#endif + svtav1enc->target_socket = PROP_TARGET_SOCKET_DEFAULT; + svtav1enc->parameters_string = PROP_PARAMETERS_STRING_DEFAULT; + } +@@ -403,8 +428,15 @@ gst_svtav1enc_set_property (GObject * object, guint property_id, + case PROP_INTRA_REFRESH_TYPE: + svtav1enc->intra_refresh_type = g_value_get_enum (value); + break; ++ case PROP_LEVEL_OF_PARALLELISM: ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ svtav1enc->level_of_parallelism = g_value_get_int (value); ++#endif ++ break; + case PROP_LOGICAL_PROCESSORS: ++#if !SVT_AV1_CHECK_VERSION(3, 0, 0) + svtav1enc->logical_processors = g_value_get_uint (value); ++#endif + break; + case PROP_TARGET_SOCKET: + svtav1enc->target_socket = g_value_get_int (value); +@@ -459,8 +491,13 @@ gst_svtav1enc_get_property (GObject * object, guint property_id, GValue * value, + case PROP_INTRA_REFRESH_TYPE: + g_value_set_enum (value, svtav1enc->intra_refresh_type); + break; ++ case PROP_LEVEL_OF_PARALLELISM: + case PROP_LOGICAL_PROCESSORS: ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ g_value_set_int (value, svtav1enc->level_of_parallelism); ++#else + g_value_set_uint (value, svtav1enc->logical_processors); ++#endif + break; + case PROP_TARGET_SOCKET: + g_value_set_int (value, svtav1enc->target_socket); +@@ -556,7 +593,11 @@ gst_svtav1enc_configure_svt (GstSvtAv1Enc * svtav1enc) + } + svtav1enc->svt_config->intra_period_length = svtav1enc->intra_period_length; + svtav1enc->svt_config->intra_refresh_type = svtav1enc->intra_refresh_type; ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ svtav1enc->svt_config->level_of_parallelism = svtav1enc->level_of_parallelism; ++#else + svtav1enc->svt_config->logical_processors = svtav1enc->logical_processors; ++#endif + svtav1enc->svt_config->target_socket = svtav1enc->target_socket; + gst_svtav1enc_parse_parameters_string (svtav1enc); + +@@ -725,11 +766,9 @@ gst_svtav1enc_configure_svt (GstSvtAv1Enc * svtav1enc) + master_display_info.max_display_mastering_luminance; + svtav1enc->svt_config->mastering_display.min_luma = + master_display_info.min_display_mastering_luminance; +- svtav1enc->svt_config->high_dynamic_range_input = TRUE; + } else { + memset (&svtav1enc->svt_config->mastering_display, + 0, sizeof (svtav1enc->svt_config->mastering_display)); +- svtav1enc->svt_config->high_dynamic_range_input = FALSE; + } + + GstVideoContentLightLevel content_light_level; +@@ -938,8 +977,13 @@ gst_svtav1enc_open (GstVideoEncoder * encoder) + + GST_DEBUG_OBJECT (svtav1enc, "open"); + ++#if SVT_AV1_CHECK_VERSION(3, 0, 0) ++ EbErrorType res = svt_av1_enc_init_handle (&svtav1enc->svt_encoder, ++ svtav1enc->svt_config); ++#else + EbErrorType res = svt_av1_enc_init_handle (&svtav1enc->svt_encoder, NULL, + svtav1enc->svt_config); ++#endif + if (res != EB_ErrorNone) { + GST_ELEMENT_ERROR (svtav1enc, + LIBRARY, +-- +GitLab + diff --git a/mingw-w64-gst-plugins-bad/PKGBUILD b/mingw-w64-gst-plugins-bad/PKGBUILD index e38ac663ae..86521f7d35 100644 --- a/mingw-w64-gst-plugins-bad/PKGBUILD +++ b/mingw-w64-gst-plugins-bad/PKGBUILD @@ -8,7 +8,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs" "${MINGW_PACKAGE_PREFIX}-gst-plugins-bad" "${MINGW_PACKAGE_PREFIX}-gst-plugin-opencv") pkgver=1.24.12 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer Multimedia Framework Bad Plugins (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -86,13 +86,15 @@ source=("${url}/src/${_realname}/${_realname}-${pkgver}.tar.xz"{,.asc} "0001-meson-fix-vulkan.patch" "0002-fix-vulkan-mkenum.patch" "0003-enable-mediafoundation-plugin.patch" - "0004-check-d3d11-header.patch") + "0004-check-d3d11-header.patch" + "0005-svt-av1-3.0.0.patch") sha256sums=('3d386af3d1dbd1a06c74a6251250c269b481e703f0e3255ba89ef6c1e063afea' 'SKIP' '000907bb77b31bd5717297aaa9f7ab7d01a0c9a0e7966fd05f077e786b8e652f' '5ca55fdfc4c5d10d2319f83dddac8130c2ffab67b1248d2233cdcb188d5a0fd3' '5cf2daa1b967112139e780a256957642cd005c25b1572e892d03021d1dec60ef' - '547248d0ea092dee103c452f5d12fc0302237244b3184d00bcb3afdac2476470') + '547248d0ea092dee103c452f5d12fc0302237244b3184d00bcb3afdac2476470' + '19ea78c3acc8a1d53858f6b51388cb1367510462ab56ea518122826eed189b66') validpgpkeys=('D637032E45B8C6585B9456565D2EEE6F6F349D7C') # Tim Müller apply_patch_with_msg() { @@ -116,6 +118,9 @@ prepare() { apply_patch_with_msg \ 0004-check-d3d11-header.patch + + # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8539 + patch -Nbp3 -i "${srcdir}/0005-svt-av1-3.0.0.patch" } build() { diff --git a/mingw-w64-handbrake/0004-fix-svt-av1-3-build.patch b/mingw-w64-handbrake/0004-fix-svt-av1-3-build.patch new file mode 100644 index 0000000000..30f4841ca9 --- /dev/null +++ b/mingw-w64-handbrake/0004-fix-svt-av1-3-build.patch @@ -0,0 +1,41 @@ +From 75f9c84c140c8841cfe1324ef59452025899ad8b Mon Sep 17 00:00:00 2001 +From: Damiano Galassi +Date: Fri, 21 Feb 2025 12:05:14 +0100 +Subject: [PATCH] contrib: update SVT-AV1 to 3.0.0 + +--- + contrib/svt-av1/A02-memory-leak-fix.patch | 10 ++++++++++ + contrib/svt-av1/module.defs | 6 +++--- + libhb/encsvtav1.c | 2 +- + 3 files changed, 14 insertions(+), 4 deletions(-) + create mode 100644 contrib/svt-av1/A02-memory-leak-fix.patch + +diff --git a/contrib/svt-av1/A02-memory-leak-fix.patch b/contrib/svt-av1/A02-memory-leak-fix.patch +new file mode 100644 +index 000000000000..2615b1e75c31 +--- /dev/null ++++ b/contrib/svt-av1/A02-memory-leak-fix.patch +@@ -0,0 +1,10 @@ ++diff --git a/Source/Lib/Codec/global_me.c b/Source/Lib/Codec/global_me.c ++index f6adbf59..53002238 100644 ++--- a/Source/Lib/Codec/global_me.c +++++ b/Source/Lib/Codec/global_me.c ++@@ -454,4 +454,5 @@ void compute_global_motion(PictureParentControlSet *pcs, int *frm_corners, int n ++ *best_wm = global_motion; ++ ++ for (int m = 0; m < RANSAC_NUM_MOTIONS; m++) { free(params_by_motion[m].inliers); } +++ free(correspondences); ++ } +diff --git a/libhb/encsvtav1.c b/libhb/encsvtav1.c +index 2f16984d5139..54f52a117465 100644 +--- a/libhb/encsvtav1.c ++++ b/libhb/encsvtav1.c +@@ -99,7 +99,7 @@ int encsvtInit(hb_work_object_t *w, hb_job_t *job) + EbErrorType svt_ret; + int ret; + +- svt_ret = svt_av1_enc_init_handle(&pv->svt_handle, pv, &pv->enc_params); ++ svt_ret = svt_av1_enc_init_handle(&pv->svt_handle, &pv->enc_params); + if (svt_ret != EB_ErrorNone) + { + hb_error("encsvtav1: error initializing encoder handle"); diff --git a/mingw-w64-handbrake/PKGBUILD b/mingw-w64-handbrake/PKGBUILD index 11bcd48a8f..c477b3762e 100644 --- a/mingw-w64-handbrake/PKGBUILD +++ b/mingw-w64-handbrake/PKGBUILD @@ -4,7 +4,7 @@ _realname=handbrake pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.9.2 -pkgrel=1 +pkgrel=2 pkgdesc="The open source video transcoder (mingw-w64)" arch=('any') mingw_arch=('ucrt64' 'clang64') @@ -39,13 +39,15 @@ source=( "https://github.com/HandBrake/HandBrake/commit/09e99ce641c840686b1b5f860263e89ad7d6651d.patch" "0001-handbrake-workaround-build-system.patch" "0003-Remove-ambient-viewing-support.patch" + "0004-fix-svt-av1-3-build.patch" ) sha256sums=('f56696b9863a6c926c0eabdcb980cece9aa222c650278d455ac6873d3220ce49' 'SKIP' '010910a0c287d7a93ba9d13c52e1c671a64b65915f6b232c37b695e44ef02eb5' 'f1da71bb593a5ad18893c60a3e07d059d34245351fb7957472b2e749fc6f939d' '3a240bc164143706c025dd8809f969352e0dbd0226611ee9a97c05eb772a9d75' - '5245ef3310df3326a28f0da40e78d8bfd6cd83f790600e3557acc99b1de6ac32') + '5245ef3310df3326a28f0da40e78d8bfd6cd83f790600e3557acc99b1de6ac32' + 'f420fb4de585ccb461eb0fdae3572c5c3d8b80a8a3b1dde822aa81e9754a6189') validpgpkeys=('1629C061B3DDE7EB4AE34B81021DB8B44E4A8645') # HandBrake Team _apply_patch_with_msg() { @@ -67,6 +69,10 @@ prepare() { patch -R -p1 -i "${srcdir}/6f2cd466ef0e029d9e5a51ac8640c3ab64e212f6.patch" patch -R -p1 -i "${srcdir}/09e99ce641c840686b1b5f860263e89ad7d6651d.patch" + # update SVT-AV1 to 3.0.0 + # https://github.com/HandBrake/HandBrake/commit/75f9c84c140c8841cfe1324ef59452025899ad8b + patch -p1 -i "${srcdir}/0004-fix-svt-av1-3-build.patch" + # Put all the magic here _apply_patch_with_msg 0001-handbrake-workaround-build-system.patch diff --git a/mingw-w64-libavif/PKGBUILD b/mingw-w64-libavif/PKGBUILD index 5149dacf02..8fdf836cc7 100644 --- a/mingw-w64-libavif/PKGBUILD +++ b/mingw-w64-libavif/PKGBUILD @@ -4,7 +4,7 @@ _realname=libavif pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="Library for encoding and decoding .avif files (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64') diff --git a/mingw-w64-libheif/PKGBUILD b/mingw-w64-libheif/PKGBUILD index fd7d4e3381..a1ab75a680 100644 --- a/mingw-w64-libheif/PKGBUILD +++ b/mingw-w64-libheif/PKGBUILD @@ -4,7 +4,7 @@ _realname=libheif pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.19.7 -pkgrel=1 +pkgrel=2 pkgdesc="HEIF image decoder/encoder library and tools (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')