git: 17614c8f9266 - main - multimedia/handbrake: Update 1.7.2 → 1.9.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 13 Jan 2025 17:24:47 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=17614c8f9266ab35ecad4fca289495d05f253287
commit 17614c8f9266ab35ecad4fca289495d05f253287
Author: Yuichiro NAITO <naito.yuichiro@gmail.com>
AuthorDate: 2025-01-13 17:15:35 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-01-13 17:24:31 +0000
multimedia/handbrake: Update 1.7.2 → 1.9.0
Changelogs:
https://github.com/HandBrake/HandBrake/releases/tag/1.7.3
https://github.com/HandBrake/HandBrake/releases/tag/1.8.0
https://github.com/HandBrake/HandBrake/releases/tag/1.8.1
https://github.com/HandBrake/HandBrake/releases/tag/1.8.2
https://github.com/HandBrake/HandBrake/releases/tag/1.9.0
Improve port:
* add required dependencies;
* remove unnecessary dependencies;
* fix link command-line tool HandBrakeCLI with libX11;
* fix warnings from portclippy.
PR: 277355
---
multimedia/handbrake/Makefile | 60 +++++------
multimedia/handbrake/distinfo | 26 ++---
.../files/patch-contrib_ffmpeg_module.defs | 10 +-
multimedia/handbrake/files/patch-libhb_enc__qsv.c | 67 ++++++++++++
.../files/patch-libhb_handbrake_qsv__common.h | 12 +++
.../handbrake/files/patch-libhb_qsv__common.c | 120 +++++++++++++++++++++
6 files changed, 245 insertions(+), 50 deletions(-)
diff --git a/multimedia/handbrake/Makefile b/multimedia/handbrake/Makefile
index 30d42bb84bda..96d8ca094e49 100644
--- a/multimedia/handbrake/Makefile
+++ b/multimedia/handbrake/Makefile
@@ -1,9 +1,9 @@
PORTNAME= handbrake
-DISTVERSION= 1.7.2
-PORTREVISION= 2
+DISTVERSION= 1.9.0
CATEGORIES= multimedia
MASTER_SITES= https://github.com/HandBrake/HandBrake/releases/download/${DISTVERSION}/
MASTER_SITES+= https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/:contrib
+MASTER_SITES+= https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/:contrib
DISTNAME= HandBrake-${DISTVERSION}
DISTFILES= ${DISTNAME}-source.tar.bz2 ${CONTRIB_FILES:S/$/:contrib/}
DIST_SUBDIR= ${PORTNAME}
@@ -12,8 +12,11 @@ MAINTAINER= naito.yuichiro@gmail.com
COMMENT= Versatile DVD ripper and video transcoder
WWW= https://handbrake.fr/
-LICENSE= GPLv2
-LICENSE_FILE= ${WRKSRC}/COPYING
+LICENSE= GPLv2
+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_PERMS_FDK_AAC= dist-mirror pkg-mirror auto-accept
ONLY_FOR_ARCHS= amd64 powerpc powerpc64 powerpc64le
@@ -23,11 +26,7 @@ BUILD_DEPENDS= bash:shells/bash \
meson:devel/meson \
git:devel/git@lite
LIB_DEPENDS= libdbus-1.so:devel/dbus \
- libgudev-1.0.so:devel/libgudev \
- libharfbuzz.so:print/harfbuzz \
- libfontconfig.so:x11-fonts/fontconfig \
- libfreetype.so:print/freetype2 \
- libfribidi.so:converters/fribidi \
+ libdrm.so:graphics/libdrm \
libturbojpeg.so:graphics/libjpeg-turbo \
libass.so:multimedia/libass \
libspeex.so:audio/speex \
@@ -42,19 +41,18 @@ LIB_DEPENDS= libdbus-1.so:devel/dbus \
libopus.so:audio/opus \
libjansson.so:devel/jansson
-USES= autoreconf:build compiler:c11 gmake gnome iconv libtool:build \
+USES= autoreconf:build compiler:c11 gmake iconv libtool:build \
localbase:ldflags ninja:build pkgconfig python:build
-USE_GNOME= libxml2
-CONTRIB_FILES= SVT-AV1-v1.7.0.tar.gz \
- fdk-aac-2.0.2.tar.gz \
- ffmpeg-6.1.tar.bz2 \
+CONTRIB_FILES= SVT-AV1-v2.3.0.tar.gz \
+ fdk-aac-2.0.3.tar.gz \
+ ffmpeg-7.1.tar.bz2 \
libbluray-1.3.4.tar.bz2 \
libdvdnav-6.1.1.tar.bz2 \
libdvdread-6.1.3.tar.bz2 \
- dav1d-1.3.0.tar.bz2 \
+ dav1d-1.5.0.tar.bz2 \
dovi_tool-libdovi-3.1.2.tar.gz \
- x265-snapshot-20230403-12776.tar.gz \
+ x265_4.1.tar.gz \
zimg-3.0.5.tar.gz
.if !defined(PACKAGE_BUILDING)
@@ -63,24 +61,24 @@ LIB_DEPENDS+= libdvdcss.so:multimedia/libdvdcss
.endif
GNU_CONFIGURE= yes
-MAKE_ENV= V=1 ACLOCAL=${LOCALBASE}/bin/aclocal
-
-BINARY_ALIAS= python3=${PYTHON_VERSION}
CONFIGURE_ARGS= --force --enable-x265
CONFIGURE_TARGET= build
-BUILD_WRKSRC= ${WRKSRC}/build
-INSTALL_WRKSRC= ${WRKSRC}/build
MAKEFILE= GNUmakefile
+MAKE_ENV= V=1 ACLOCAL=${LOCALBASE}/bin/aclocal
ALL_TARGET= #
INSTALL_TARGET= install-strip
-NOPRECIOUSMAKEVARS= yes # for ffmpeg and x264
-
# Enforce linking to bundled libraries instead of system libraries
LDFLAGS+= -L${BUILD_WRKSRC}/contrib/lib
+BINARY_ALIAS= python3=${PYTHON_VERSION}
+NOPRECIOUSMAKEVARS= yes # for ffmpeg and x264
+
+BUILD_WRKSRC= ${WRKSRC}/build
+INSTALL_WRKSRC= ${WRKSRC}/build
+
OPTIONS_DEFINE= FDK_AAC VPL X11
OPTIONS_DEFAULT= VPL X11
OPTIONS_EXCLUDE_powerpc= VPL
@@ -95,23 +93,19 @@ X11_DESC= Build GTK 3 based GUI program
FDK_AAC_CONFIGURE_ENABLE= fdk-aac
FDK_AAC_VARS= LICENSE+=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_PERMS_FDK_AAC= dist-mirror pkg-mirror auto-accept
VPL_LIB_DEPENDS= libvpl.so:multimedia/onevpl \
libmfx.so:multimedia/intel-media-sdk \
libva-drm.so:multimedia/libva
VPL_CONFIGURE_ON= --enable-qsv
-X11_CONFIGURE_ENV= COMPILER_PATH=${LOCALBASE}/bin
-X11_MAKE_ENV= COMPILER_PATH=${LOCALBASE}/bin
+X11_LIB_DEPENDS= libvpx.so:multimedia/libvpx
+X11_USES= gettext desktop-file-utils gnome gstreamer
+X11_USE= gstreamer=gdkpixbuf,libav \
+ gnome=gtk40,intltool,cairo,gdkpixbuf2,libxml2
X11_CONFIGURE_OFF= --disable-gtk
-X11_LIB_DEPENDS= libvpx.so:multimedia/libvpx \
- libnotify.so:devel/libnotify
-X11_USES= gettext desktop-file-utils gnome gstreamer
-X11_USE= gstreamer=gdkpixbuf,libav \
- gnome=gtk30,intltool,cairo,gdkpixbuf2
+X11_CONFIGURE_ENV= COMPILER_PATH=${LOCALBASE}/bin
+X11_MAKE_ENV= COMPILER_PATH=${LOCALBASE}/bin
# HandBrake tries to fetch its dependencies during build phase, which is not
# considered good in FreeBSD. Instead, we will provide the downloaded files.
diff --git a/multimedia/handbrake/distinfo b/multimedia/handbrake/distinfo
index 1028ff6dcb1f..9c04ae4d9f9f 100644
--- a/multimedia/handbrake/distinfo
+++ b/multimedia/handbrake/distinfo
@@ -1,23 +1,23 @@
-TIMESTAMP = 1703662528
-SHA256 (handbrake/HandBrake-1.7.2-source.tar.bz2) = 6a0fa23420483a2d74e58f0ad9944931d8f2e65bee63cf17333cbd9cb560ba93
-SIZE (handbrake/HandBrake-1.7.2-source.tar.bz2) = 9429824
-SHA256 (handbrake/SVT-AV1-v1.7.0.tar.gz) = ce0973584f1a187aa4abf63f509ff8464397120878e322a3153f87e9c161fc4f
-SIZE (handbrake/SVT-AV1-v1.7.0.tar.gz) = 10164910
-SHA256 (handbrake/fdk-aac-2.0.2.tar.gz) = 7812b4f0cf66acda0d0fe4302545339517e702af7674dd04e5fe22a5ade16a90
-SIZE (handbrake/fdk-aac-2.0.2.tar.gz) = 2506597
-SHA256 (handbrake/ffmpeg-6.1.tar.bz2) = eb7da3de7dd3ce48a9946ab447a7346bd11a3a85e6efb8f2c2ce637e7f547611
-SIZE (handbrake/ffmpeg-6.1.tar.bz2) = 12637240
+TIMESTAMP = 1734051770
+SHA256 (handbrake/HandBrake-1.9.0-source.tar.bz2) = c15b451502f5c938798595df897a41290e8881b3efb8edd69ff7db2d985733b0
+SIZE (handbrake/HandBrake-1.9.0-source.tar.bz2) = 9427823
+SHA256 (handbrake/SVT-AV1-v2.3.0.tar.gz) = ebb0b484ef4a0dc281e94342a9f73ad458496f5d3457eca7465bec943910c6c3
+SIZE (handbrake/SVT-AV1-v2.3.0.tar.gz) = 10839376
+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/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
SIZE (handbrake/libdvdnav-6.1.1.tar.bz2) = 367606
SHA256 (handbrake/libdvdread-6.1.3.tar.bz2) = ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369
SIZE (handbrake/libdvdread-6.1.3.tar.bz2) = 395439
-SHA256 (handbrake/dav1d-1.3.0.tar.bz2) = bde8db3d0583a4f3733bb5a4ac525556ffd03ab7dcd8a6e7c091bee28d9466b1
-SIZE (handbrake/dav1d-1.3.0.tar.bz2) = 1033699
+SHA256 (handbrake/dav1d-1.5.0.tar.bz2) = a6ca64e34cec56ae1c2d359e1da5c5386ecd7a3a62f931d026ac4f2ff72ade64
+SIZE (handbrake/dav1d-1.5.0.tar.bz2) = 1211046
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-snapshot-20230403-12776.tar.gz) = 23898695c5520e9e971d12e88125d5ad03ad67f462fc8ecaa016b48adad7cb20
-SIZE (handbrake/x265-snapshot-20230403-12776.tar.gz) = 1622414
+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
diff --git a/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
index bc0f471efe37..178198ba7762 100644
--- a/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
+++ b/multimedia/handbrake/files/patch-contrib_ffmpeg_module.defs
@@ -6,13 +6,15 @@ 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 2022-12-28 08:43:46 UTC
+--- contrib/ffmpeg/module.defs.orig 2024-12-01 15:28:40 UTC
+++ contrib/ffmpeg/module.defs
-@@ -37,6 +37,7 @@ FFMPEG.CONFIGURE.extra = \
- --enable-libzimg \
+@@ -34,8 +34,10 @@ FFMPEG.CONFIGURE.extra = \
+ --enable-filters \
--disable-hwaccels \
--disable-vdpau \
+ --disable-vulkan \
+ --disable-postproc \
--disable-encoders \
++ --disable-xlib \
--enable-libmp3lame \
- --enable-encoder=aac \
+ --enable-encoder=ac3 \
diff --git a/multimedia/handbrake/files/patch-libhb_enc__qsv.c b/multimedia/handbrake/files/patch-libhb_enc__qsv.c
new file mode 100644
index 000000000000..51f61011c734
--- /dev/null
+++ b/multimedia/handbrake/files/patch-libhb_enc__qsv.c
@@ -0,0 +1,67 @@
+--- 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
new file mode 100644
index 000000000000..87c487304cad
--- /dev/null
+++ b/multimedia/handbrake/files/patch-libhb_handbrake_qsv__common.h
@@ -0,0 +1,12 @@
+--- libhb/handbrake/qsv_common.h.orig 2024-12-01 15:28:40 UTC
++++ libhb/handbrake/qsv_common.h
+@@ -171,7 +171,9 @@ typedef struct
+ mfxExtCodingOption2 codingOption2;
+ mfxExtVideoSignalInfo videoSignalInfo;
+ mfxExtHyperModeParam hyperEncodeParam;
++#if (MFX_VERSION >= 2012)
+ mfxExtAV1ScreenContentTools av1ScreenContentToolsParam;
++#endif
+ mfxExtChromaLocInfo chromaLocInfo;
+ mfxExtMasteringDisplayColourVolume masteringDisplayColourVolume;
+ mfxExtContentLightLevelInfo contentLightLevelInfo;
diff --git a/multimedia/handbrake/files/patch-libhb_qsv__common.c b/multimedia/handbrake/files/patch-libhb_qsv__common.c
new file mode 100644
index 000000000000..78580b06be46
--- /dev/null
+++ b/multimedia/handbrake/files/patch-libhb_qsv__common.c
@@ -0,0 +1,120 @@
+--- libhb/qsv_common.c.orig 2024-12-01 15:28:40 UTC
++++ libhb/qsv_common.c
+@@ -463,6 +463,7 @@ int qsv_map_mfx_platform_codename(int mfx_platform_cod
+ case MFX_PLATFORM_DG2:
+ case MFX_PLATFORM_ALDERLAKE_N:
+ case MFX_PLATFORM_KEEMBAY:
++#if (MFX_VERSION >= 2012)
+ 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
+ case MFX_PLATFORM_LUNARLAKE:
+ platform = HB_CPU_PLATFORM_INTEL_LNL;
+ break;
++#endif
+ 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;
+ }
+-
++#if (MFX_VERSION >= 2012)
+ static void init_ext_av1screencontent_tools(mfxExtAV1ScreenContentTools *extScreenContentTools)
+ {
+ if (extScreenContentTools == NULL)
+@@ -998,7 +1000,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
+ mfxExtMasteringDisplayColourVolume extMasteringDisplayColourVolume;
+ mfxExtContentLightLevelInfo extContentLightLevelInfo;
+ mfxExtAV1BitstreamParam extAV1BitstreamParam;
++#if (MFX_VERSION >= 2012)
+ mfxExtAV1ScreenContentTools extAV1ScreenContentToolsParam;
++#endif
+ mfxExtHyperModeParam extHyperEncodeParam;
+
+ /* Reset capabilities before querying */
+@@ -1460,6 +1464,7 @@ static int query_capabilities(mfxSession session, int
+ info->capabilities |= HB_QSV_CAP_HYPERENCODE;
+ }
+ }
++#if (MFX_VERSION >= 2012)
+ 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
+ info->capabilities |= HB_QSV_CAP_AV1_SCREENCONTENT;
+ }
+ }
++#endif
+ }
+
+ return 0;
+@@ -1935,10 +1941,12 @@ static void log_encoder_capabilities(const int log_lev
+ strcat(buffer, "+nmpslice");
+ }
+ }
++#if (MFX_VERSION >= 2012)
+ if (caps & HB_QSV_CAP_AV1_SCREENCONTENT)
+ {
+ strcat(buffer, " av1screencontent");
+ }
++#endif
+ 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;
+ }
+ }
++#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
+ return HB_QSV_PARAM_UNSUPPORTED;
+ }
+ }
++#endif
+ 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;
++#if (MFX_VERSION >= 2012)
+ // introduced in API 2.11
+ memset(¶m->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*)¶m->av1BitstreamParam;
+ }
++#if (MFX_VERSION >= 2012)
+ if (info->capabilities & HB_QSV_CAP_AV1_SCREENCONTENT)
+ {
+ param->videoParam->ExtParam[param->videoParam->NumExtParam++] = (mfxExtBuffer*)¶m->av1ScreenContentToolsParam;
+ }
++#endif
+ #if defined(_WIN32) || defined(__MINGW32__)
+ if (info->capabilities & HB_QSV_CAP_LOWPOWER_ENCODE)
+ {