Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: multimedia/handbrake: update to 1.10.2
To:
Landry Breuil <landry@openbsd.org>
Cc:
ports@openbsd.org
Date:
Wed, 12 Nov 2025 20:43:56 +0100

Download raw body.

Thread
On Wed, 12 Nov 2025 20:23:07 +0100,
Landry Breuil <landry@openbsd.org> wrote:
> 
> Le Wed, Nov 12, 2025 at 07:25:35PM +0100, Kirill A. Korinsky a écrit :
> > On Wed, 12 Nov 2025 19:19:04 +0100,
> > Kirill A. Korinsky <kirill@korins.ky> wrote:
> > > 
> > > On Wed, 12 Nov 2025 18:37:47 +0100,
> > > Landry Breuil <landry@openbsd.org> wrote:
> > > > 
> > > > Le Wed, Nov 12, 2025 at 05:15:09PM +0100, Kirill A. Korinsky a écrit :
> > > > > ports@,
> > > > > 
> > > > > I'd like to update multimedia/handbrake to 1.10.2
> > > > > 
> > > > > I had started with clean patches folders.
> > > > > 
> > > > > It builds, I had encoded a short test video.
> > > > > 
> > > > > Anyway, any tests are welcomes, and OKs.
> > > > 
> > > > I know this port has CONFIGURE_STYLE=simple, but...
> > > > 
> > > > > @@ -40,6 +39,8 @@ BUILD_DEPENDS =	devel/autoconf/${AUTOCON
> > > > >  		devel/automake/${AUTOMAKE_VERSION} \
> > > > >  		devel/gettext,-tools \
> > > > >  		devel/libtool \
> > > > > +		devel/meson \
> > > > > +		devel/ninja \
> > > > 
> > > > This feels... wrong.
> > > > 
> > > > can't we somehow make it directly use the meson module with
> > > > gtk/meson.build, instead of their homegrown horror of make/configure.py ?
> > > > 
> > > 
> > > this homegrown horror creates GNUmakefile which compiles some dependencies,
> > > and after it's done it calls meson and after that ninja.
> > > 
> > > Before it was autoconf and make, but they decided to migrate to meson.
> > > 
> > > Here a bit cleaner diff where I nuke autotools, and it survived a build in
> > > clean chroot. And I also put comment which explains why meson/ninja here.
> > > 
> > 
> > ...and I forgot to add new patches. Here the right diff.
> 
> seems it switched to Gtk+4 :)
> 
> Run-time dependency gtk4 found: YES 4.20.2
> 

Thanks to catch it. I've regenerated WANTLIBS and it seems quite shorter
than it was before.

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/Makefile,v
diff -u -p -r1.30 Makefile
--- Makefile	1 Nov 2025 11:16:42 -0000	1.30
+++ Makefile	12 Nov 2025 19:41:23 -0000
@@ -1,9 +1,8 @@
 COMMENT =	open source video transcoder
 
-V =		1.6.1
+V =		1.10.2
 DISTNAME =	HandBrake-${V}-source
 PKGNAME =	handbrake-${V}
-REVISION =	6
 EXTRACT_SUFX =	.tar.bz2
 CATEGORIES =	multimedia x11
 
@@ -12,22 +11,11 @@ HOMEPAGE =	https://handbrake.fr/
 # GPLv2 only
 PERMIT_PACKAGE =	Yes
 
-WANTLIB += ${COMPILER_LIBCXX} SvtAv1Enc X11 Xau Xcomposite Xcursor
-WANTLIB += Xdamage Xdmcp Xext Xfixes Xi Xinerama Xrandr Xrender
-WANTLIB += aom ass atk-1.0 atk-bridge-2.0 atspi avcodec avfilter
-WANTLIB += avformat avutil bluray bz2 c cairo cairo-gobject crypto
-WANTLIB += dav1d dbus-1 dvdnav dvdread epoxy execinfo expat ffi
-WANTLIB += fontconfig freetype fribidi gdk-3 gdk_pixbuf-2.0 gio-2.0
-WANTLIB += glib-2.0 gmodule-2.0 gobject-2.0 graphite2 gsm gstaudio-1.0
-WANTLIB += gstbase-1.0 gstpbutils-1.0 gstreamer-1.0 gsttag-1.0
-WANTLIB += gstvideo-1.0 gthread-2.0 gtk-3 harfbuzz iconv intl
-WANTLIB += jansson jpeg lzma m mp3lame ogg opus orc-0.4 pango-1.0
-WANTLIB += pangocairo-1.0 pangoft2-1.0 pcre2-8 pixman-1 png
-WANTLIB += speex ssl swresample swscale theoradec theoraenc turbojpeg
-WANTLIB += udfread unibreak vidstab vorbis vorbisenc vpx x264 x265 xcb
-WANTLIB += xcb-render xcb-shm xml2 xvidcore z zimg
-WANTLIB += X11-xcb drm epoll-shim sharpyuv va va-drm va-x11 wayland-client
-WANTLIB += wayland-cursor wayland-egl webp webpmux xcb-dri3 xkbcommon
+WANTLIB += ${COMPILER_LIBCXX} SvtAv1Enc ass avcodec avfilter avformat
+WANTLIB += avutil bluray c dvdnav dvdread gdk_pixbuf-2.0 gio-2.0
+WANTLIB += glib-2.0 gobject-2.0 gtk-4 iconv intl jansson m ogg
+WANTLIB += pango-1.0 swresample swscale theoradec theoraenc turbojpeg
+WANTLIB += vorbis vorbisenc x264 x265 xml2
 
 SITES =		https://github.com/HandBrake/HandBrake/releases/download/${V}/
 
@@ -36,10 +24,10 @@ COMPILER =	base-clang ports-gcc
 MODULES =	lang/python
 MODPY_RUNDEP =	No
 
-BUILD_DEPENDS =	devel/autoconf/${AUTOCONF_VERSION} \
-		devel/automake/${AUTOMAKE_VERSION} \
-		devel/gettext,-tools \
-		devel/libtool \
+# Yes, meson and ninja is called *during* the build but not at configure time...
+BUILD_DEPENDS =	devel/libtool \
+		devel/meson \
+		devel/ninja \
 		textproc/intltool
 
 LIB_DEPENDS =	archivers/bzip2 \
@@ -54,7 +42,7 @@ LIB_DEPENDS =	archivers/bzip2 \
 		devel/harfbuzz \
 		devel/jansson \
 		devel/libdvdread \
-		graphics/ffmpeg>=6.1.2v1 \
+		graphics/ffmpeg \
 		graphics/jpeg \
 		graphics/zimg \
 		multimedia/aom \
@@ -68,7 +56,7 @@ LIB_DEPENDS =	archivers/bzip2 \
 		multimedia/x264 \
 		multimedia/x265>=4.1 \
 		textproc/libxml \
