summaryrefslogtreecommitdiff
path: root/multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/av1an/Makefile2
-rw-r--r--multimedia/handbrake/Makefile18
-rw-r--r--multimedia/handbrake/distinfo26
-rw-r--r--multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs18
-rw-r--r--multimedia/handbrake/files/patch-libhb_enc__qsv.c67
-rw-r--r--multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h19
-rw-r--r--multimedia/handbrake/files/patch-libhb_qsv__common.c91
-rw-r--r--multimedia/handbrake/files/patch-make_include_contrib.defs11
-rw-r--r--multimedia/handbrake/pkg-plist17
-rw-r--r--multimedia/wf-recorder/files/patch-fix-ffmpeg827
-rw-r--r--multimedia/wl-screenrec/Makefile2
11 files changed, 127 insertions, 171 deletions
diff --git a/multimedia/av1an/Makefile b/multimedia/av1an/Makefile
index 39922cc2183d..6203a2b00cf7 100644
--- a/multimedia/av1an/Makefile
+++ b/multimedia/av1an/Makefile
@@ -3,7 +3,7 @@ DISTVERSION= 0.4.4
PORTREVISION= 5
CATEGORIES= multimedia
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Command-line encoding framework with per scene quality
WWW= https://github.com/master-of-zen/Av1an
diff --git a/multimedia/handbrake/Makefile b/multimedia/handbrake/Makefile
index 6a6567b03279..01d2a8acfc69 100644
--- a/multimedia/handbrake/Makefile
+++ b/multimedia/handbrake/Makefile
@@ -1,6 +1,5 @@
PORTNAME= handbrake
-DISTVERSION= 1.9.2
-PORTREVISION= 3
+DISTVERSION= 1.10.1
CATEGORIES= multimedia
MASTER_SITES= https://github.com/HandBrake/HandBrake/releases/download/${DISTVERSION}/
MASTER_SITES+= https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/:contrib
@@ -13,10 +12,11 @@ MAINTAINER= naito.yuichiro@gmail.com
COMMENT= Versatile DVD ripper and video transcoder
WWW= https://handbrake.fr/
-LICENSE= GPLv2
+LICENSE= GPLv2 FDK_AAC
+LICENSE_COMB= multi
LICENSE_NAME_FDK_AAC= Software License for The Fraunhofer FDK AAC Codec Library for Android
LICENSE_FILE_FDK_AAC= ${WRKDIR}/${DISTFILES:Mfdk*:R:R}/NOTICE
-LICENSE_FILE= ${WRKSRC}/COPYING
+LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING
LICENSE_PERMS_FDK_AAC= dist-mirror pkg-mirror auto-accept
ONLY_FOR_ARCHS= amd64 powerpc powerpc64 powerpc64le
@@ -45,16 +45,16 @@ LIB_DEPENDS= libdbus-1.so:devel/dbus \
USES= autoreconf:build compiler:c11 gmake iconv libtool:build \
localbase:ldflags ninja:build pkgconfig python:build
-CONTRIB_FILES= SVT-AV1-v2.3.0.tar.gz \
+CONTRIB_FILES= SVT-AV1-v3.1.0.tar.gz \
fdk-aac-2.0.3.tar.gz \
- ffmpeg-7.1.tar.bz2 \
+ ffmpeg-7.1.1.tar.bz2 \
libbluray-1.3.4.tar.bz2 \
libdvdnav-6.1.1.tar.bz2 \
libdvdread-6.1.3.tar.bz2 \
dav1d-1.5.1.tar.bz2 \
- dovi_tool-libdovi-3.1.2.tar.gz \
- x265_4.1.tar.gz \
- zimg-3.0.5.tar.gz
+ dovi_tool-libdovi-3.3.2.tar.gz \
+ x265-snapshot-20250729-13276.tar.gz \
+ zimg-snapshot-20250624.tar.gz
.if !defined(PACKAGE_BUILDING)
# DVDCSS version hardcoded in contrib/libdvdread/libdvdread-5.0.0-6-gcb1ae87/src/dvd_input.c (dlopen'ed)
diff --git a/multimedia/handbrake/distinfo b/multimedia/handbrake/distinfo
index 6f6d4ac82c9b..9ad80a170b71 100644
--- a/multimedia/handbrake/distinfo
+++ b/multimedia/handbrake/distinfo
@@ -1,12 +1,12 @@
-TIMESTAMP = 1740479422
-SHA256 (handbrake/HandBrake-1.9.2-source.tar.bz2) = f56696b9863a6c926c0eabdcb980cece9aa222c650278d455ac6873d3220ce49
-SIZE (handbrake/HandBrake-1.9.2-source.tar.bz2) = 9431665
-SHA256 (handbrake/SVT-AV1-v2.3.0.tar.gz) = ebb0b484ef4a0dc281e94342a9f73ad458496f5d3457eca7465bec943910c6c3
-SIZE (handbrake/SVT-AV1-v2.3.0.tar.gz) = 10839376
+TIMESTAMP = 1756263493
+SHA256 (handbrake/HandBrake-1.10.1-source.tar.bz2) = eafa87d64b99c457240675f6b89a7f6aa3c1eb56352ec057a0a0949ba449fe8e
+SIZE (handbrake/HandBrake-1.10.1-source.tar.bz2) = 9484661
+SHA256 (handbrake/SVT-AV1-v3.1.0.tar.gz) = 3999586c261dc3d8690fd1489fc74da4e0fdff9159c8ce2b76ddfac001ad96d3
+SIZE (handbrake/SVT-AV1-v3.1.0.tar.gz) = 10908555
SHA256 (handbrake/fdk-aac-2.0.3.tar.gz) = e25671cd96b10bad896aa42ab91a695a9e573395262baed4e4a2ff178d6a3a78
SIZE (handbrake/fdk-aac-2.0.3.tar.gz) = 2518649
-SHA256 (handbrake/ffmpeg-7.1.tar.bz2) = fd59e6160476095082e94150ada5a6032d7dcc282fe38ce682a00c18e7820528
-SIZE (handbrake/ffmpeg-7.1.tar.bz2) = 13260188
+SHA256 (handbrake/ffmpeg-7.1.1.tar.bz2) = 0c8da2f11579a01e014fc007cbacf5bb4da1d06afd0b43c7f8097ec7c0f143ba
+SIZE (handbrake/ffmpeg-7.1.1.tar.bz2) = 13278839
SHA256 (handbrake/libbluray-1.3.4.tar.bz2) = 478ffd68a0f5dde8ef6ca989b7f035b5a0a22c599142e5cd3ff7b03bbebe5f2b
SIZE (handbrake/libbluray-1.3.4.tar.bz2) = 756323
SHA256 (handbrake/libdvdnav-6.1.1.tar.bz2) = c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48
@@ -15,9 +15,9 @@ SHA256 (handbrake/libdvdread-6.1.3.tar.bz2) = ce35454997a208cbe50e91232f0e73fb1a
SIZE (handbrake/libdvdread-6.1.3.tar.bz2) = 395439
SHA256 (handbrake/dav1d-1.5.1.tar.bz2) = 4eddffd108f098e307b93c9da57b6125224dc5877b1b3d157b31be6ae8f1f093
SIZE (handbrake/dav1d-1.5.1.tar.bz2) = 1214503
-SHA256 (handbrake/dovi_tool-libdovi-3.1.2.tar.gz) = 3c74f8f6afdb7d4be97210df201a28a48676b2ebe10c20961176e81e2fd98c36
-SIZE (handbrake/dovi_tool-libdovi-3.1.2.tar.gz) = 450556
-SHA256 (handbrake/x265_4.1.tar.gz) = ef05940bdbf8e2f24c93d799ae8c5d19f43cd235d01c17fa5acf3fa77b48c032
-SIZE (handbrake/x265_4.1.tar.gz) = 1722231
-SHA256 (handbrake/zimg-3.0.5.tar.gz) = a9a0226bf85e0d83c41a8ebe4e3e690e1348682f6a2a7838f1b8cbff1b799bcf
-SIZE (handbrake/zimg-3.0.5.tar.gz) = 326694
+SHA256 (handbrake/dovi_tool-libdovi-3.3.2.tar.gz) = 8ccb1922d7dbb57bc4f2c15c10b90c462f7a5f292efe317c116db923728dd3f1
+SIZE (handbrake/dovi_tool-libdovi-3.3.2.tar.gz) = 489628
+SHA256 (handbrake/x265-snapshot-20250729-13276.tar.gz) = 3feb40d5f7fc37aba193a686a4445efff332f18d0f4830c6af565c3e18d340a8
+SIZE (handbrake/x265-snapshot-20250729-13276.tar.gz) = 1738652
+SHA256 (handbrake/zimg-snapshot-20250624.tar.gz) = 19a96cdc266466be58be86a9271bedb1f080bf4cc14f5ed58ac39dc5b970fd17
+SIZE (handbrake/zimg-snapshot-20250624.tar.gz) = 3217869
diff --git a/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
index 178198ba7762..1ab6fbcaafbd 100644
--- a/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
+++ b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
@@ -1,20 +1,10 @@
-Disable vulkan support.
-Handbrake doesn't require Vulkan but if it is installed in build environment
-(for other ports like QT5), It fails to build Handbrake, because following
-definitions has been removed since vulkan-headers-1.3.238.
-
-* VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME
-* VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME
-
---- contrib/ffmpeg/module.defs.orig 2024-12-01 15:28:40 UTC
+--- contrib/ffmpeg/module.defs.orig 2025-08-08 16:41:24 UTC
+++ contrib/ffmpeg/module.defs
-@@ -34,8 +34,10 @@ FFMPEG.CONFIGURE.extra = \
- --enable-filters \
+@@ -35,6 +35,7 @@ FFMPEG.CONFIGURE.extra = \
--disable-hwaccels \
--disable-vdpau \
-+ --disable-vulkan \
--disable-postproc \
++ --disable-vulkan \
--disable-encoders \
-+ --disable-xlib \
--enable-libmp3lame \
- --enable-encoder=ac3 \
+ --enable-encoder=aac \
diff --git a/multimedia/handbrake/files/patch-libhb_enc__qsv.c b/multimedia/handbrake/files/patch-libhb_enc__qsv.c
deleted file mode 100644
index 51f61011c734..000000000000
--- a/multimedia/handbrake/files/patch-libhb_enc__qsv.c
+++ /dev/null
@@ -1,67 +0,0 @@
---- libhb/enc_qsv.c.orig 2024-12-01 15:28:40 UTC
-+++ libhb/enc_qsv.c
-@@ -174,7 +174,9 @@ static int log_encoder_params(const hb_work_private_t
- {
- const mfxExtCodingOption *option1 = NULL;
- const mfxExtCodingOption2 *option2 = NULL;
-+#if (MFX_VERSION >= 2012)
- const mfxExtAV1ScreenContentTools *extScreenContentCoding = NULL;
-+#endif
- const mfxExtHyperModeParam *extHyperModeOption = NULL;
-
- for (int i = 0; i < videoParam->NumExtParam; i++)
-@@ -188,10 +190,12 @@ static int log_encoder_params(const hb_work_private_t
- {
- option2 = (mfxExtCodingOption2*)videoParam->ExtParam[i];
- }
-+#if (MFX_VERSION >= 2012)
- else if (option->Header.BufferId == MFX_EXTBUFF_AV1_SCREEN_CONTENT_TOOLS)
- {
- extScreenContentCoding = (mfxExtAV1ScreenContentTools*)videoParam->ExtParam[i];
- }
-+#endif
- else if (option->Header.BufferId == MFX_EXTBUFF_HYPER_MODE_PARAM)
- {
- extHyperModeOption = (mfxExtHyperModeParam*)videoParam->ExtParam[i];
-@@ -221,13 +225,14 @@ static int log_encoder_params(const hb_work_private_t
- hb_log("encqsvInit: GopRefDist %"PRIu16" GopPicSize %"PRIu16" NumRefFrame %"PRIu16" IdrInterval %"PRIu16"",
- videoParam->mfx.GopRefDist, videoParam->mfx.GopPicSize, videoParam->mfx.NumRefFrame, videoParam->mfx.IdrInterval);
-
-+#if (MFX_VERSION >= 2012)
- if (extScreenContentCoding && ((extScreenContentCoding->IntraBlockCopy == MFX_CODINGOPTION_ON) || (extScreenContentCoding->Palette == MFX_CODINGOPTION_ON)))
- {
- hb_log("encqsvInit: ScreenContentCoding is enabled IBC %s, Palette %s",
- (extScreenContentCoding->IntraBlockCopy == MFX_CODINGOPTION_ON) ? "on" : "off",
- (extScreenContentCoding->Palette == MFX_CODINGOPTION_ON) ? "on" : "off");
- }
--
-+#endif
- if (pv->qsv_info->capabilities & HB_QSV_CAP_B_REF_PYRAMID)
- {
- hb_log("encqsvInit: BFramesMax %d BRefType %s",
-@@ -1670,7 +1675,9 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job)
- mfxSession session = (mfxSession)0;
- mfxExtCodingOption option1_buf, *option1 = &option1_buf;
- mfxExtCodingOption2 option2_buf, *option2 = &option2_buf;
-+#if (MFX_VERSION >= 2012)
- mfxExtAV1ScreenContentTools screencont_coding_buf, *screencont_coding = &screencont_coding_buf;
-+#endif
- mfxExtCodingOptionSPSPPS sps_pps_buf, *sps_pps = &sps_pps_buf;
- mfxExtAV1BitstreamParam av1_bitstream_buf, *av1_bitstream = &av1_bitstream_buf;
- mfxExtChromaLocInfo chroma_loc_info_buf, *chroma_loc_info = &chroma_loc_info_buf;
-@@ -1795,6 +1802,7 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job)
- {
- videoParam.ExtParam[videoParam.NumExtParam++] = (mfxExtBuffer*)hyper_encode;
- }
-+#if (MFX_VERSION >= 2012)
- memset(screencont_coding, 0, sizeof(mfxExtAV1ScreenContentTools));
- screencont_coding->Header.BufferId = MFX_EXTBUFF_AV1_SCREEN_CONTENT_TOOLS;
- screencont_coding->Header.BufferSz = sizeof(mfxExtAV1ScreenContentTools);
-@@ -1802,6 +1810,7 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job)
- {
- videoParam.ExtParam[videoParam.NumExtParam++] = (mfxExtBuffer*)screencont_coding;
- }
-+#endif
- /* Query actual encoding parameters after MFXVideoENCODE_Init, some of them could be overridden */
- sts = MFXVideoENCODE_GetVideoParam(session, &videoParam);
- if (sts != MFX_ERR_NONE)
diff --git a/multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h b/multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h
index 87c487304cad..d96a628ca015 100644
--- a/multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h
+++ b/multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h
@@ -1,12 +1,17 @@
---- libhb/handbrake/qsv_common.h.orig 2024-12-01 15:28:40 UTC
+--- libhb/handbrake/qsv_common.h.orig 2025-08-08 16:41:24 UTC
+++ libhb/handbrake/qsv_common.h
-@@ -171,7 +171,9 @@ typedef struct
+@@ -260,8 +260,13 @@ typedef struct
+ {
mfxExtCodingOption2 codingOption2;
- mfxExtVideoSignalInfo videoSignalInfo;
- mfxExtHyperModeParam hyperEncodeParam;
+ hb_triplet_t* hyperEncodeParam;
+#if (MFX_VERSION >= 2012)
mfxExtAV1ScreenContentTools av1ScreenContentToolsParam;
+-
+#endif
- mfxExtChromaLocInfo chromaLocInfo;
- mfxExtMasteringDisplayColourVolume masteringDisplayColourVolume;
- mfxExtContentLightLevelInfo contentLightLevelInfo;
++ mfxExtChromaLocInfo chromaLocInfo;
++ mfxExtMasteringDisplayColourVolume masteringDisplayColourVolume;
++ mfxExtContentLightLevelInfo contentLightLevelInfo;
++ mfxExtAV1BitstreamParam av1BitstreamParam;
+ struct
+ {
+ int b_pyramid;
diff --git a/multimedia/handbrake/files/patch-libhb_qsv__common.c b/multimedia/handbrake/files/patch-libhb_qsv__common.c
index 78580b06be46..b0b892e337e7 100644
--- a/multimedia/handbrake/files/patch-libhb_qsv__common.c
+++ b/multimedia/handbrake/files/patch-libhb_qsv__common.c
@@ -1,6 +1,6 @@
---- libhb/qsv_common.c.orig 2024-12-01 15:28:40 UTC
+--- libhb/qsv_common.c.orig 2025-08-08 16:41:24 UTC
+++ libhb/qsv_common.c
-@@ -463,6 +463,7 @@ int qsv_map_mfx_platform_codename(int mfx_platform_cod
+@@ -390,6 +390,7 @@ int qsv_map_mfx_platform_codename(int mfx_platform_cod
case MFX_PLATFORM_DG2:
case MFX_PLATFORM_ALDERLAKE_N:
case MFX_PLATFORM_KEEMBAY:
@@ -8,7 +8,7 @@
case MFX_PLATFORM_METEORLAKE:
case MFX_PLATFORM_BATTLEMAGE:
case MFX_PLATFORM_ARROWLAKE:
-@@ -471,6 +472,7 @@ int qsv_map_mfx_platform_codename(int mfx_platform_cod
+@@ -398,6 +399,7 @@ int qsv_map_mfx_platform_codename(int mfx_platform_cod
case MFX_PLATFORM_LUNARLAKE:
platform = HB_CPU_PLATFORM_INTEL_LNL;
break;
@@ -16,35 +16,34 @@
default:
platform = HB_CPU_PLATFORM_UNSPECIFIED;
}
-@@ -984,7 +986,7 @@ static void init_ext_av1bitstream_option(mfxExtAV1Bits
- extAV1BitstreamParam->Header.BufferSz = sizeof(mfxExtAV1BitstreamParam);
- extAV1BitstreamParam->WriteIVFHeaders = MFX_CODINGOPTION_OFF;
+@@ -928,6 +930,7 @@ static void init_ext_coding_option2(mfxExtCodingOption
+ extCodingOption2->NumMbPerSlice = 2040; // 1920x1088/4
}
--
+
+#if (MFX_VERSION >= 2012)
- static void init_ext_av1screencontent_tools(mfxExtAV1ScreenContentTools *extScreenContentTools)
+ static void init_ext_av1bitstream_option(mfxExtAV1BitstreamParam *extAV1BitstreamParam)
{
- if (extScreenContentTools == NULL)
-@@ -998,7 +1000,7 @@ static void init_ext_av1screencontent_tools(mfxExtAV1S
+ if (extAV1BitstreamParam == NULL)
+@@ -954,6 +957,7 @@ static void init_ext_av1screencontent_tools(mfxExtAV1S
extScreenContentTools->IntraBlockCopy = MFX_CODINGOPTION_OFF;
extScreenContentTools->Palette = MFX_CODINGOPTION_OFF;
}
--
+#endif
+
static int query_capabilities(mfxSession session, int index, mfxVersion version, hb_qsv_info_t *info, int lowpower)
{
- /*
-@@ -1026,7 +1028,9 @@ static int query_capabilities(mfxSession session, int
+@@ -981,8 +985,10 @@ static int query_capabilities(mfxSession session, int
+ mfxExtChromaLocInfo extChromaLocInfo;
mfxExtMasteringDisplayColourVolume extMasteringDisplayColourVolume;
mfxExtContentLightLevelInfo extContentLightLevelInfo;
- mfxExtAV1BitstreamParam extAV1BitstreamParam;
+#if (MFX_VERSION >= 2012)
+ mfxExtAV1BitstreamParam extAV1BitstreamParam;
mfxExtAV1ScreenContentTools extAV1ScreenContentToolsParam;
+#endif
mfxExtHyperModeParam extHyperEncodeParam;
/* Reset capabilities before querying */
-@@ -1460,6 +1464,7 @@ static int query_capabilities(mfxSession session, int
+@@ -1416,6 +1422,7 @@ static int query_capabilities(mfxSession session, int
info->capabilities |= HB_QSV_CAP_HYPERENCODE;
}
}
@@ -52,7 +51,7 @@
if ((lowpower == MFX_CODINGOPTION_ON) && (info->codec_id == MFX_CODEC_AV1))
{
init_video_param(&videoParam);
-@@ -1494,6 +1499,7 @@ static int query_capabilities(mfxSession session, int
+@@ -1450,6 +1457,7 @@ static int query_capabilities(mfxSession session, int
info->capabilities |= HB_QSV_CAP_AV1_SCREENCONTENT;
}
}
@@ -60,7 +59,7 @@
}
return 0;
-@@ -1935,10 +1941,12 @@ static void log_encoder_capabilities(const int log_lev
+@@ -1891,10 +1899,12 @@ static void log_encoder_capabilities(const int log_lev
strcat(buffer, "+nmpslice");
}
}
@@ -73,15 +72,31 @@
if (caps & HB_QSV_CAP_HYPERENCODE)
{
strcat(buffer, " hyperencode");
-@@ -3011,6 +3019,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param, hb_qsv_i
- param->hyperEncodeParam.Mode = mode->value;
+@@ -2686,6 +2696,7 @@ int hb_qsv_select_ffmpeg_options(qsv_data_t * qsv_data
+ hb_log("encavcodec: using Low Power mode");
+ }
+
++#if (MFX_VERSION >= 2012)
+ if((qsv_data->qsv_info->capabilities & HB_QSV_CAP_AV1_SCREENCONTENT) &&
+ qsv_data->param.av1ScreenContentToolsParam.IntraBlockCopy)
+ {
+@@ -2705,6 +2716,7 @@ int hb_qsv_select_ffmpeg_options(qsv_data_t * qsv_data
+ hb_log("encavcodec: ScreenContentCoding is enabled Palette %s",
+ qsv_data->param.av1ScreenContentToolsParam.Palette ? "on" : "off");
+ }
++#endif
+
+ // Transcoding Info
+ MFX_STRUCT_TO_AV_OPTS(BRCParamMultiplier)
+@@ -3318,6 +3330,7 @@ int hb_qsv_param_parse(AVDictionary** av_opts, hb_qsv_
+ param->hyperEncodeParam = mode;
}
}
+#if (MFX_VERSION >= 2012)
else if (!strcasecmp(key, "palette"))
{
if (info->capabilities & HB_QSV_CAP_AV1_SCREENCONTENT)
-@@ -3041,6 +3050,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param, hb_qsv_i
+@@ -3348,6 +3361,7 @@ int hb_qsv_param_parse(AVDictionary** av_opts, hb_qsv_
return HB_QSV_PARAM_UNSUPPORTED;
}
}
@@ -89,32 +104,24 @@
else if (!strcasecmp(key, "async-depth"))
{
int async_depth = hb_qsv_atoi(value, &error);
-@@ -3527,13 +3537,14 @@ int hb_qsv_param_default(hb_qsv_param_t *param, mfxVid
- param->av1BitstreamParam.Header.BufferId = MFX_EXTBUFF_AV1_BITSTREAM_PARAM;
- param->av1BitstreamParam.Header.BufferSz = sizeof(mfxExtAV1BitstreamParam);
- param->av1BitstreamParam.WriteIVFHeaders = MFX_CODINGOPTION_OFF;
+@@ -3617,6 +3631,12 @@ int hb_qsv_param_default(hb_qsv_param_t *param, hb_qsv
+ // introduced in API 2.5
+ param->hyperEncodeParam = hb_triplet4key(hb_qsv_hyper_encode_modes, "off");
+
++ memset(&param->av1BitstreamParam, 0, sizeof(mfxExtAV1BitstreamParam));
++ param->av1BitstreamParam.Header.BufferId = MFX_EXTBUFF_AV1_BITSTREAM_PARAM;
++ param->av1BitstreamParam.Header.BufferSz = sizeof(mfxExtAV1BitstreamParam);
++ param->av1BitstreamParam.WriteIVFHeaders = MFX_CODINGOPTION_OFF;
++
+#if (MFX_VERSION >= 2012)
// introduced in API 2.11
memset(&param->av1ScreenContentToolsParam, 0, sizeof(mfxExtAV1ScreenContentTools));
param->av1ScreenContentToolsParam.Header.BufferId = MFX_EXTBUFF_AV1_SCREEN_CONTENT_TOOLS;
- param->av1ScreenContentToolsParam.Header.BufferSz = sizeof(mfxExtAV1ScreenContentTools);
- param->av1ScreenContentToolsParam.IntraBlockCopy = MFX_CODINGOPTION_OFF;
- param->av1ScreenContentToolsParam.Palette = MFX_CODINGOPTION_OFF;
--
-+#endif
- // GOP & rate control
- param->gop.b_pyramid = 1; // enabled by default (if supported)
- param->gop.gop_pic_size = -1; // set automatically
-@@ -3607,10 +3618,12 @@ int hb_qsv_param_default(hb_qsv_param_t *param, mfxVid
- {
- param->videoParam->ExtParam[param->videoParam->NumExtParam++] = (mfxExtBuffer*)&param->av1BitstreamParam;
- }
-+#if (MFX_VERSION >= 2012)
- if (info->capabilities & HB_QSV_CAP_AV1_SCREENCONTENT)
- {
- param->videoParam->ExtParam[param->videoParam->NumExtParam++] = (mfxExtBuffer*)&param->av1ScreenContentToolsParam;
- }
+@@ -3639,6 +3659,7 @@ int hb_qsv_param_default(hb_qsv_param_t *param, hb_qsv
+ param->rc.vbv_buffer_init = .0; // set automatically
+
+ param->low_power = 0;
+#endif
+
#if defined(_WIN32) || defined(__MINGW32__)
if (info->capabilities & HB_QSV_CAP_LOWPOWER_ENCODE)
- {
diff --git a/multimedia/handbrake/files/patch-make_include_contrib.defs b/multimedia/handbrake/files/patch-make_include_contrib.defs
new file mode 100644
index 000000000000..058246d98b42
--- /dev/null
+++ b/multimedia/handbrake/files/patch-make_include_contrib.defs
@@ -0,0 +1,11 @@
+--- make/include/contrib.defs.orig 2025-08-23 10:38:18 UTC
++++ make/include/contrib.defs
+@@ -60,7 +60,7 @@ define import.CONTRIB.defs
+ $(1).EXTRACT.target = $$($(1).build/).stamp.$$($(1).name).extract
+ define $(1).EXTRACT
+ $$(RM.exe) -fr $$($(1).EXTRACT.dir/)
+- $$(TAR.exe) xfC $$($(1).FETCH.distfile) $$($(1).build/)
++ $$(TAR.exe) xfC $$($(1).FETCH.distfile) $$($(1).build/) --no-xattrs
+ $$(TOUCH.exe) $$@
+ endef
+
diff --git a/multimedia/handbrake/pkg-plist b/multimedia/handbrake/pkg-plist
index 58dff1638400..47c05301ae8f 100644
--- a/multimedia/handbrake/pkg-plist
+++ b/multimedia/handbrake/pkg-plist
@@ -3,37 +3,20 @@ bin/HandBrakeCLI
%%X11%%bin/HandBrake
%%X11%%share/applications/fr.handbrake.ghb.desktop
%%X11%%share/icons/hicolor/scalable/apps/fr.handbrake.ghb.svg
-%%X11%%share/locale/af/LC_MESSAGES/ghb.mo
%%X11%%share/locale/bg/LC_MESSAGES/ghb.mo
%%X11%%share/locale/ca/LC_MESSAGES/ghb.mo
%%X11%%share/locale/co/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/cs/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/da/LC_MESSAGES/ghb.mo
%%X11%%share/locale/de/LC_MESSAGES/ghb.mo
%%X11%%share/locale/es/LC_MESSAGES/ghb.mo
%%X11%%share/locale/eu/LC_MESSAGES/ghb.mo
%%X11%%share/locale/fi/LC_MESSAGES/ghb.mo
%%X11%%share/locale/fr/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/he/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/hr/LC_MESSAGES/ghb.mo
%%X11%%share/locale/it/LC_MESSAGES/ghb.mo
%%X11%%share/locale/ja/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/ka/LC_MESSAGES/ghb.mo
%%X11%%share/locale/ko/LC_MESSAGES/ghb.mo
%%X11%%share/locale/nl/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/no/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/pl/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/pt/LC_MESSAGES/ghb.mo
%%X11%%share/locale/pt_BR/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/ro/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/ru/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/si/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/sk/LC_MESSAGES/ghb.mo
%%X11%%share/locale/sl_SI/LC_MESSAGES/ghb.mo
%%X11%%share/locale/sv/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/th/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/tr/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/uk_UA/LC_MESSAGES/ghb.mo
%%X11%%share/locale/zh_CN/LC_MESSAGES/ghb.mo
-%%X11%%share/locale/zh_TW/LC_MESSAGES/ghb.mo
%%X11%%share/metainfo/fr.handbrake.ghb.metainfo.xml
diff --git a/multimedia/wf-recorder/files/patch-fix-ffmpeg8 b/multimedia/wf-recorder/files/patch-fix-ffmpeg8
new file mode 100644
index 000000000000..68bf8d5643ce
--- /dev/null
+++ b/multimedia/wf-recorder/files/patch-fix-ffmpeg8
@@ -0,0 +1,27 @@
+From 560bb92d3ddaeb31d7af77d22d01b0050b45bebe Mon Sep 17 00:00:00 2001
+From: Scott Moreau <oreaus@gmail.com>
+Date: Tue, 8 Oct 2024 12:56:55 -0600
+Subject: [PATCH] frame-writer: Track ffmpeg changes (#279)
+
+* frame-writer: Track ffmpeg changes
+
+The frame_rate variable has been made private API.
+
+* frame-writer: Remove comment
+---
+ src/frame-writer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git src/frame-writer.cpp src/frame-writer.cpp
+index 2a5ba17..b8abe51 100644
+--- src/frame-writer.cpp
++++ src/frame-writer.cpp
+@@ -371,7 +371,7 @@ void FrameWriter::init_video_filters(const AVCodec *codec)
+ this->videoCodecCtx->height = filter_output->h;
+ this->videoCodecCtx->pix_fmt = (AVPixelFormat)filter_output->format;
+ this->videoCodecCtx->time_base = filter_output->time_base;
+- this->videoCodecCtx->framerate = filter_output->frame_rate; // can be 1/0 if unknown
++ this->videoCodecCtx->framerate = AVRational{1,0};
+ this->videoCodecCtx->sample_aspect_ratio = filter_output->sample_aspect_ratio;
+
+ this->hw_frame_context = av_buffersink_get_hw_frames_ctx(
diff --git a/multimedia/wl-screenrec/Makefile b/multimedia/wl-screenrec/Makefile
index 9bd743db8223..4b74e9294d3e 100644
--- a/multimedia/wl-screenrec/Makefile
+++ b/multimedia/wl-screenrec/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 0.1.5
PORTREVISION= 9
CATEGORIES= multimedia wayland
-MAINTAINER= jbeich@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= High performance wlroots screen recording, featuring hardware encoding
WWW= https://github.com/russelltg/wl-screenrec