Here is an update to HandBrake 1.6.1.

https://raw.githubusercontent.com/HandBrake/HandBrake/master/NEWS.markdown

Still looking for any feedback.

I pushed most of the patching upstream.

There will be some things that I think are broken. I don't think the 10-bit
H.264 encoding works.


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/Makefile,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 Makefile
--- Makefile    27 Sep 2023 10:10:20 -0000      1.20
+++ Makefile    5 Apr 2024 06:36:44 -0000
@@ -1,8 +1,8 @@
-V =            1.3.3
 COMMENT =      open source video transcoder
+
+V =            1.6.1
 DISTNAME =     HandBrake-${V}-source
 PKGNAME =      handbrake-${V}
-REVISION =     7
 EXTRACT_SUFX = .tar.bz2
 CATEGORIES =   multimedia x11
 
@@ -12,20 +12,20 @@ MAINTAINER =        Brian Callahan <bcallah@ope
 # GPLv2 only
 PERMIT_PACKAGE =       Yes
 
-WANTLIB += ${COMPILER_LIBCXX} X11 Xau Xcomposite Xcursor Xdamage
-WANTLIB += Xdmcp Xext Xfixes Xi Xinerama Xrandr Xrender aom ass
-WANTLIB += atk-1.0 atk-bridge-2.0 atspi avcodec avfilter avformat
-WANTLIB += avutil bluray bz2 c cairo cairo-gobject
-WANTLIB += crypto dav1d dbus-1 dvdnav dvdread epoxy execinfo expat
-WANTLIB += ffi fontconfig freetype fribidi gdk-3 gdk_pixbuf-2.0
-WANTLIB += gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 graphite2
-WANTLIB += gsm gstaudio-1.0 gstbase-1.0 gstpbutils-1.0 gstreamer-1.0
-WANTLIB += gsttag-1.0 gstvideo-1.0 gthread-2.0 gtk-3 harfbuzz
-WANTLIB += iconv intl jansson jpeg lzma m mp3lame ogg opus orc-0.4
-WANTLIB += pango-1.0 pangocairo-1.0 pangoft2-1.0 pcre2-8 pixman-1
-WANTLIB += png postproc speex ssl swresample swscale theoradec
-WANTLIB += theoraenc udfread vidstab vorbis vorbisenc vpx x264
-WANTLIB += x265 xcb xcb-render xcb-shm xml2 xvidcore z zimg
+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 postproc
+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
 
 SITES =                
https://github.com/HandBrake/HandBrake/releases/download/${V}/
 