-		x11/gtk+3
+		x11/gtk+4
 
 RUN_DEPENDS =	devel/desktop-file-utils \
 		x11/gtk+4,-guic
@@ -78,13 +66,8 @@ SEPARATE_BUILD =	Yes
 CONFIGURE_STYLE =	simple
 CONFIGURE_SCRIPT =	${MODPY_BIN} ${WRKSRC}/make/configure.py
 
-# Yes, autoconf is called *during* the build but not at configure time...
 USE_GMAKE =	Yes
 ALL_TARGET =	build
-MAKE_ENV =	AUTOCONF_VERSION="${AUTOCONF_VERSION}" \
-		AUTOMAKE_VERSION="${AUTOMAKE_VERSION}" \
-		AWK=/usr/bin/awk \
-		MKDIR_P='/bin/mkdir -p'
 MAKE_FILE =	GNUmakefile
 MAKE_FLAGS =	CFLAGS="${CFLAGS}" \
 		LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
@@ -95,9 +78,6 @@ CXXFLAGS +=	-msse2
 .endif
 
 CFLAGS+=	-D_NO_UPDATE_CHECK
-
-AUTOCONF_VERSION =	2.71
-AUTOMAKE_VERSION =	1.16
 
 WRKDIST =	${WRKDIR}/HandBrake-${V}
 
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/distinfo,v
diff -u -p -r1.6 distinfo
--- distinfo	29 May 2024 08:47:49 -0000	1.6
+++ distinfo	8 Nov 2025 18:57:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (HandBrake-1.6.1-source.tar.bz2) = lMz+A9uRepFlAADFEPf9U/hE2hnxmtS0vhuPa8MajUw=
-SIZE (HandBrake-1.6.1-source.tar.bz2) = 15934833
+SHA256 (HandBrake-1.10.2-source.tar.bz2) = xl4cxPjPw2wkEHuSwo1g5x7xheyYPppYQfrP+v6l+Ns=
+SIZE (HandBrake-1.10.2-source.tar.bz2) = 9481895
Index: patches/patch-gtk_configure_ac
===================================================================
RCS file: patches/patch-gtk_configure_ac
diff -N patches/patch-gtk_configure_ac
--- patches/patch-gtk_configure_ac	28 Oct 2025 09:38:40 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Get the proper library directory for -lhandbrake.
-
-Index: gtk/configure.ac
---- gtk/configure.ac.orig
-+++ gtk/configure.ac
-@@ -203,7 +203,7 @@ AM_CONDITIONAL([GHB_GTK_3_16], [test "$HAVE_GTK_316" -
- 
- AM_CONDITIONAL([MINGW], [test "x$mingw_flag" = "xyes"])
- 
--HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc"
-+HB_LIBS="-L../../libhb $HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc"
- HB_CPPFLAGS="$HB_CPPFLAGS $HBINC"
- 
- PKG_CHECK_MODULES([x264], [x264], sys_x264=yes, sys_x264=no)
Index: patches/patch-gtk_meson_build
===================================================================
RCS file: patches/patch-gtk_meson_build
diff -N patches/patch-gtk_meson_build
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_meson_build	12 Nov 2025 15:47:00 -0000
@@ -0,0 +1,12 @@
+Index: gtk/meson.build
+--- gtk/meson.build.orig
++++ gtk/meson.build
+@@ -20,7 +20,7 @@ if hb_dir == ''
+   hb_dir = meson.current_build_dir() / '..'
+ endif
+ 
+-hb_incdirs = include_directories(hb_dir / 'libhb', hb_dir / 'contrib/include')
++hb_incdirs = include_directories(hb_dir / 'libhb')
+ 
+ # External dependencies (required)
+ ghb_deps = [
Index: patches/patch-libhb_audio_resample_c
===================================================================
RCS file: patches/patch-libhb_audio_resample_c
diff -N patches/patch-libhb_audio_resample_c
--- patches/patch-libhb_audio_resample_c	21 Oct 2025 12:56:19 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-Index: libhb/audio_resample.c
---- libhb/audio_resample.c.orig
-+++ libhb/audio_resample.c
-@@ -90,10 +90,12 @@ static int is_mono(uint64_t layout)
-     int ii, channel_count;
-     int64_t mask;
- 
-+#ifdef AV_CH_LAYOUT_NATIVE
-     if (layout == AV_CH_LAYOUT_NATIVE)
-     {
-         return 0;
-     }
-+#endif
-     for (ii = 0, channel_count = 0, mask = 1;
-          ii < 64 && channel_count < 2; ii++, mask <<= 1)
-     {
Index: patches/patch-libhb_decavcodec_c
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-libhb_decavcodec_c,v
diff -u -p -r1.3 patch-libhb_decavcodec_c
--- patches/patch-libhb_decavcodec_c	21 Oct 2025 12:58:14 -0000	1.3
+++ patches/patch-libhb_decavcodec_c	12 Nov 2025 15:05:30 -0000
@@ -1,64 +1,17 @@
 Index: libhb/decavcodec.c
 --- libhb/decavcodec.c.orig
 +++ libhb/decavcodec.c
-@@ -2037,8 +2037,8 @@ static void compute_frame_duration( hb_work_private_t 
-     int64_t max_fps = 64LL;
+@@ -1320,11 +1320,13 @@ static hb_buffer_t *copy_frame( hb_work_private_t *pv 
+             int type = AV_FRAME_DATA_DOVI_RPU_BUFFER;
+             sd = av_frame_get_side_data(pv->frame, type);
  
-     // context->time_base may be in fields, so set the max *fields* per second
--    if ( pv->context->ticks_per_frame > 1 )
--        max_fps *= pv->context->ticks_per_frame;
-+    if ( pv->context->codec_descriptor->props & AV_CODEC_PROP_FIELDS )
-+        max_fps *= 2;
- 
-     if ( pv->title->opaque_priv )
-     {
-@@ -2057,7 +2057,8 @@ static void compute_frame_duration( hb_work_private_t 
-         // Raw demuxers set a default fps of 25 and do not parse
-         // a value from the container.  So use the codec time_base
-         // for raw demuxers.
--        else if (ic->iformat->raw_codec_id == AV_CODEC_ID_NONE)
-+        // See: https://github.com/HandBrake/HandBrake/pull/5884
-+        else if (st->start_time == AV_NOPTS_VALUE && st->duration == AV_NOPTS_VALUE)
-         {
-             // XXX We don't have a frame count or duration so try to use the
-             // far less reliable time base info in the stream.
-@@ -2083,11 +2084,11 @@ static void compute_frame_duration( hb_work_private_t 
-         {
-             duration =  (double)pv->context->time_base.num /
-                         (double)pv->context->time_base.den;
--            if ( pv->context->ticks_per_frame > 1 )
-+            if ( pv->context->codec_descriptor->props & AV_CODEC_PROP_FIELDS )
-             {
-                 // for ffmpeg 0.5 & later, the H.264 & MPEG-2 time base is
-                 // field rate rather than frame rate so convert back to frames.
--                duration *= pv->context->ticks_per_frame;
-+                duration *= 2;
-             }
-         }
-     }
-@@ -2098,11 +2099,11 @@ static void compute_frame_duration( hb_work_private_t 
-         {
-             duration =  (double)pv->context->time_base.num /
-                             (double)pv->context->time_base.den;
--            if ( pv->context->ticks_per_frame > 1 )
-+            if ( pv->context->codec_descriptor->props & AV_CODEC_PROP_FIELDS )
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+             if (sd == NULL)
              {
-                 // for ffmpeg 0.5 & later, the H.264 & MPEG-2 time base is
-                 // field rate rather than frame rate so convert back to frames.
--                duration *= pv->context->ticks_per_frame;
-+                duration *= 2;
+                 type = AV_FRAME_DATA_DOVI_RPU_BUFFER_T35;
+                 sd = av_frame_get_side_data(pv->frame, type);
              }
-         }
-     }
-@@ -2113,9 +2114,9 @@ static void compute_frame_duration( hb_work_private_t 
-     }
-     pv->duration = duration * 90000.;
-     pv->field_duration = pv->duration;
--    if ( pv->context->ticks_per_frame > 1 )
-+    if ( pv->context->codec_descriptor->props & AV_CODEC_PROP_FIELDS )
-     {
--        pv->field_duration /= pv->context->ticks_per_frame;
-+        pv->field_duration /= 2;
-     }
- }
++#endif
  
+             if (sd != NULL && sd->size > 0)
+             {
Index: patches/patch-libhb_encavcodec_c
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-libhb_encavcodec_c,v
diff -u -p -r1.3 patch-libhb_encavcodec_c
--- patches/patch-libhb_encavcodec_c	21 Oct 2025 13:00:20 -0000	1.3
+++ patches/patch-libhb_encavcodec_c	12 Nov 2025 15:06:52 -0000
@@ -1,103 +1,12 @@
 Index: libhb/encavcodec.c
 --- libhb/encavcodec.c.orig
 +++ libhb/encavcodec.c
-@@ -333,7 +333,7 @@ int encavcodecInit( hb_work_object_t * w, hb_job_t * j
-     if ((job->vcodec == HB_VCODEC_FFMPEG_VCE_H264) || (job->vcodec == HB_VCODEC_FFMPEG_VCE_H265) || (job->vcodec == HB_VCODEC_FFMPEG_VCE_H265_10BIT))
-     {
-         // Set encoder preset
--        context->profile = FF_PROFILE_UNKNOWN;
-+        context->profile = AV_PROFILE_UNKNOWN;
-         if (job->encoder_preset != NULL && *job->encoder_preset)
-         {
-             if ((!strcasecmp(job->encoder_preset, "balanced"))
-@@ -915,17 +915,17 @@ int encavcodecInit( hb_work_object_t * w, hb_job_t * j
-     if (job->vcodec == HB_VCODEC_FFMPEG_VCE_H264)
-     {
-         // Set profile and level
--        context->profile = FF_PROFILE_UNKNOWN;
-+        context->profile = AV_PROFILE_UNKNOWN;
-         if (job->encoder_profile != NULL && *job->encoder_profile)
-         {
-             if (!strcasecmp(job->encoder_profile, "baseline"))
--                context->profile = FF_PROFILE_H264_BASELINE;
-+                context->profile = AV_PROFILE_H264_BASELINE;
-             else if (!strcasecmp(job->encoder_profile, "main"))
--                 context->profile = FF_PROFILE_H264_MAIN;
-+                 context->profile = AV_PROFILE_H264_MAIN;
-             else if (!strcasecmp(job->encoder_profile, "high"))
--                context->profile = FF_PROFILE_H264_HIGH;
-+                context->profile = AV_PROFILE_H264_HIGH;
-         }
--        context->level = FF_LEVEL_UNKNOWN;
-+        context->level = AV_LEVEL_UNKNOWN;
-         if (job->encoder_level != NULL && *job->encoder_level)
-         {
-             int i = 1;
-@@ -941,13 +941,13 @@ int encavcodecInit( hb_work_object_t * w, hb_job_t * j
-     if (job->vcodec == HB_VCODEC_FFMPEG_VCE_H265 || job->vcodec == HB_VCODEC_FFMPEG_VCE_H265_10BIT)
-     {
-         // Set profile and level
--        context->profile = FF_PROFILE_UNKNOWN;
-+        context->profile = AV_PROFILE_UNKNOWN;
-         if (job->encoder_profile != NULL && *job->encoder_profile)
-         {
-             if (!strcasecmp(job->encoder_profile, "main"))
--                 context->profile = FF_PROFILE_HEVC_MAIN;
-+                 context->profile = AV_PROFILE_HEVC_MAIN;
-         }
--        context->level = FF_LEVEL_UNKNOWN;
-+        context->level = AV_LEVEL_UNKNOWN;
-         if (job->encoder_level != NULL && *job->encoder_level)
-         {
-             int i = 1;
-@@ -1000,15 +1000,15 @@ int encavcodecInit( hb_work_object_t * w, hb_job_t * j
- 
-     if (job->vcodec == HB_VCODEC_FFMPEG_MF_H264)
-     {
--        context->profile = FF_PROFILE_UNKNOWN;
-+        context->profile = AV_PROFILE_UNKNOWN;
-         if (job->encoder_profile != NULL && *job->encoder_profile)
-         {
-             if (!strcasecmp(job->encoder_profile, "baseline"))
--                context->profile = FF_PROFILE_H264_BASELINE;
-+                context->profile = AV_PROFILE_H264_BASELINE;
-             else if (!strcasecmp(job->encoder_profile, "main"))
--                 context->profile = FF_PROFILE_H264_MAIN;
-+                 context->profile = AV_PROFILE_H264_MAIN;
-             else if (!strcasecmp(job->encoder_profile, "high"))
--                context->profile = FF_PROFILE_H264_HIGH;
-+                context->profile = AV_PROFILE_H264_HIGH;
-         }
- 
+@@ -1614,7 +1614,7 @@ static int apply_encoder_level(AVCodecContext *context
+             break;
      }
-@@ -1332,7 +1332,6 @@ static void Encode( hb_work_object_t *w, hb_buffer_t *
-            when this frame finally pops out of the encoder we'll mark
-            its buffer as the start of a chapter. */
-         frame.pict_type = AV_PICTURE_TYPE_I;
--        frame.key_frame = 1;
-         hb_chapter_enqueue(pv->chapter_queue, in);
-     }
- 
-@@ -1446,17 +1445,17 @@ int encavcodecWork( hb_work_object_t * w, hb_buffer_t 
  
- static int apply_svt_av1_options(hb_job_t *job, AVCodecContext *context, AVDictionary **av_opts, hb_dict_t *opts)
- {
--    context->profile = FF_PROFILE_UNKNOWN;
-+    context->profile = AV_PROFILE_UNKNOWN;
-     if (job->encoder_profile != NULL && *job->encoder_profile)
-     {
-         if (!strcasecmp(job->encoder_profile, "main"))
--            context->profile = FF_PROFILE_AV1_MAIN;
-+            context->profile = AV_PROFILE_AV1_MAIN;
-         else if (!strcasecmp(job->encoder_profile, "high"))
--             context->profile = FF_PROFILE_AV1_HIGH;
-+             context->profile = AV_PROFILE_AV1_HIGH;
-         else if (!strcasecmp(job->encoder_profile, "professional"))
--            context->profile = FF_PROFILE_AV1_PROFESSIONAL;
-+            context->profile = AV_PROFILE_AV1_PROFESSIONAL;
-     }
 -    context->level = FF_LEVEL_UNKNOWN;
 +    context->level = AV_LEVEL_UNKNOWN;
-     if (job->encoder_level != NULL && *job->encoder_level)
+ 
+     if (level_names == NULL || level_values == NULL)
      {
-         int i = 1;
Index: patches/patch-libhb_encavcodecaudio_c
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-libhb_encavcodecaudio_c,v
diff -u -p -r1.4 patch-libhb_encavcodecaudio_c
--- patches/patch-libhb_encavcodecaudio_c	21 Oct 2025 13:01:19 -0000	1.4
+++ patches/patch-libhb_encavcodecaudio_c	12 Nov 2025 15:08:30 -0000
@@ -1,29 +1,7 @@
 Index: libhb/encavcodecaudio.c
 --- libhb/encavcodecaudio.c.orig
 +++ libhb/encavcodecaudio.c
-@@ -74,7 +74,7 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
-     enum AVCodecID codec_id        = AV_CODEC_ID_NONE;
-     enum AVSampleFormat sample_fmt = AV_SAMPLE_FMT_FLTP;
-     int bits_per_raw_sample        = 0;
--    int profile                    = FF_PROFILE_UNKNOWN;
-+    int profile                    = AV_PROFILE_UNKNOWN;
- 
-     // override with encoder-specific values
-     switch (audio->config.out.codec)
-@@ -99,10 +99,10 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
-             switch (audio->config.out.codec)
-             {
-                 case HB_ACODEC_FDK_HAAC:
--                    profile = FF_PROFILE_AAC_HE;
-+                    profile = AV_PROFILE_AAC_HE;
-                     break;
-                 default:
--                    profile = FF_PROFILE_AAC_LOW;
-+                    profile = AV_PROFILE_AAC_LOW;
-                     break;
-             }
-             // FFmpeg's libfdk-aac wrapper expects back channels for 5.1
-@@ -238,7 +238,7 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
+@@ -272,7 +272,7 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
      pv->input_buf         = malloc(pv->input_samples * sizeof(float));
      // Some encoders in libav (e.g. fdk-aac) fail if the output buffer
      // size is not some minimum value.  8K seems to be enough :(
Index: patches/patch-libhb_encsvtav1_c
===================================================================
RCS file: patches/patch-libhb_encsvtav1_c
diff -N patches/patch-libhb_encsvtav1_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_encsvtav1_c	12 Nov 2025 15:16:55 -0000
@@ -0,0 +1,41 @@
+Index: libhb/encsvtav1.c
+--- libhb/encsvtav1.c.orig
++++ libhb/encsvtav1.c
+@@ -99,7 +99,11 @@ int encsvtInit(hb_work_object_t *w, hb_job_t *job)
+     EbErrorType svt_ret;
+     int ret;
+ 
++#if SVT_AV1_CHECK_VERSION(3, 0, 0)
+     svt_ret = svt_av1_enc_init_handle(&pv->svt_handle, &pv->enc_params);
++#else
++    svt_ret = svt_av1_enc_init_handle(&pv->svt_handle, pv, &pv->enc_params);
++#endif
+     if (svt_ret != EB_ErrorNone)
+     {
+         hb_error("encsvtav1: error initializing encoder handle");
+@@ -448,7 +452,9 @@ static int read_in_data(EbSvtAv1EncConfiguration *para
+ static int send(hb_work_object_t *w, hb_buffer_t *in)
+ {
+     hb_work_private_t *pv = w->private_data;
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+     hb_job_t *job         = pv->job;
++#endif
+ 
+     EbBufferHeaderType *headerPtr = pv->in_buf;
+     int ret;
+@@ -481,6 +487,7 @@ static int send(hb_work_object_t *w, hb_buffer_t *in)
+         svt_metadata_array_free(&headerPtr->metadata);
+     }
+ 
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+     if (job->passthru_dynamic_hdr_metadata)
+     {
+         for (int i = 0; i < in->nb_side_data; i++)
+@@ -509,6 +516,7 @@ static int send(hb_work_object_t *w, hb_buffer_t *in)
+ 
+         }
+     }
++#endif
+ 
+     if (in->s.new_chap > 0 && pv->job->chapter_markers)
+     {
Index: patches/patch-libhb_encx265_c
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-libhb_encx265_c,v
diff -u -p -r1.1 patch-libhb_encx265_c
--- patches/patch-libhb_encx265_c	5 Dec 2024 16:06:34 -0000	1.1
+++ patches/patch-libhb_encx265_c	12 Nov 2025 15:23:20 -0000
@@ -1,19 +1,19 @@
-- contrib: update x265 to version 4.1 (#6430)
-  3e6479d666f76a5956bb5ce9a5d85ee8c925bbd3
-
 Index: libhb/encx265.c
 --- libhb/encx265.c.orig
 +++ libhb/encx265.c
-@@ -441,10 +441,10 @@ int encx265Init(hb_work_object_t *w, hb_job_t *job)
-     /* statsfile (but not 2-pass) */
-     if (param->logLevel >= X265_LOG_DEBUG)
-     {
--        if (param->csvfn == NULL)
-+        if (param->csvfn[0] == '\0')
-         {
-             pv->csvfn = hb_get_temporary_filename("x265.csv");
--            param->csvfn = strdup(pv->csvfn);
-+            snprintf(param->csvfn, X265_MAX_STRING_SIZE, "%s", pv->csvfn);
+@@ -269,6 +269,7 @@ int encx265Init(hb_work_object_t *w, hb_job_t *job)
          }
-         else
-         {
+     }
+ 
++#if 0
+     if (job->ambient.ambient_illuminance.num && job->ambient.ambient_illuminance.den)
+     {
+         param->ambientIlluminance = hb_rescale_rational(job->ambient.ambient_illuminance, 10000);
+@@ -276,6 +277,7 @@ int encx265Init(hb_work_object_t *w, hb_job_t *job)
+         param->ambientLightY = hb_rescale_rational(job->ambient.ambient_light_y, 50000);
+         param->bEmitAmbientViewingEnvironment = 1;
+     }
++#endif
+ 
+     if (job->chroma_location != AVCHROMA_LOC_UNSPECIFIED)
+     {
Index: patches/patch-libhb_handbrake_rpu_h
===================================================================
RCS file: patches/patch-libhb_handbrake_rpu_h
diff -N patches/patch-libhb_handbrake_rpu_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_handbrake_rpu_h	12 Nov 2025 15:05:30 -0000
@@ -0,0 +1,12 @@
+Index: libhb/handbrake/rpu.h
+--- libhb/handbrake/rpu.h.orig
++++ libhb/handbrake/rpu.h
+@@ -14,6 +14,8 @@
+ #define RPU_MODE_CONVERT_TO_8_1      2
+ 
+ #define RPU_MODE_EMIT_UNSPECT_62_NAL 4
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+ #define RPU_MODE_EMIT_T35_OBU        8
++#endif
+ 
+ #endif // HANDBRAKE_RPU_H
Index: patches/patch-libhb_hbavfilter_c
===================================================================
RCS file: patches/patch-libhb_hbavfilter_c
diff -N patches/patch-libhb_hbavfilter_c
--- patches/patch-libhb_hbavfilter_c	21 Oct 2025 13:01:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-Index: libhb/hbavfilter.c
---- libhb/hbavfilter.c.orig
-+++ libhb/hbavfilter.c
-@@ -271,6 +271,7 @@ void hb_avfilter_graph_update_init(hb_avfilter_graph_t
- {
-     // Retrieve the parameters of the output filter
-     AVFilterLink *link     = graph->output->inputs[0];
-+    AVRational frame_rate  = av_buffersink_get_frame_rate(graph->output);
-     init->geometry.width   = link->w;
-     init->geometry.height  = link->h;
-     init->geometry.par.num = link->sample_aspect_ratio.num;
-@@ -278,10 +279,10 @@ void hb_avfilter_graph_update_init(hb_avfilter_graph_t
-     init->pix_fmt          = link->format;
-     // avfilter can generate "unknown" framerates.  If this happens
-     // just pass along the source framerate.
--    if (link->frame_rate.num > 0 && link->frame_rate.den > 0)
-+    if (frame_rate.num > 0 && frame_rate.den > 0)
-     {
--        init->vrate.num        = link->frame_rate.num;
--        init->vrate.den        = link->frame_rate.den;
-+        init->vrate.num        = frame_rate.num;
-+        init->vrate.den        = frame_rate.den;
-     }
- }
- 
Index: patches/patch-libhb_hbffmpeg_c
===================================================================
RCS file: patches/patch-libhb_hbffmpeg_c
diff -N patches/patch-libhb_hbffmpeg_c
--- patches/patch-libhb_hbffmpeg_c	21 Oct 2025 13:01:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-Index: libhb/hbffmpeg.c
---- libhb/hbffmpeg.c.orig
-+++ libhb/hbffmpeg.c
-@@ -41,12 +41,17 @@ void hb_video_buffer_to_avframe(AVFrame *frame, hb_buf
-     frame->linesize[2] = buf->plane[2].stride;
- 
-     frame->pts              = buf->s.start;
--    frame->reordered_opaque = buf->s.duration;
-     frame->width            = buf->f.width;
-     frame->height           = buf->f.height;
-     frame->format           = buf->f.fmt;
--    frame->interlaced_frame = !!buf->s.combed;
--    frame->top_field_first  = !!(buf->s.flags & PIC_FLAG_TOP_FIELD_FIRST);
-+    if (!!buf->s.combed)
-+        frame->flags        |= AV_FRAME_FLAG_INTERLACED;
-+    else
-+        frame->flags        &= ~AV_FRAME_FLAG_INTERLACED;
-+    if (!!(buf->s.flags & PIC_FLAG_TOP_FIELD_FIRST))
-+        frame->flags        |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
-+    else
-+        frame->flags        &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST;
- 
-     frame->format          = buf->f.fmt;
-     frame->color_primaries = hb_colr_pri_hb_to_ff(buf->f.color_prim);
-@@ -65,13 +70,12 @@ void hb_avframe_set_video_buffer_flags(hb_buffer_t * b
-     }
- 
-     buf->s.start = av_rescale_q(frame->pts, time_base, (AVRational){1, 90000});
--    buf->s.duration = frame->reordered_opaque;
- 
--    if (frame->top_field_first)
-+    if (frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST)
-     {
-         buf->s.flags |= PIC_FLAG_TOP_FIELD_FIRST;
-     }
--    if (!frame->interlaced_frame)
-+    if (!(frame->flags & AV_FRAME_FLAG_INTERLACED))
-     {
-         buf->s.flags |= PIC_FLAG_PROGRESSIVE_FRAME;
-     }
Index: patches/patch-libhb_muxavformat_c
===================================================================
RCS file: patches/patch-libhb_muxavformat_c
diff -N patches/patch-libhb_muxavformat_c
--- patches/patch-libhb_muxavformat_c	21 Oct 2025 13:11:32 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-Index: libhb/muxavformat.c
---- libhb/muxavformat.c.orig
-+++ libhb/muxavformat.c
-@@ -556,10 +556,11 @@ static int avformatInit( hb_mux_object_t * m )
-             uint8_t *mastering_data = av_malloc(sizeof(AVMasteringDisplayMetadata));
-             memcpy(mastering_data, &mastering, sizeof(AVMasteringDisplayMetadata));
- 
--            av_stream_add_side_data(track->st,
-+            av_packet_side_data_add(&track->st->codecpar->coded_side_data,
-+                                    &track->st->codecpar->nb_coded_side_data,
-                                     AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
-                                     mastering_data,
--                                    sizeof(AVMasteringDisplayMetadata));
-+                                    sizeof(AVMasteringDisplayMetadata), 0);
-         }
- 
-         if (job->coll.max_cll && job->coll.max_fall)
-@@ -571,10 +572,11 @@ static int avformatInit( hb_mux_object_t * m )
-             uint8_t *coll_data = av_malloc(sizeof(AVContentLightMetadata));
-             memcpy(coll_data, &coll, sizeof(AVContentLightMetadata));
- 
--            av_stream_add_side_data(track->st,
-+            av_packet_side_data_add(&track->st->codecpar->coded_side_data,
-+                                    &track->st->codecpar->nb_coded_side_data,
-                                     AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
-                                     coll_data,
--                                    sizeof(AVContentLightMetadata));
-+                                    sizeof(AVContentLightMetadata), 0);
-         }
-     }
- 
-@@ -884,9 +886,10 @@ static int avformatInit( hb_mux_object_t * m )
- 
-                         track = audio->priv.mux_data;
-                         fallback_track = fallback->priv.mux_data;
--                        sd = (int*)av_stream_new_side_data(track->st,
--                                                     AV_PKT_DATA_FALLBACK_TRACK,
--                                                     sizeof(int));
-+                        sd = (int*)av_packet_side_data_new(&track->st->codecpar->coded_side_data,
-+                                                           &track->st->codecpar->nb_coded_side_data,
-+                                                           AV_PKT_DATA_FALLBACK_TRACK,
-+                                                           sizeof(int), 0);
-                         if (sd != NULL)
-                         {
-                             *sd = fallback_track->st->index;
Index: patches/patch-libhb_rpu_c
===================================================================
RCS file: patches/patch-libhb_rpu_c
diff -N patches/patch-libhb_rpu_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_rpu_c	12 Nov 2025 15:05:30 -0000
@@ -0,0 +1,69 @@
+Index: libhb/rpu.c
+--- libhb/rpu.c.orig
++++ libhb/rpu.c
+@@ -159,8 +159,11 @@ static void apply_rpu_if_needed(hb_filter_private_t *p
+     for (int i = 0; i < buf->nb_side_data; i++)
+     {
+         const AVFrameSideData *side_data = buf->side_data[i];
+-        if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER ||
+-            side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER_T35)
++        if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
++            || side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
++#endif
++           )
+         {
+             type = side_data->type;
+             rpu_available = 1;
+@@ -216,18 +219,23 @@ static int rpu_work(hb_filter_object_t *filter,
+     for (int i = 0; i < in->nb_side_data; i++)
+     {
+         const AVFrameSideData *side_data = in->side_data[i];
+-        if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER ||
+-            side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER_T35)
++        if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
++            || side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
++#endif
++           )
+         {
+             DoviRpuOpaque *rpu_in = NULL;
+             if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER)
+             {
+                 rpu_in = dovi_parse_unspec62_nalu(side_data->data, side_data->size);
+             }
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+             else if (side_data->type == AV_FRAME_DATA_DOVI_RPU_BUFFER_T35)
+             {
+                 rpu_in = dovi_parse_itu_t35_dovi_metadata_obu(side_data->data, side_data->size);
+             }
++#endif
+ 
+             if (rpu_in == NULL)
+             {
+@@ -316,10 +324,12 @@ static int rpu_work(hb_filter_object_t *filter,
+                 {
+                     rpu_data = dovi_write_unspec62_nalu(rpu_in);
+                 }
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+                 else if (pv->mode & RPU_MODE_EMIT_T35_OBU)
+                 {
+                     rpu_data = dovi_write_av1_rpu_metadata_obu_t35_complete(rpu_in);
+                 }
++#endif
+ 
+                 if (rpu_data)
+                 {
+@@ -334,10 +344,12 @@ static int rpu_work(hb_filter_object_t *filter,
+                     {
+                         sd_dst = hb_buffer_new_side_data_from_buf(in, AV_FRAME_DATA_DOVI_RPU_BUFFER, ref);
+                     }
++#ifdef AV_FRAME_DATA_DOVI_RPU_BUFFER_T35
+                     else if (pv->mode & RPU_MODE_EMIT_T35_OBU)
+                     {
+                         sd_dst = hb_buffer_new_side_data_from_buf(in, AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, ref);
+                     }
++#endif
+ 
+                     if (!sd_dst)
+                     {
Index: patches/patch-libhb_scan_c
===================================================================
RCS file: patches/patch-libhb_scan_c
diff -N patches/patch-libhb_scan_c
--- patches/patch-libhb_scan_c	21 Oct 2025 13:02:56 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: libhb/scan.c
---- libhb/scan.c.orig
-+++ libhb/scan.c
-@@ -1459,7 +1459,7 @@ static void LookForAudio(hb_scan_t *scan, hb_title_t *
-         const AVCodec *codec = avcodec_find_decoder(audio->config.in.codec_param);
-         if (codec != NULL)
-         {
--            if (info.profile != FF_PROFILE_UNKNOWN)
-+            if (info.profile != AV_PROFILE_UNKNOWN)
-             {
-                 profile_name = av_get_profile_name(codec, info.profile);
-             }
Index: patches/patch-libhb_stream_c
===================================================================
RCS file: patches/patch-libhb_stream_c
diff -N patches/patch-libhb_stream_c
--- patches/patch-libhb_stream_c	21 Oct 2025 13:02:56 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
-Index: libhb/stream.c
---- libhb/stream.c.orig
-+++ libhb/stream.c
-@@ -4052,16 +4052,16 @@ static int probe_dts_profile( hb_stream_t *stream, hb_
-     }
-     switch (info.profile)
-     {
--        case FF_PROFILE_DTS:
--        case FF_PROFILE_DTS_ES:
--        case FF_PROFILE_DTS_96_24:
-+        case AV_PROFILE_DTS:
-+        case AV_PROFILE_DTS_ES:
-+        case AV_PROFILE_DTS_96_24:
-             pes->codec = HB_ACODEC_DCA;
-             pes->stream_type = 0x82;
-             pes->stream_kind = A;
-             break;
- 
--        case FF_PROFILE_DTS_HD_HRA:
--        case FF_PROFILE_DTS_HD_MA:
-+        case AV_PROFILE_DTS_HD_HRA:
-+        case AV_PROFILE_DTS_HD_MA:
-             pes->stream_type = 0;
-             pes->stream_kind = A;
-             break;
-@@ -5408,14 +5408,14 @@ static void add_ffmpeg_audio(hb_title_t *title, hb_str
-         {
-             switch (codecpar->profile)
-             {
--                case FF_PROFILE_DTS:
--                case FF_PROFILE_DTS_ES:
--                case FF_PROFILE_DTS_96_24:
-+                case AV_PROFILE_DTS:
-+                case AV_PROFILE_DTS_ES:
-+                case AV_PROFILE_DTS_96_24:
-                     audio->config.in.codec = HB_ACODEC_DCA;
-                     break;
- 
--                case FF_PROFILE_DTS_HD_MA:
--                case FF_PROFILE_DTS_HD_HRA:
-+                case AV_PROFILE_DTS_HD_MA:
-+                case AV_PROFILE_DTS_HD_HRA:
-                     audio->config.in.codec = HB_ACODEC_DCA_HD;
-                     break;
- 
-@@ -5846,9 +5846,9 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *str
-             }
- 
-             int j;
--            for (j = 0; j < st->nb_side_data; j++)
-+            for (j = 0; j < codecpar->nb_coded_side_data; j++)
-             {
--                AVPacketSideData sd = st->side_data[j];
-+                AVPacketSideData sd = codecpar->coded_side_data[j];
-                 switch (sd.type)
-                 {
-                     case AV_PKT_DATA_DISPLAYMATRIX:
-@@ -5899,7 +5899,8 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *str
-             // title->video_timebase.den = st->time_base.den;
-             title->video_timebase.num = 1;
-             title->video_timebase.den = 90000;
--            if (ic->iformat->raw_codec_id != AV_CODEC_ID_NONE)
-+            // See: https://github.com/HandBrake/HandBrake/pull/5884
-+            if (st->start_time == AV_NOPTS_VALUE && st->duration == AV_NOPTS_VALUE)
-             {
-                 title->flags |= HBTF_RAW_VIDEO;
-             }
Index: patches/patch-make_configure_py
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-make_configure_py,v
diff -u -p -r1.5 patch-make_configure_py
--- patches/patch-make_configure_py	29 May 2024 08:47:50 -0000	1.5
+++ patches/patch-make_configure_py	12 Nov 2025 15:48:40 -0000
@@ -1,9 +1,16 @@
-Do not look for CMake; we don't need it.
-
 Index: make/configure.py
 --- make/configure.py.orig
 +++ make/configure.py
-@@ -1638,13 +1638,10 @@ try:
+@@ -1449,7 +1449,7 @@ def createCLI( cross = None ):
+     grp.add_argument( '--disable-vce', dest="enable_vce", action='store_false', help=(( 'disable %s' %h ) if h != argparse.SUPPRESS else h) )
+ 
+     h = IfHost( 'libdovi', '*-*-*', none=argparse.SUPPRESS ).value
+-    grp.add_argument( '--enable-libdovi', dest="enable_libdovi", default=not Tools.cargo.fail and not Tools.cargoc.fail, action='store_true', help=(( 'enable %s' %h ) if h != argparse.SUPPRESS else h) )
++    grp.add_argument( '--enable-libdovi', dest="enable_libdovi", default=False, action='store_true', help=(( 'enable %s' %h ) if h != argparse.SUPPRESS else h) )
+     grp.add_argument( '--disable-libdovi', dest="enable_libdovi", action='store_false', help=(( 'disable %s' %h ) if h != argparse.SUPPRESS else h) )
+ 
+ 
+@@ -1657,13 +1657,10 @@ try:
      class Tools:
          ar         = ToolProbe( 'AR.exe',         'ar',         'ar', abort=True )
          cp         = ToolProbe( 'CP.exe',         'cp',         'cp', abort=True )
@@ -17,7 +24,7 @@ Index: make/configure.py
          python     = ToolProbe( 'PYTHON.exe',     'python',     os.path.basename(sys.executable), abort=True )
  
          gcc_tools  = ['GCC.gcc',
-@@ -1659,14 +1656,9 @@ try:
+@@ -1678,16 +1675,11 @@ try:
          else:
              gmake  = ToolProbe( 'GMAKE.exe',      'make',       'gmake', 'make', abort=True )
  
@@ -26,13 +33,15 @@ Index: make/configure.py
          libtool    = ToolProbe( 'LIBTOOL.exe',    'libtool',    'libtool', abort=True )
          lipo       = ToolProbe( 'LIPO.exe',       'lipo',       'lipo', abort=False )
          pkgconfig  = ToolProbe( 'PKGCONFIG.exe',  'pkgconfig',  'pkg-config', abort=True, minversion=[0,27,0] )
--        meson      = ToolProbe( 'MESON.exe',      'meson',      'meson', abort=True, minversion=[0,47,0] )
+         meson      = ToolProbe( 'MESON.exe',      'meson',      'meson', abort=True, minversion=[0,51,0] )
 -        nasm       = ToolProbe( 'NASM.exe',       'asm',        'nasm', abort=True, minversion=[2,13,0] )
--        ninja      = ToolProbe( 'NINJA.exe',      'ninja',      'ninja-build', 'ninja', abort=True )
+         ninja      = ToolProbe( 'NINJA.exe',      'ninja',      'ninja-build', 'ninja', abort=True )
+-        cargo      = ToolProbe( 'CARGO.exe',      'cargo',        'cargo', abort=False )
+-        cargoc     = ToolProbe( 'CARGO-C.exe',    'cargo-cbuild', 'cargo-cbuild', abort=False )
  
          xcodebuild = ToolProbe( 'XCODEBUILD.exe', 'xcodebuild', 'xcodebuild', abort=(True if (not xcode_opts['disabled'] and (build_tuple.match('*-*-darwin*') and cross is None)) else False), versionopt='-version', minversion=[10,3,0] )
  
-@@ -1765,10 +1757,6 @@ try:
+@@ -1787,10 +1779,6 @@ try:
      #####################################
      # Requires oneVPL which requires CMake 3.16.3 or later
      Tools.cmake = ToolProbe('CMAKE.exe', 'cmake', 'cmake', abort=True, minversion=[3,16,3])
Index: patches/patch-make_include_gcc_defs
===================================================================
RCS file: patches/patch-make_include_gcc_defs
diff -N patches/patch-make_include_gcc_defs
--- patches/patch-make_include_gcc_defs	29 May 2024 08:47:50 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-- Remove hardcoded optimization flags.
-- Proper -I and -L dirs.
-
-Index: make/include/gcc.defs
---- make/include/gcc.defs.orig
-+++ make/include/gcc.defs
-@@ -66,10 +66,10 @@ GCC.args.g.none            = -g0
- GCC.args.g.min             = -gdwarf-2 -g1
- GCC.args.g.std             = -gdwarf-2
- GCC.args.g.max             = -gdwarf-2 -g3
--GCC.args.O.none            = -O0
--GCC.args.O.size            = -Os
--GCC.args.O.size-aggressive = -Oz
--GCC.args.O.speed           = -O3
-+GCC.args.O.none            = 
-+GCC.args.O.size            = 
-+GCC.args.O.size-aggressive = 
-+GCC.args.O.speed           = 
- GCC.args.cpu.none          =
- GCC.args.cpu.native        =
- ifeq ($(HOST.machine),$(filter $(HOST.machine),i686 x86_64))
-@@ -80,12 +80,12 @@ GCC.args.lto.off           = -fno-lto
- GCC.args.lto.on            = -flto
- GCC.args.lto.thin          = -flto=thin
- GCC.args.D                 = -D$(1)
--GCC.args.I                 = -I$(1)
-+GCC.args.I                 = -I$(1) -I$(LOCALBASE)/include -I$(X11BASE)/include
- GCC.args.muldefs           = -Wl,--allow-multiple-definition
- GCC.args.start             = -Wl,--start-group
- GCC.args.F                 = -F$(1)
- GCC.args.f                 = -framework $(1)
--GCC.args.L                 = -L$(1)
-+GCC.args.L                 = -L$(1) -L$(LOCALBASE)/lib -L$(X11BASE)/lib
- GCC.args.l                 = -l$(1)
- GCC.args.end               = -Wl,--end-group
- 
Index: patches/patch-make_include_main_defs
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-make_include_main_defs,v
diff -u -p -r1.4 patch-make_include_main_defs
--- patches/patch-make_include_main_defs	29 May 2024 08:47:50 -0000	1.4
+++ patches/patch-make_include_main_defs	12 Nov 2025 14:49:13 -0000
@@ -1,9 +1,7 @@
-Rip out all the optional dependencies.
-
 Index: make/include/main.defs
 --- make/include/main.defs.orig
 +++ make/include/main.defs
-@@ -7,97 +7,6 @@ include $(SRC/)make/include/tool.defs
+@@ -8,105 +8,6 @@ include $(SRC/)make/include/tool.defs
  
  ###############################################################################
  
@@ -17,7 +15,6 @@ Index: make/include/main.defs
 -    MODULES += contrib/freetype
 -    MODULES += contrib/fribidi
 -    MODULES += contrib/harfbuzz
--    MODULES += contrib/libxml2
 -    MODULES += contrib/libass
 -    MODULES += contrib/libogg
 -    MODULES += contrib/libvorbis
@@ -70,8 +67,13 @@ Index: make/include/main.defs
 -    MODULES += contrib/nvenc
 -endif
 -
+-ifeq (1,$(FEATURE.libdovi))
+-    MODULES += contrib/libdovi
+-endif
+-
 -ifneq (,$(filter $(HOST.system),darwin))
 -    MODULES += contrib/xz
+-    MODULES += contrib/bin2c
 -endif
 -
 -ifneq (,$(filter $(HOST.machine),arm64 aarch64))
@@ -97,6 +99,10 @@ Index: make/include/main.defs
 -    MODULES += contrib/libiconv
 -endif
 -
+-ifneq (,$(filter $(HOST.system),netbsd))
+-    # needed to avoid conflict with jpeg-9e
+-    MODULES += contrib/libjpeg-turbo
+-endif
 -
  ## these must come after contrib since some contrib modules are optional
  MODULES += libhb
Index: patches/patch-test_module_defs
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/patches/patch-test_module_defs,v
diff -u -p -r1.2 patch-test_module_defs
--- patches/patch-test_module_defs	28 Oct 2025 09:38:40 -0000	1.2
+++ patches/patch-test_module_defs	12 Nov 2025 15:36:06 -0000
@@ -1,13 +1,12 @@
 Index: test/module.defs
 --- test/module.defs.orig
 +++ test/module.defs
-@@ -16,7 +16,7 @@ TEST.libs = $(LIBHB.a)
- TEST.GCC.l = \
--        ass avformat avfilter avcodec avutil swresample postproc mp3lame dvdnav \
-+        ass avformat avfilter avcodec avutil swresample mp3lame dvdnav \
-         dvdread fribidi swscale vpx theoraenc theoradec vorbis vorbisenc ogg \
--        x264 bluray freetype xml2 bz2 z jansson harfbuzz opus speex lzma dav1d \
-+        x264 x265 bluray freetype xml2 bz2 z jansson harfbuzz opus speex lzma dav1d \
-         turbojpeg zimg SvtAv1Enc
+@@ -17,7 +17,7 @@ TEST.GCC.L = $(CONTRIB.build/)lib
+ TEST.libs = $(LIBHB.a)
  
- ifeq (,$(filter $(HOST.system),darwin cygwin mingw))
+ TEST.pkgconfig_libs = libass libavformat libavfilter libavcodec libavutil libswresample dvdnav \
+-	dvdread libswscale theoraenc theoradec vorbis vorbisenc ogg x264 libbluray \
++	dvdread libswscale theoraenc theoradec vorbis vorbisenc ogg x264 x265 libbluray \
+ 	jansson libturbojpeg SvtAv1Enc
+ 
+ TEST.pkgconfig_libs += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs))
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/multimedia/handbrake/pkg/PLIST,v
diff -u -p -r1.5 PLIST
--- pkg/PLIST	29 May 2024 08:47:50 -0000	1.5
+++ pkg/PLIST	12 Nov 2025 15:49:39 -0000
@@ -3,46 +3,26 @@ bin/HandBrake
 @bin bin/ghb
 share/applications/fr.handbrake.ghb.desktop
 share/icons/hicolor/scalable/apps/fr.handbrake.ghb.svg
-share/icons/hicolor/scalable/apps/hb-icon.svg
-share/locale/af/LC_MESSAGES/ghb.mo
 share/locale/bg/LC_MESSAGES/ghb.mo
 share/locale/ca/LC_MESSAGES/ghb.mo
 share/locale/co/
 share/locale/co/LC_MESSAGES/
 share/locale/co/LC_MESSAGES/ghb.mo
-share/locale/cs/LC_MESSAGES/ghb.mo
-share/locale/da/LC_MESSAGES/ghb.mo
 share/locale/de/LC_MESSAGES/ghb.mo
 share/locale/es/LC_MESSAGES/ghb.mo
 share/locale/eu/LC_MESSAGES/ghb.mo
 share/locale/fi/LC_MESSAGES/ghb.mo
 share/locale/fr/LC_MESSAGES/ghb.mo
-share/locale/he/LC_MESSAGES/ghb.mo
-share/locale/hr/LC_MESSAGES/ghb.mo
 share/locale/it/LC_MESSAGES/ghb.mo
 share/locale/ja/LC_MESSAGES/ghb.mo
-share/locale/ka/LC_MESSAGES/ghb.mo
 share/locale/ko/LC_MESSAGES/ghb.mo
 share/locale/nl/LC_MESSAGES/ghb.mo
-share/locale/no/LC_MESSAGES/ghb.mo
-share/locale/pl/LC_MESSAGES/ghb.mo
-share/locale/pt/LC_MESSAGES/ghb.mo
 share/locale/pt_BR/LC_MESSAGES/ghb.mo
-share/locale/ro/LC_MESSAGES/ghb.mo
-share/locale/ru/LC_MESSAGES/ghb.mo
-share/locale/si/LC_MESSAGES/ghb.mo
-share/locale/sk/LC_MESSAGES/ghb.mo
 share/locale/sl_SI/
 share/locale/sl_SI/LC_MESSAGES/
 share/locale/sl_SI/LC_MESSAGES/ghb.mo
 share/locale/sv/LC_MESSAGES/ghb.mo
-share/locale/th/LC_MESSAGES/ghb.mo
-share/locale/tr/LC_MESSAGES/ghb.mo
-share/locale/uk_UA/
-share/locale/uk_UA/LC_MESSAGES/
-share/locale/uk_UA/LC_MESSAGES/ghb.mo
 share/locale/zh_CN/LC_MESSAGES/ghb.mo
-share/locale/zh_TW/LC_MESSAGES/ghb.mo
 share/metainfo/
 share/metainfo/fr.handbrake.ghb.metainfo.xml
 @tag update-desktop-database