@@ -40,17 +40,32 @@ BUILD_DEPENDS =     devel/autoconf/${AUTOCON
                devel/libtool \
                textproc/intltool
 
-LIB_DEPENDS =  devel/jansson \
-               devel/orc \
+LIB_DEPENDS =  archivers/bzip2 \
+               archivers/xz \
+               audio/lame \
+               audio/libogg \
+               audio/libvorbis \
+               audio/opus \
+               audio/speex \
+               converters/libiconv \
+               devel/fribidi \
+               devel/harfbuzz \
+               devel/jansson \
+               devel/libdvdread \
                graphics/ffmpeg \
+               graphics/jpeg \
+               graphics/zimg \
                multimedia/aom \
+               multimedia/libass \
                multimedia/libbluray \
                multimedia/gstreamer1/plugins-base \
                multimedia/libdvdnav \
                multimedia/libtheora \
                multimedia/libvpx \
+               multimedia/svt-av1 \
                multimedia/x264 \
                multimedia/x265 \
+               textproc/libxml \
                x11/gtk+3
 
 RUN_DEPENDS =  devel/desktop-file-utils \
@@ -60,8 +75,6 @@ SEPARATE_BUILD =      Yes
 
 CONFIGURE_STYLE =      simple
 CONFIGURE_SCRIPT =     ${MODPY_BIN} ${WRKSRC}/make/configure.py
-CONFIGURE_ARGS =       --disable-gtk-update-checks \
-                       --enable-x265
 
 # Yes, autoconf is called *during* the build but not at configure time...
 USE_GMAKE =    Yes
@@ -71,22 +84,20 @@ MAKE_ENV =  AUTOCONF_VERSION="${AUTOCONF_
                AWK=/usr/bin/awk \
                MKDIR_P='/bin/mkdir -p'
 MAKE_FILE =    GNUmakefile
-MAKE_FLAGS =   CFLAGS="${CFLAGS} -I${LOCALBASE}/include/libxml2 
-D_NO_UPDATE_CHECK" \
-               LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib -L${X11BASE}/lib -lx265 
-liconv"
+MAKE_FLAGS =   CFLAGS="${CFLAGS}" \
+               LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
 
 .if ${MACHINE_ARCH:Mi386}
 CFLAGS +=      -msse2
 CXXFLAGS +=    -msse2
 .endif
 
-AUTOCONF_VERSION =     2.69
+CFLAGS+=       -D_NO_UPDATE_CHECK
+
+AUTOCONF_VERSION =     2.71
 AUTOMAKE_VERSION =     1.16
 
 WRKDIST =      ${WRKDIR}/HandBrake-${V}
-
-post-extract:
-       ln -s ${WRKSRC}/make/variant/freebsd.defs \
-               ${WRKSRC}/make/variant/openbsd.defs
 
 post-install:
        ln -s ${TRUEPREFIX}/bin/ghb ${PREFIX}/bin/HandBrake
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/distinfo,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 distinfo
--- distinfo    20 Jun 2020 21:12:38 -0000      1.5
+++ distinfo    5 Apr 2024 06:36:44 -0000
@@ -1,2 +1,2 @@
-SHA256 (HandBrake-1.3.3-source.tar.bz2) = 
IYo32V9ItefPKFNj06sWwxTZdienpxDKs3WJAq6Hf4U=
-SIZE (HandBrake-1.3.3-source.tar.bz2) = 16804119
+SHA256 (HandBrake-1.6.1-source.tar.bz2) = 
lMz+A9uRepFlAADFEPf9U/hE2hnxmtS0vhuPa8MajUw=
+SIZE (HandBrake-1.6.1-source.tar.bz2) = 15934833
Index: patches/patch-gtk_configure_ac
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/patches/patch-gtk_configure_ac,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-gtk_configure_ac
--- patches/patch-gtk_configure_ac      11 Mar 2022 19:39:19 -0000      1.5
+++ patches/patch-gtk_configure_ac      5 Apr 2024 06:36:44 -0000
@@ -1,25 +1,14 @@
 Get the proper library directory for -lhandbrake.
-No -ldl on OpenBSD.
 
 Index: gtk/configure.ac
 --- gtk/configure.ac.orig
 +++ gtk/configure.ac
-@@ -199,7 +199,7 @@ AM_CONDITIONAL([GHB_GTK_3_16], [test "$HAVE_GTK_316" -
+@@ -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 -llzma"
-+HB_LIBS="-L../../libhb $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 -llzma"
+-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 -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_CPPFLAGS="$HB_CPPFLAGS $HBINC"
  
  PKG_CHECK_MODULES([x264], [x264], sys_x264=yes, sys_x264=no)
-@@ -236,6 +236,9 @@ case $host in
-     HB_LIBS="$HB_LIBS -lbcrypt -lregex -luuid -lole32"
-     ;;
-   *-*-freebsd*)
-+    HB_LIBS="$HB_LIBS -lpthread"
-+    ;;
-+  *-*-openbsd*)
-     HB_LIBS="$HB_LIBS -lpthread"
-     ;;
-   *-*-netbsd*)
Index: patches/patch-gtk_src_callbacks_c
===================================================================
RCS file: patches/patch-gtk_src_callbacks_c
diff -N patches/patch-gtk_src_callbacks_c
--- patches/patch-gtk_src_callbacks_c   11 Mar 2022 19:39:19 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-We need this include too.
-
-Index: gtk/src/callbacks.c
---- gtk/src/callbacks.c.orig
-+++ gtk/src/callbacks.c
-@@ -43,7 +43,7 @@
- #include <gudev/gudev.h>
- #endif
- 
--#if defined( __FreeBSD__ )
-+#if defined( __FreeBSD__ ) || defined( __OpenBSD__ )
- #include <sys/socket.h>
- #endif
- #include <netinet/in.h>
Index: patches/patch-libhb_audio_remap_c
===================================================================
RCS file: patches/patch-libhb_audio_remap_c
diff -N patches/patch-libhb_audio_remap_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_audio_remap_c   5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,24 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/audio_remap.c
+--- libhb/audio_remap.c.orig
++++ libhb/audio_remap.c
+@@ -258,7 +258,7 @@ void hb_audio_remap_set_channel_layout(hb_audio_remap_
+         {
+             channel_layout = AV_CH_LAYOUT_STEREO;
+         }
+-        remap->nchannels = 
hb_layout_get_discrete_channel_count(channel_layout);
++        remap->nchannels = av_get_channel_layout_nb_channels(channel_layout);
+ 
+         // in some cases, remapping is not necessary and/or supported
+         if (remap->nchannels > HB_AUDIO_REMAP_MAX_CHANNELS)
+@@ -317,7 +317,7 @@ void hb_audio_remap_build_table(hb_chan_map_t *channel
+         // Dolby Surround is Stereo when it comes to remapping
+         channel_layout = AV_CH_LAYOUT_STEREO;
+     }
+-    nchannels = hb_layout_get_discrete_channel_count(channel_layout);
++    nchannels = av_get_channel_layout_nb_channels(channel_layout);
+ 
+     // clear remap table before (re-)building it
+     memset(remap_table, 0, nchannels * sizeof(int));
Index: patches/patch-libhb_audio_resample_c
===================================================================
RCS file: patches/patch-libhb_audio_resample_c
diff -N patches/patch-libhb_audio_resample_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_audio_resample_c        5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,25 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/audio_resample.c
+--- libhb/audio_resample.c.orig
++++ libhb/audio_resample.c
+@@ -53,7 +53,7 @@ hb_audio_resample_t* hb_audio_resample_init(enum AVSam
+     }
+ 
+     // requested output channel_layout, sample_fmt
+-    resample->out.channels            = 
hb_layout_get_discrete_channel_count(channel_layout);
++    resample->out.channels            = 
av_get_channel_layout_nb_channels(channel_layout);
+     resample->out.channel_layout      = channel_layout;
+     resample->out.matrix_encoding     = matrix_encoding;
+     resample->out.sample_fmt          = sample_fmt;
+@@ -232,7 +232,8 @@ int hb_audio_resample_update(hb_audio_resample_t *resa
+         resample->resample.sample_fmt         = resample->in.sample_fmt;
+         resample->resample.sample_rate        = resample->in.sample_rate;
+         resample->resample.channel_layout     = resample->in.channel_layout;
+-        resample->resample.channels           = 
hb_layout_get_discrete_channel_count(resample->in.channel_layout);
++        resample->resample.channels           =
++            av_get_channel_layout_nb_channels(resample->in.channel_layout);
+         resample->resample.lfe_mix_level      = resample->in.lfe_mix_level;
+         resample->resample.center_mix_level   = resample->in.center_mix_level;
+         resample->resample.surround_mix_level = 
resample->in.surround_mix_level;
Index: patches/patch-libhb_common_c
===================================================================
RCS file: patches/patch-libhb_common_c
diff -N patches/patch-libhb_common_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_common_c        5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,41 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/common.c
+--- libhb/common.c.orig
++++ libhb/common.c
+@@ -2283,7 +2283,7 @@ int hb_mixdown_has_remix_support(int mixdown, uint64_t
+ 
+         // more than 1 channel
+         case HB_AMIXDOWN_STEREO:
+-            return (hb_layout_get_discrete_channel_count(layout) > 1);
++            return (av_get_channel_layout_nb_channels(layout) > 1);
+ 
+         // regular stereo (not Dolby)
+         case HB_AMIXDOWN_LEFT:
+@@ -2483,22 +2483,14 @@ const hb_mixdown_t* hb_mixdown_get_next(const hb_mixdo
+     return ((hb_mixdown_internal_t*)last)->next;
+ }
+ 
+-void hb_layout_get_name(char *name, int size, int64_t layout)
++void hb_layout_get_name(char * name, int size, int64_t layout)
+ {
+-    AVChannelLayout ch_layout = {0};
+-    av_channel_layout_from_mask(&ch_layout, layout);
+-    av_channel_layout_describe(&ch_layout, name, size);
+-    av_channel_layout_uninit(&ch_layout);
++    av_get_channel_layout_string(name, size, 0, layout);
+ }
+ 
+ int hb_layout_get_discrete_channel_count(int64_t layout)
+ {
+-    int nb_channels = 0;
+-    AVChannelLayout ch_layout = {0};
+-    av_channel_layout_from_mask(&ch_layout, layout);
+-    nb_channels = ch_layout.nb_channels;
+-    av_channel_layout_uninit(&ch_layout);
+-    return nb_channels;
++    return av_get_channel_layout_nb_channels(layout);
+ }
+ 
+ int hb_layout_get_low_freq_channel_count(int64_t layout)
Index: patches/patch-libhb_decavcodec_c
===================================================================
RCS file: patches/patch-libhb_decavcodec_c
diff -N patches/patch-libhb_decavcodec_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_decavcodec_c    5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,167 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/decavcodec.c
+--- libhb/decavcodec.c.orig
++++ libhb/decavcodec.c
+@@ -207,9 +207,6 @@ static int decavcodecaInit( hb_work_object_t * w, hb_j
+     }
+     hb_ff_set_sample_fmt(pv->context, codec, AV_SAMPLE_FMT_FLT);
+ 
+-    // Set decoder opts...
+-    AVDictionary *av_opts = NULL;
+-
+     /* Downmixing & sample_fmt conversion */
+     if (!(w->audio->config.out.codec & HB_ACODEC_PASS_FLAG))
+     {
+@@ -239,7 +236,7 @@ static int decavcodecaInit( hb_work_object_t * w, hb_j
+         {
+             case AV_CODEC_ID_AC3:
+             case AV_CODEC_ID_EAC3:
+-                avcodec_downmix = w->audio->config.out.normalize_mix_level == 
0;
++                avcodec_downmix = w->audio->config.out.normalize_mix_level != 
0;
+                 break;
+             case AV_CODEC_ID_DTS:
+                 avcodec_downmix = w->audio->config.out.normalize_mix_level == 
0;
+@@ -260,21 +257,13 @@ static int decavcodecaInit( hb_work_object_t * w, hb_j
+                 // request 5.1 before downmixing to dpl1/dpl2
+                 case HB_AMIXDOWN_DOLBY:
+                 case HB_AMIXDOWN_DOLBYPLII:
+-                {
+-                    av_dict_set(&av_opts, "downmix", "5.1(side)", 0);
++                    pv->context->request_channel_layout = 
AV_CH_LAYOUT_5POINT1;
+                     break;
+-                }
+                 // request the layout corresponding to the selected mixdown
+                 default:
+-                {
+-                    char description[256];
+-                    AVChannelLayout ch_layout = {0};
+-                    av_channel_layout_from_mask(&ch_layout, 
hb_ff_mixdown_xlat(w->audio->config.out.mixdown, NULL));
+-                    av_channel_layout_describe(&ch_layout, description, 
sizeof(description));
+-                    av_channel_layout_uninit(&ch_layout);
+-                    av_dict_set(&av_opts, "downmix", description, 0);
++                    pv->context->request_channel_layout =
++                        hb_ff_mixdown_xlat(w->audio->config.out.mixdown, 
NULL);
+                     break;
+-                }
+             }
+         }
+     }
+@@ -284,9 +273,12 @@ static int decavcodecaInit( hb_work_object_t * w, hb_j
+     if (w->codec_param                     == AV_CODEC_ID_TRUEHD &&
+         w->audio->config.in.channel_layout == AV_CH_LAYOUT_MONO)
+     {
+-        av_dict_set(&av_opts, "downmix", "stereo", 0);
++        pv->context->request_channel_layout = AV_CH_LAYOUT_STEREO;
+     }
+ 
++    // Set decoder opts...
++    AVDictionary * av_opts = NULL;
++
+     // Dynamic Range Compression
+     if (w->audio->config.out.dynamic_range_compression >= 0.0f &&
+         hb_audio_can_apply_drc(w->audio->config.in.codec,
+@@ -332,14 +324,6 @@ static int decavcodecaInit( hb_work_object_t * w, hb_j
+     pv->context->pkt_timebase.num = pv->audio->config.in.timebase.num;
+     pv->context->pkt_timebase.den = pv->audio->config.in.timebase.den;
+ 
+-    // libavcodec can't decode TrueHD Mono (bug #356)
+-    // work around it by requesting Stereo and downmixing
+-    if (w->codec_param                     == AV_CODEC_ID_TRUEHD &&
+-        w->audio->config.in.channel_layout == AV_CH_LAYOUT_MONO)
+-    {
+-        pv->context->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
+-    }
+-
+     // avcodec_open populates av_opts with the things it didn't recognize.
+     AVDictionaryEntry *t = NULL;
+     while ((t = av_dict_get(av_opts, "", t, AV_DICT_IGNORE_SUFFIX)) != NULL)
+@@ -752,13 +736,15 @@ static int decavcodecaBSInfo( hb_work_object_t *w, con
+             // libavcodec can't decode TrueHD Mono (bug #356)
+             // work around it by requesting Stereo before decoding
+             if (context->codec_id == AV_CODEC_ID_TRUEHD &&
+-                context->ch_layout.u.mask == AV_CH_LAYOUT_MONO)
++                context->channel_layout == AV_CH_LAYOUT_MONO)
+             {
+                 truehd_mono                     = 1;
+-                AVChannelLayout ch_layout = AV_CHANNEL_LAYOUT_STEREO;
+-                av_opt_set_chlayout(context, "downmix", &ch_layout, 
AV_OPT_SEARCH_CHILDREN);
+-                context->ch_layout = ch_layout;
++                context->request_channel_layout = AV_CH_LAYOUT_STEREO;
+             }
++            else
++            {
++                context->request_channel_layout = 0;
++            }
+ 
+             AVPacket *avp = av_packet_alloc();
+             avp->data = parse_buffer;
+@@ -797,7 +783,16 @@ static int decavcodecaBSInfo( hb_work_object_t *w, con
+                     info->sample_bit_depth  = context->bits_per_raw_sample;
+ 
+                     int bps = av_get_bits_per_sample(context->codec_id);
+-                    int channels = frame->ch_layout.nb_channels;
++                    int channels;
++                    if (frame->channel_layout != 0)
++                    {
++                        channels = av_get_channel_layout_nb_channels(
++                                                        
frame->channel_layout);
++                    }
++                    else
++                    {
++                        channels = frame->channels;
++                    }
+ 
+                     info->bitrate = bps * channels * info->rate.num;
+                     if (info->bitrate <= 0)
+@@ -837,17 +832,15 @@ static int decavcodecaBSInfo( hb_work_object_t *w, con
+                         }
+                         else
+                         {
+-                            info->channel_layout = frame->ch_layout.u.mask;
++                            info->channel_layout = frame->channel_layout;
+                         }
+                     }
+                     if (info->channel_layout == 0)
+                     {
+                         // Channel layout was not set.  Guess a layout based
+                         // on number of channels.
+-                        AVChannelLayout channel_layout;
+-                        av_channel_layout_default(&channel_layout, 
frame->ch_layout.nb_channels);
+-                        info->channel_layout = channel_layout.u.mask;
+-                        av_channel_layout_uninit(&channel_layout);
++                        info->channel_layout = av_get_default_channel_layout(
++                                                            frame->channels);
+                     }
+                     if (context->codec_id == AV_CODEC_ID_AC3 ||
+                         context->codec_id == AV_CODEC_ID_EAC3)
+@@ -2310,7 +2303,7 @@ static void decodeAudio(hb_work_private_t *pv, packet_
+         else
+         {
+             AVFrameSideData *side_data;
+-            AVChannelLayout  channel_layout;
++            uint64_t         channel_layout;
+             if ((side_data =
+                  av_frame_get_side_data(pv->frame,
+                                 AV_FRAME_DATA_DOWNMIX_INFO)) != NULL)
+@@ -2335,14 +2328,13 @@ static void decodeAudio(hb_work_private_t *pv, packet_
+                                                  center_mix_level,
+                                                  downmix_info->lfe_mix_level);
+             }
+-            channel_layout = pv->frame->ch_layout;
+-            if (channel_layout.order != AV_CHANNEL_ORDER_NATIVE || 
channel_layout.u.mask == 0)
++            channel_layout = pv->frame->channel_layout;
++            if (channel_layout == 0)
+             {
+-                AVChannelLayout default_ch_layout;
+-                av_channel_layout_default(&default_ch_layout, 
pv->frame->ch_layout.nb_channels);
+-                channel_layout = default_ch_layout;
++                channel_layout = av_get_default_channel_layout(
++                                                        pv->frame->channels);
+             }
+-            hb_audio_resample_set_channel_layout(pv->resample, 
channel_layout.u.mask);
++            hb_audio_resample_set_channel_layout(pv->resample, 
channel_layout);
+             hb_audio_resample_set_sample_fmt(pv->resample,
+                                              pv->frame->format);
+             hb_audio_resample_set_sample_rate(pv->resample,
Index: patches/patch-libhb_decsrtsub_c
===================================================================
RCS file: patches/patch-libhb_decsrtsub_c
diff -N patches/patch-libhb_decsrtsub_c
--- patches/patch-libhb_decsrtsub_c     11 Mar 2022 19:39:19 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-iconv* => libiconv* for use with our libiconv
-
-Index: libhb/decsrtsub.c
---- libhb/decsrtsub.c.orig
-+++ libhb/decsrtsub.c
-@@ -271,7 +271,7 @@ static int utf8_fill( hb_work_private_t * pv )
-         q = pv->utf8_buf + pv->utf8_end;
-         in_size = pv->end - pv->pos;
- 
--        retval = iconv( pv->iconv_context, &p, &in_size, &q, &out_size);
-+        retval = libiconv( pv->iconv_context, &p, &in_size, &q, &out_size);
-         if (q != pv->utf8_buf + pv->utf8_end)
-         {
-             conversion = 1;
-@@ -672,7 +672,7 @@ static int decsrtInit( hb_work_object_t * w, hb_job_t 
-         pv->start_time = AV_NOPTS_VALUE;
-     }
- 
--    pv->iconv_context = iconv_open( "utf-8", pv->subtitle->config.src_codeset 
);
-+    pv->iconv_context = libiconv_open( "utf-8", 
pv->subtitle->config.src_codeset );
-     if( pv->iconv_context == (iconv_t) -1 )
-     {
-         hb_error("Could not open the iconv library with those file 
formats\n");
-@@ -703,7 +703,7 @@ fail:
-     {
-         if (pv->iconv_context != (iconv_t) -1)
-         {
--            iconv_close(pv->iconv_context);
-+            libiconv_close(pv->iconv_context);
-         }
-         if (pv->file != NULL)
-         {
-@@ -754,7 +754,7 @@ static void decsrtClose( hb_work_object_t * w )
-     if (pv != NULL)
-     {
-         fclose( pv->file );
--        iconv_close(pv->iconv_context);
-+        libiconv_close(pv->iconv_context);
-         free( w->private_data );
-     }
- }
Index: patches/patch-libhb_encavcodecaudio_c
===================================================================
RCS file: 
/cvs/ports/multimedia/handbrake/patches/patch-libhb_encavcodecaudio_c,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 patch-libhb_encavcodecaudio_c
--- patches/patch-libhb_encavcodecaudio_c       27 Jul 2022 15:14:10 -0000      
1.1
+++ patches/patch-libhb_encavcodecaudio_c       5 Apr 2024 06:36:44 -0000
@@ -1,20 +1,64 @@
-Fix missing audio tracks.
-
- * https://bugzilla.rpmfusion.org/show_bug.cgi?id=6006
- * 
https://github.com/HandBrake/HandBrake/commit/f28289fb06ab461ea082b4be56d6d1504c0c31c2
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
 
 Index: libhb/encavcodecaudio.c
 --- libhb/encavcodecaudio.c.orig
 +++ libhb/encavcodecaudio.c
-@@ -409,7 +409,10 @@ static void Encode(hb_work_object_t *w, hb_buffer_list
+@@ -174,15 +174,13 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
+         }
+     }
+ 
+-    AVChannelLayout ch_layout = {0};
+-    av_channel_layout_from_mask(&ch_layout, channel_layout);
+-
+     // allocate the context and apply the settings
+     context                      = avcodec_alloc_context3(codec);
+     hb_ff_set_sample_fmt(context, codec, sample_fmt);
+     context->bits_per_raw_sample = bits_per_raw_sample;
+     context->profile             = profile;
+-    context->ch_layout           = ch_layout;
++    context->channel_layout      = channel_layout;
++    context->channels            = pv->out_discrete_channels;
+     context->sample_rate         = audio->config.out.samplerate;
+     context->time_base           = (AVRational){1, 90000};
  
-         // Prepare input frame
+@@ -234,7 +232,7 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
+     pv->context           = context;
+     audio->config.out.samples_per_frame =
+     pv->samples_per_frame = context->frame_size;
+-    pv->input_samples     = context->frame_size * 
context->ch_layout.nb_channels;
++    pv->input_samples     = context->frame_size * context->channels;
+     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 :(
+@@ -257,9 +255,9 @@ static int encavcodecaInit(hb_work_object_t *w, hb_job
+         av_opt_set_int(pv->swresample, "out_sample_fmt",
+                        context->sample_fmt, 0);
+         av_opt_set_int(pv->swresample, "in_channel_layout",
+-                       context->ch_layout.u.mask, 0);
++                       context->channel_layout, 0);
+         av_opt_set_int(pv->swresample, "out_channel_layout",
+-                       context->ch_layout.u.mask, 0);
++                       context->channel_layout, 0);
+         av_opt_set_int(pv->swresample, "in_sample_rate",
+                        context->sample_rate, 0);
+         av_opt_set_int(pv->swresample, "out_sample_rate",
+@@ -423,15 +421,15 @@ static void Encode(hb_work_object_t *w, hb_buffer_list
          int     out_size;
--        AVFrame frame = { .nb_samples = pv->samples_per_frame, };
-+        AVFrame frame = { .nb_samples = pv->samples_per_frame,
-+                          .format = pv->context->sample_fmt,
+         AVFrame frame = { .nb_samples = pv->samples_per_frame,
+                           .format = pv->context->sample_fmt,
+-                          .ch_layout = pv->context->ch_layout
 +                          .channels = pv->context->channels
-+        };
+         };
  
          out_size = av_samples_get_buffer_size(NULL,
-                                               pv->context->channels,
+-                                              
pv->context->ch_layout.nb_channels,
++                                              pv->context->channels,
+                                               pv->samples_per_frame,
+                                               pv->context->sample_fmt, 1);
+         avcodec_fill_audio_frame(&frame,
+-                                 pv->context->ch_layout.nb_channels, 
pv->context->sample_fmt,
++                                 pv->context->channels, 
pv->context->sample_fmt,
+                                  pv->output_buf, out_size, 1);
+         if (pv->swresample != NULL)
+         {
Index: patches/patch-libhb_fifo_c
===================================================================
RCS file: patches/patch-libhb_fifo_c
diff -N patches/patch-libhb_fifo_c
--- patches/patch-libhb_fifo_c  11 Mar 2022 19:39:19 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Add OpenBSD where appropriate.
-
-Index: libhb/fifo.c
---- libhb/fifo.c.orig
-+++ libhb/fifo.c
-@@ -16,7 +16,7 @@
- #endif
- 
- #ifndef SYS_DARWIN
--#if defined( SYS_FREEBSD ) || defined ( __FreeBSD__ )
-+#if defined( SYS_FREEBSD ) || defined ( __FreeBSD__ ) || defined ( 
__OpenBSD__ )
- #include <stdlib.h>
- #else
- #include <malloc.h>
Index: patches/patch-libhb_muxavformat_c
===================================================================
RCS file: patches/patch-libhb_muxavformat_c
diff -N patches/patch-libhb_muxavformat_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_muxavformat_c   5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,33 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/muxavformat.c
+--- libhb/muxavformat.c.orig
++++ libhb/muxavformat.c
+@@ -804,21 +804,19 @@ static int avformatInit( hb_mux_object_t * m )
+         track->st->codecpar->sample_rate = audio->config.out.samplerate;
+         if (audio->config.out.codec & HB_ACODEC_PASS_FLAG)
+         {
+-            AVChannelLayout ch_layout = {0};
+-            av_channel_layout_from_mask(&ch_layout, 
audio->config.in.channel_layout);
+-            track->st->codecpar->ch_layout = ch_layout;
++            track->st->codecpar->channels = 
av_get_channel_layout_nb_channels(audio->config.in.channel_layout);
++            track->st->codecpar->channel_layout = 
audio->config.in.channel_layout;
+         }
+         else
+         {
+-            AVChannelLayout ch_layout = {0};
+-            av_channel_layout_from_mask(&ch_layout, 
hb_ff_mixdown_xlat(audio->config.out.mixdown, NULL));
+-            track->st->codecpar->ch_layout = ch_layout;
++            track->st->codecpar->channels = 
hb_mixdown_get_discrete_channel_count(audio->config.out.mixdown);
++            track->st->codecpar->channel_layout = 
hb_ff_mixdown_xlat(audio->config.out.mixdown, NULL);
+         }
+ 
+         const char *name;
+         if (audio->config.out.name == NULL)
+         {
+-            switch (track->st->codecpar->ch_layout.nb_channels)
++            switch (track->st->codecpar->channels)
+             {
+                 case 1:
+                     name = "Mono";
Index: patches/patch-libhb_scan_c
===================================================================
RCS file: patches/patch-libhb_scan_c
diff -N patches/patch-libhb_scan_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-libhb_scan_c  5 Apr 2024 06:36:44 -0000
@@ -0,0 +1,15 @@
+Revert "libhb: use mask part the new FFmpeg channel layout api."
+c5012478cba356b8f8f222d6acff9fe3cc74e67e
+
+Index: libhb/scan.c
+--- libhb/scan.c.orig
++++ libhb/scan.c
+@@ -1611,7 +1611,7 @@ static void LookForAudio(hb_scan_t *scan, hb_title_t *
+     {
+         int lfes     = (!!(audio->config.in.channel_layout & 
AV_CH_LOW_FREQUENCY) +
+                         !!(audio->config.in.channel_layout & 
AV_CH_LOW_FREQUENCY_2));
+-        int channels = 
hb_layout_get_discrete_channel_count(audio->config.in.channel_layout);
++        int channels = 
av_get_channel_layout_nb_channels(audio->config.in.channel_layout);
+         char *desc   = audio->config.lang.description +
+                         strlen(audio->config.lang.description);
+         size_t size = sizeof(audio->config.lang.description) - 
strlen(audio->config.lang.description);
Index: patches/patch-make_configure_py
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/patches/patch-make_configure_py,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-make_configure_py
--- patches/patch-make_configure_py     11 Mar 2022 19:39:19 -0000      1.4
+++ patches/patch-make_configure_py     5 Apr 2024 06:36:44 -0000
@@ -1,50 +1,9 @@
-Add OpenBSD to the configure args we need.
 Do not look for CMake; we don't need it.
 
 Index: make/configure.py
 --- make/configure.py.orig
 +++ make/configure.py
-@@ -682,6 +682,8 @@ class ArchAction( Action ):
-         elif host_tuple.match( '*-*-freebsd*' ):
-             self.mode['i386']   = 'i386-portsbuild-freebsd%s' % 
(host_tuple.release)
-             self.mode['amd64'] = 'amd64-portsbuild-freebsd%s' % 
(host_tuple.release)
-+        elif host_tuple.match( '*-*-openbsd*' ):
-+            pass
-         else:
-             self.msg_pass = 'WARNING'
- 
-@@ -1338,7 +1340,7 @@ def createCLI( cross = None ):
-     ## add build options
-     grp = cli.add_argument_group( 'Build Options' )
-     grp.add_argument( '--snapshot', default=False, action='store_true', 
help='Force a snapshot build' )
--    h = IfHost( 'Build extra contribs for flatpak packaging', '*-*-linux*', 
'*-*-freebsd*', none=argparse.SUPPRESS ).value
-+    h = IfHost( 'Build extra contribs for flatpak packaging', '*-*-linux*', 
'*-*-freebsd*', '*-*-openbsd*', none=argparse.SUPPRESS ).value
-     grp.add_argument( '--flatpak', default=False, action='store_true', help=h 
)
-     cli.add_argument_group( grp )
- 
-@@ -1378,10 +1380,10 @@ def createCLI( cross = None ):
-     h = IfHost( 'enable assembly code in non-contrib modules', 
'NOMATCH*-*-darwin*', 'NOMATCH*-*-linux*', none=argparse.SUPPRESS ).value
-     grp.add_argument( '--enable-asm', default=False, action='store_true', 
help=h )
- 
--    h = IfHost( 'disable GTK GUI', '*-*-linux*', '*-*-freebsd*', 
none=argparse.SUPPRESS ).value
-+    h = IfHost( 'disable GTK GUI', '*-*-linux*', '*-*-freebsd*', 
'*-*-openbsd*', none=argparse.SUPPRESS ).value
-     grp.add_argument( '--disable-gtk', default=False, action='store_true', 
help=h )
- 
--    h = IfHost( 'disable GTK GUI update checks', '*-*-linux*', 
'*-*-freebsd*', none=argparse.SUPPRESS ).value
-+    h = IfHost( 'disable GTK GUI update checks', '*-*-linux*', 
'*-*-freebsd*', '*-*-openbsd*', none=argparse.SUPPRESS ).value
-     grp.add_argument( '--disable-gtk-update-checks', default=False, 
action='store_true', help=h )
- 
-     h = 'enable GTK GUI for Windows' if (cross is not None and 'mingw' in 
cross) else argparse.SUPPRESS
-@@ -1390,7 +1392,7 @@ def createCLI( cross = None ):
-     h = IfHost( 'Build GUI with GTK4', '*-*-linux*', '*-*-freebsd*', 
none=argparse.SUPPRESS ).value
-     grp.add_argument( '--enable-gtk4', default=False, action='store_true', 
help=h )
- 
--    h = IfHost( 'disable GStreamer (live preview)', '*-*-linux*', 
'*-*-freebsd*', none=argparse.SUPPRESS ).value
-+    h = IfHost( 'disable GStreamer (live preview)', '*-*-linux*', 
'*-*-freebsd*', '*-*-openbsd*', none=argparse.SUPPRESS ).value
-     grp.add_argument( '--disable-gst', default=False, action='store_true', 
help=h )
- 
-     h = IfHost( 'x265 video encoder', '*-*-*', none=argparse.SUPPRESS ).value
-@@ -1581,13 +1583,10 @@ try:
+@@ -1638,13 +1638,10 @@ try:
      class Tools:
          ar         = ToolProbe( 'AR.exe',         'ar',         'ar', 
abort=True )
          cp         = ToolProbe( 'CP.exe',         'cp',         'cp', 
abort=True )
@@ -58,11 +17,11 @@ Index: make/configure.py
          python     = ToolProbe( 'PYTHON.exe',     'python',     
os.path.basename(sys.executable), abort=True )
  
          gcc_tools  = ['GCC.gcc',
-@@ -1602,14 +1601,9 @@ try:
+@@ -1659,14 +1656,9 @@ try:
          else:
              gmake  = ToolProbe( 'GMAKE.exe',      'make',       'gmake', 
'make', abort=True )
  
--        autoconf   = ToolProbe( 'AUTOCONF.exe',   'autoconf',   'autoconf', 
abort=True, minversion=[2,69,0] )
+-        autoconf   = ToolProbe( 'AUTOCONF.exe',   'autoconf',   'autoconf', 
abort=True, minversion=([2,71,0] if build_tuple.match('*-*-darwin*') else 
[2,69,0]) )
 -        automake   = ToolProbe( 'AUTOMAKE.exe',   'automake',   'automake', 
abort=True, minversion=[1,13,0] )
          libtool    = ToolProbe( 'LIBTOOL.exe',    'libtool',    'libtool', 
abort=True )
          lipo       = ToolProbe( 'LIPO.exe',       'lipo',       'lipo', 
abort=False )
@@ -71,14 +30,12 @@ Index: make/configure.py
 -        nasm       = ToolProbe( 'NASM.exe',       'asm',        'nasm', 
abort=True, minversion=[2,13,0] )
 -        ninja      = ToolProbe( 'NINJA.exe',      'ninja',      
'ninja-build', 'ninja', abort=True )
  
-         xcodebuild = ToolProbe( 'XCODEBUILD.exe', 'xcodebuild', 'xcodebuild', 
abort=(True if (build_tuple.match('*-*-darwin*') and cross is None) else 
False), versionopt='-version', minversion=[10,3,0] )
+         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] )
  
-@@ -1695,12 +1689,6 @@ try:
-     if options.flatpak or host_tuple.match('*-*-darwin*', '*-*-mingw'):
-         # Requires Jansson which requires CMake 3.1.0 or later
-         Tools.cmake = ToolProbe('CMAKE.exe', 'cmake', 'cmake', abort=True, 
minversion=[3,1,0])
--    else:
--        Tools.cmake = ToolProbe('CMAKE.exe', 'cmake', 'cmake', abort=True, 
minversion=[2,8,12])
+@@ -1765,10 +1757,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])
 -    Tools.cmake.__init__( Tools.cmake.var, Tools.cmake.option, 
Tools.cmake.name, **Tools.cmake.kwargs )
 -    Tools.cmake.run()
 -    for action in Action.actions:
Index: patches/patch-make_include_gcc_defs
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/patches/patch-make_include_gcc_defs,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-make_include_gcc_defs
--- patches/patch-make_include_gcc_defs 11 Mar 2022 19:39:19 -0000      1.3
+++ patches/patch-make_include_gcc_defs 5 Apr 2024 06:36:44 -0000
@@ -1,28 +1,36 @@
-Remove hardcoded optimization flags.
-Proper -I and -L dirs.
+- Remove hardcoded optimization flags.
+- Proper -I and -L dirs.
 
 Index: make/include/gcc.defs
 --- make/include/gcc.defs.orig
 +++ make/include/gcc.defs
-@@ -60,16 +60,16 @@ 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.speed   = -O3
-+GCC.args.O.none    = 
-+GCC.args.O.size    = 
-+GCC.args.O.speed   = 
- GCC.args.D         = -D$(1)
--GCC.args.I         = -I$(1)
-+GCC.args.I         = -I$(1) -I$(LOCALBASE)/include -I$(X11BASE)/include 
-I$(LOCALBASE)/include/libavcodec
- 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
+@@ -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: /cvs/ports/multimedia/handbrake/patches/patch-make_include_main_defs,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-make_include_main_defs
--- patches/patch-make_include_main_defs        11 Mar 2022 19:39:19 -0000      
1.3
+++ patches/patch-make_include_main_defs        5 Apr 2024 06:36:44 -0000
@@ -1,10 +1,9 @@
 Rip out all the optional dependencies.
-We'll let the ports tree handle it.
 
 Index: make/include/main.defs
 --- make/include/main.defs.orig
 +++ make/include/main.defs
-@@ -7,87 +7,6 @@ include $(SRC/)make/include/tool.defs
+@@ -7,97 +7,6 @@ include $(SRC/)make/include/tool.defs
  
  
###############################################################################
  
@@ -29,9 +28,11 @@ Index: make/include/main.defs
 -    MODULES += contrib/x264
 -    MODULES += contrib/jansson
 -    MODULES += contrib/libvpx
+-    MODULES += contrib/libjpeg-turbo
 -endif
 -
 -ifeq (1,$(FEATURE.flatpak))
+-    MODULES += contrib/libass
 -    MODULES += contrib/jansson
 -    MODULES += contrib/x264
 -endif
@@ -48,13 +49,17 @@ Index: make/include/main.defs
 -endif
 -
 -MODULES += contrib/libdav1d
+-MODULES += contrib/svt-av1
+-MODULES += contrib/zimg
 -MODULES += contrib/ffmpeg
 -MODULES += contrib/libdvdread
 -MODULES += contrib/libdvdnav
 -MODULES += contrib/libbluray
 -
 -ifeq (1,$(FEATURE.qsv))
--    MODULES += contrib/libmfx
+-ifeq (,$(filter $(HOST.system),freebsd))
+-    MODULES += contrib/libvpl
+-endif
 -endif
 -
 -ifeq (1,$(FEATURE.vce))
@@ -69,6 +74,10 @@ Index: make/include/main.defs
 -    MODULES += contrib/xz
 -endif
 -
+-ifneq (,$(filter $(HOST.machine),arm64 aarch64))
+-    MODULES += contrib/sse2neon
+-endif
+-
 -ifneq (,$(filter $(HOST.system),cygwin mingw))
 -ifneq ($(HAS.iconv),1)
 -    MODULES += contrib/libiconv
@@ -91,16 +100,4 @@ Index: make/include/main.defs
 -
  ## these must come after contrib since some contrib modules are optional
  MODULES += libhb
- 
-@@ -122,6 +41,11 @@ endif
- 
- ifeq (1-gnu,$(FEATURE.gtk)-$(HOST.system))
-     ## build gtk when gtk+gnu
-+    MODULES += gtk
-+endif
-+
-+ifeq (1-openbsd,$(FEATURE.gtk)-$(BUILD.system))
-+    ## build gtk when gtk+openbsd
-     MODULES += gtk
- endif
  
Index: patches/patch-make_variant_freebsd_defs
===================================================================
RCS file: patches/patch-make_variant_freebsd_defs
diff -N patches/patch-make_variant_freebsd_defs
--- patches/patch-make_variant_freebsd_defs     11 Mar 2022 19:39:19 -0000      
1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: make/variant/freebsd.defs
---- make/variant/freebsd.defs.orig
-+++ make/variant/freebsd.defs
-@@ -3,8 +3,6 @@ LOCALBASE  ?= /usr/local
- 
- TARGET.dylib.ext = .so
- 
--GCC.D       = LIBICONV_PLUG
--
- GCC.args.dylib = -shared
- GCC.args.pic   = 1
- 
Index: patches/patch-test_module_defs
===================================================================
RCS file: patches/patch-test_module_defs
diff -N patches/patch-test_module_defs
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-test_module_defs      5 Apr 2024 06:36:44 -0000
@@ -0,0 +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 \
+         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
+ 
+ ifeq (,$(filter $(HOST.system),darwin cygwin mingw))
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 PLIST
--- pkg/PLIST   11 Mar 2022 19:39:19 -0000      1.4
+++ pkg/PLIST   5 Apr 2024 06:36:44 -0000
@@ -5,15 +5,23 @@ share/applications/fr.handbrake.ghb.desk
 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
@@ -22,7 +30,11 @@ 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
@@ -30,6 +42,7 @@ 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


Reply via email to