git: 5db01aa057d9 - 2026Q3 - multimedia/vlc: Update to 3.0.23

Max Brazhnikov <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch 2026Q3 has been updated by makc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5db01aa057d9fb7194ca23a9f342fae7c10463a1

commit 5db01aa057d9fb7194ca23a9f342fae7c10463a1
Author:     Thierry Thomas <[email protected]>
AuthorDate: 2026-08-11 14:40:21 +0000
Commit:     Max Brazhnikov <[email protected]>
CommitDate: 2026-08-18 11:00:41 +0000

    multimedia/vlc: Update to 3.0.23
    
    - Allow to build with Qt 6 (experimental). Add general QT option and
      QT5/QT6 radio switch.
    - Enable FRIBIDI by default (required by HARFBUZZ).
    - Remove DEBUG from OPTIONS, respect WITH_DEBUG instead.
    - Do not silence commands.
    
    Release notes: https://code.videolan.org/videolan/vlc/-/tags/3.0.23
    
    PR:             296939
    Co-authored-by: Max Brazhnikov <[email protected]>
    (cherry picked from commit 03699b0de7a3cd995d346a816674d6710a8f4603)
---
 multimedia/vlc/Makefile                           |  78 ++++--
 multimedia/vlc/distinfo                           |   6 +-
 multimedia/vlc/files/patch-modules_access_rdp.c   |  14 +-
 multimedia/vlc/files/patch-modules_gui_qt_qt6.pro |  13 +
 multimedia/vlc/files/patch-share_Makefile.in      |   4 +-
 multimedia/vlc/files/patch-src-network-udp.c      |   4 +-
 multimedia/vlc/files/vlc-3.0.22-ffmpeg8.patch     | 324 ----------------------
 multimedia/vlc/pkg-plist                          |   2 +-
 8 files changed, 77 insertions(+), 368 deletions(-)

diff --git a/multimedia/vlc/Makefile b/multimedia/vlc/Makefile
index e73b9edf267d..3f2da1991990 100644
--- a/multimedia/vlc/Makefile
+++ b/multimedia/vlc/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	vlc
-DISTVERSION=	3.0.22
-PORTREVISION=	2
+DISTVERSION=	3.0.23
 PORTEPOCH=	4
 CATEGORIES=	multimedia audio net www
 MASTER_SITES=	https://get.videolan.org/${PORTNAME}/${DISTVERSION:S/a$//}/ \
@@ -28,12 +27,11 @@ LIB_DEPENDS=	libgcrypt.so:security/libgcrypt \
 		libebml.so:textproc/libebml
 RUN_DEPENDS=	ffmpeg>=3.4.1,1:multimedia/ffmpeg
 
-EXTRA_PATCHES=	${FILESDIR}/vlc-3.0.22-ffmpeg8.patch:-p1
-
-USES=		compiler:c++17-lang cpe desktop-file-utils elfctl gettext-tools \
-		gl gmake gnome iconv:wchar_t libtool localbase pathfix pkgconfig \
-		tar:xz
+USES=		compiler:c++17-lang cpe desktop-file-utils dos2unix \
+		elfctl gettext-tools gl gmake gnome iconv:wchar_t \
+		libtool localbase pathfix pkgconfig tar:xz
 USE_GL=		opengl
+DOS2UNIX_FILES=	modules/gui/qt/qt6.pro
 
 CPE_VENDOR=	videolan
 
@@ -58,9 +56,14 @@ CONFIGURE_ARGS=	--enable-avcodec --enable-avformat --enable-dvbpsi \
 		--with-kde-solid=${PREFIX}/share/solid/actions \
 		ac_cv_search_pthread_rwlock_init=-pthread \
 		BUILDCC="${CC}"
+
 .if defined(WITH_DEBUG)
-CONFIGURE_ARGS+=--enable-debug
+CONFIGURE_ARGS+=--enable-debug --disable-optimizations
+CFLAGS+=	-g -O0
+CXXFLAGS+=	-g -O0
 .endif
+
+MAKE_ENV=	MAKE=${GMAKE}
 INSTALL_TARGET=	install-strip
 CFLAGS+=	-Wno-unreachable-code-generic-assoc
 CFLAGS_i386=	-fomit-frame-pointer
@@ -71,17 +74,20 @@ PORTDATA=	*
 PORTDOCS=	*
 
 OPTIONS_DEFINE=	A52 AALIB AOM ARIBSUB ASS AVAHI CACA CHROMECAST DAV1D DBUS DCA \
-		DEBUG DOCS DVDNAV DVDREAD DEBUG FAAD FLAC FLUID FREERDP FRIBIDI \
+		DOCS DVDNAV DVDREAD FAAD FLAC FLUID FREERDP FRIBIDI \
 		GME GNUTLS GOOM HARFBUZZ JACK JPEG LIBBLURAY LIBPLACEBO LIBRSVG2 \
 		LIBSSH2 LIRC LIVEMEDIA LUA MAD MFX MODPLUG MPEG2 MTP \
 		NCURSES NFS NLS NOTIFY OGGSPOTS OGG OPTIMIZED_CFLAGS OPUS PNG \
-		PULSEAUDIO QT5 REALRTSP RUNROOT SAMPLERATE SDL SHOUTCAST \
+		PULSEAUDIO QT REALRTSP RUNROOT SAMPLERATE SDL SHOUTCAST \
 		SKINS SMB SNDIO SPEEX SRT STREAM TAGLIB THEORA TWOLAME UPNP V4L \
 		VAAPI VCD VDPAU VORBIS VPX WAYLAND X11 X264 X265 ZVBI
 OPTIONS_DEFINE_powerpc=		ALTIVEC
 OPTIONS_DEFINE_powerpc64=	ALTIVEC
-OPTIONS_DEFAULT=ASS AVAHI CHROMECAST DAV1D DBUS DVDNAV DVDREAD GNUTLS HARFBUZZ \
-		JPEG LIVEMEDIA LUA OGG OPTIMIZED_CFLAGS OPUS PNG QT5 SAMPLERATE \
+OPTIONS_RADIO=		QTVER
+OPTIONS_RADIO_QTVER=	QT5 QT6
+
+OPTIONS_DEFAULT=ASS AVAHI CHROMECAST DAV1D DBUS DVDNAV DVDREAD FRIBIDI GNUTLS HARFBUZZ \
+		JPEG LIVEMEDIA LUA OGG OPTIMIZED_CFLAGS OPUS PNG QT QT5 SAMPLERATE \
 		SKINS SPEEX STREAM TAGLIB THEORA TWOLAME UPNP V4L VAAPI VCD \
 		VDPAU VORBIS WAYLAND X11
 OPTIONS_DEFAULT_powerpc=	ALTIVEC
@@ -106,9 +112,12 @@ LIBPLACEBO_DESC=	HDR tonemapping support through libplacebo
 LIBSSH2_DESC=		SCP/SFTP support via libssh2
 MFX_DESC=		Intel MediaSDK (aka Quick Sync Video)
 OGGSPOTS_DESC=		Experimental OggSpots codec
+QT_DESC=		Qt toolkit support (requires either QT5 or QT6)
+QT6_DESC=		Qt 6 toolkit support (experimental)
+QTVER_DESC=		Select Qt GUI engine version
 REALRTSP_DESC=		Real RTSP access module
 RUNROOT_DESC=		Enable running as root
-SKINS_DESC=		Build skins2 interface module (implies QT5)
+SKINS_DESC=		Build skins2 interface module (implies QT)
 SRT_DESC=		Secure Reliable Transport support
 STREAM_DESC=		stream output
 TAGLIB_DESC=		ID3 tag and Ogg comment support
@@ -191,6 +200,7 @@ GNUTLS_CONFIGURE_ENABLE=gnutls
 GOOM_LIB_DEPENDS=	libgoom2.so:graphics/goom
 GOOM_CONFIGURE_ENABLE=	goom
 
+HARFBUZZ_IMPLIES=	FRIBIDI
 HARFBUZZ_LIB_DEPENDS=	libharfbuzz.so:print/harfbuzz
 HARFBUZZ_CONFIGURE_ENABLE=	harfbuzz
 
@@ -282,10 +292,18 @@ PNG_CONFIGURE_ENABLE=	png
 PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	pulse
 
-QT5_IMPLIES=		X11
+QT_IMPLIES=		X11
+QT_CONFIGURE_ENABLE=	qt
+QT_CONFIGURE_ENV=	QTDIR="${QT_ARCHDIR}" QMAKE="${QMAKE}" \
+			MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \
+
+QT5_IMPLIES=		QT
 QT5_USES=		qt:5
 QT5_USE=		QT=gui,core,svg,widgets,x11extras,buildtools:build
-QT5_CONFIGURE_ENABLE=	qt
+
+QT6_IMPLIES=		QT
+QT6_USES=		qt:6
+QT6_USE=		QT=base,svg
 
 REALRTSP_CONFIGURE_ENABLE=	realrtsp
 
@@ -301,7 +319,7 @@ SDL_CONFIGURE_ENABLE=	sdl-image
 SHOUTCAST_LIB_DEPENDS=	libshout.so:audio/libshout
 SHOUTCAST_CONFIGURE_ENABLE=	shout
 
-SKINS_IMPLIES=		QT5
+SKINS_IMPLIES=		QT
 SKINS_USES=		libarchive xorg
 SKINS_USE=		XORG=xext,xinerama,xpm
 SKINS_CONFIGURE_ENABLE=	archive skins2
@@ -352,6 +370,7 @@ VORBIS_CONFIGURE_ENABLE=	vorbis
 VPX_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
 VPX_CONFIGURE_ENABLE=	vpx
 
+# Incomplete Wayland support
 WAYLAND_CATEGORIES=	wayland
 WAYLAND_BUILD_DEPENDS=	wayland-protocols>=0:graphics/wayland-protocols
 WAYLAND_LIB_DEPENDS=	libwayland-client.so:graphics/wayland
@@ -377,29 +396,30 @@ WITH_DVD_DEVICE?=/dev/cd0
 
 .include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MDEBUG}
-CONFIGURE_ARGS+=--enable-debug --disable-optimizations
-CFLAGS+=-g -O0
-CXXFLAGS+=-g -O0
+.if ${PORT_OPTIONS:MQT}
+.  if empty(PORT_OPTIONS:MQT5) && empty(PORT_OPTIONS:MQT6)
+IGNORE=		cannot be installed: QT option requires either QT5 or QT6
+.  endif
 .endif
 
-post-patch:
-	@${REINPLACE_CMD} \
-		-e '\|LIBS|s|-lrt||' \
-		-e 's|LIBS="-llirc_client|LIBS="$$LIBS_lirc|' \
-		-e '/PKG_CONFIG/s|\"gl\"|"opengl"|g' \
+pre-configure-QT6-on:
+	${REINPLACE_CMD} 's|Qt5|Qt6}|g;s|qt5|qt6|g' \
+		${WRKSRC}/configure
+
+pre-configure:
+	${REINPLACE_CMD} -e 's|make -s|${MAKE_CMD} -s|' \
 		${WRKSRC}/configure
-	@${REINPLACE_CMD} -e 's|/dev/cdrom|${WITH_CDROM_DEVICE}|g' \
+	${REINPLACE_CMD} -e 's|/dev/cdrom|${WITH_CDROM_DEVICE}|g' \
 		-e 's|/dev/dvd|${WITH_DVD_DEVICE}|g' \
 		${WRKSRC}/src/libvlc-module.c
-	@${RM} -r ${WRKSRC}/modules/access/v4l2/linux
+	${RM} -r ${WRKSRC}/modules/access/v4l2/linux
 # XXX FreeBSD doesn't have strerror_l() - use the android version of error.c
-	@${CP} ${WRKSRC}/src/android/error.c ${WRKSRC}/src/posix
+	${CP} ${WRKSRC}/src/android/error.c ${WRKSRC}/src/posix
 
 post-install:
 	@(cd ${STAGEDIR}${PREFIX} && ${FIND} -s lib/vlc -not -name '*.la' \
 		-type f -o -type l >> ${TMPPLIST})
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/vlc/plugins/*/*.so
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/vlc/plugins/*/*.so
 	# plugin cache becomes stale after strip. Regenerate it:
 	${WRKSRC}/bin/vlc-cache-gen ${STAGEDIR}${PREFIX}/lib/vlc/plugins
 
diff --git a/multimedia/vlc/distinfo b/multimedia/vlc/distinfo
index fcc6ae9e4cb3..b2f9bfcd40fb 100644
--- a/multimedia/vlc/distinfo
+++ b/multimedia/vlc/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1766620787
-SHA256 (vlc-3.0.22.tar.xz) = e2cc1cf0ae0902a09da5a37c249a8a4e4b5ec4dc095443b8e1493c6a7cc138ea
-SIZE (vlc-3.0.22.tar.xz) = 26427084
+TIMESTAMP = 1784491577
+SHA256 (vlc-3.0.23.tar.xz) = e891cae6aa3ccda69bf94173d5105cbc55c7a7d9b1d21b9b21666e69eff3e7e0
+SIZE (vlc-3.0.23.tar.xz) = 26486988
diff --git a/multimedia/vlc/files/patch-modules_access_rdp.c b/multimedia/vlc/files/patch-modules_access_rdp.c
index 3f56335f8db5..ee348b8d1dbc 100644
--- a/multimedia/vlc/files/patch-modules_access_rdp.c
+++ b/multimedia/vlc/files/patch-modules_access_rdp.c
@@ -1,4 +1,4 @@
---- modules/access/rdp.c.orig	2016-07-22 12:10:45 UTC
+--- modules/access/rdp.c.orig	2025-12-23 10:49:20 UTC
 +++ modules/access/rdp.c
 @@ -45,18 +45,6 @@
  # include <freerdp/version.h>
@@ -19,7 +19,7 @@
  #include <errno.h>
  #ifdef HAVE_POLL
  # include <poll.h>
-@@ -140,6 +128,7 @@ static void desktopResizeHandler( rdpCon
+@@ -144,6 +132,7 @@ static void desktopResizeHandler( rdpContext *p_contex
      vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
      demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
      rdpGdi *p_gdi = p_context->gdi;
@@ -27,7 +27,7 @@
  
      if ( p_sys->es )
      {
-@@ -149,17 +138,21 @@ static void desktopResizeHandler( rdpCon
+@@ -153,17 +142,21 @@ static void desktopResizeHandler( rdpContext *p_contex
  
      /* Now init and fill es format */
      vlc_fourcc_t i_chroma;
@@ -53,7 +53,7 @@
              break;
      }
      es_format_t fmt;
-@@ -172,7 +165,7 @@ static void desktopResizeHandler( rdpCon
+@@ -176,7 +169,7 @@ static void desktopResizeHandler( rdpContext *p_contex
      fmt.video.i_height = p_gdi->height;
      fmt.video.i_frame_rate_base = 1000;
      fmt.video.i_frame_rate = 1000 * p_sys->f_fps;
@@ -62,7 +62,7 @@
  
      if ( p_sys->p_block )
          p_sys->p_block = block_Realloc( p_sys->p_block, 0, p_sys->i_framebuffersize );
-@@ -233,28 +226,19 @@ static bool postConnectHandler( freerdp 
+@@ -237,28 +230,19 @@ static bool postConnectHandler( freerdp *p_instance )
      vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
  
      msg_Dbg( p_vlccontext->p_demux, "connected to desktop %dx%d (%d bpp)",
@@ -95,7 +95,7 @@
  
      desktopResizeHandler( p_instance->context );
      return true;
-@@ -428,10 +412,6 @@ static int Open( vlc_object_t *p_this )
+@@ -432,10 +416,6 @@ static int Open( vlc_object_t *p_this )
      if ( p_sys->f_fps <= 0 ) p_sys->f_fps = 1.0;
      p_sys->i_frame_interval = 1000000 / p_sys->f_fps;
  
@@ -106,7 +106,7 @@
      p_sys->p_instance = freerdp_new();
      if ( !p_sys->p_instance )
      {
-@@ -506,9 +486,6 @@ static void Close( vlc_object_t *p_this 
+@@ -512,9 +492,6 @@ static void Close( vlc_object_t *p_this )
  
      freerdp_disconnect( p_sys->p_instance );
      freerdp_free( p_sys->p_instance );
diff --git a/multimedia/vlc/files/patch-modules_gui_qt_qt6.pro b/multimedia/vlc/files/patch-modules_gui_qt_qt6.pro
new file mode 100644
index 000000000000..423d9fc124e3
--- /dev/null
+++ b/multimedia/vlc/files/patch-modules_gui_qt_qt6.pro
@@ -0,0 +1,13 @@
+--- modules/gui/qt/qt6.pro.orig	2026-07-20 18:14:35 UTC
++++ modules/gui/qt/qt6.pro
+@@ -21,6 +21,10 @@ QTPLUGIN += qxcb-glx-integration qxcb-egl-integration 
+ QTPLUGIN += qxcb-glx-integration qxcb-egl-integration qxcb qwayland-generic qwayland-egl qgtk3 qxdgdesktopportal xdg-shell
+ }
+ 
++freebsd {
++QTPLUGIN += qxcb-glx-integration qxcb-egl-integration qxcb qwayland-generic qwayland-egl qgtk3 qxdgdesktopportal xdg-shell
++}
++
+ macx {
+ QTPLUGIN += qcocoa qmacstyle
+ }
diff --git a/multimedia/vlc/files/patch-share_Makefile.in b/multimedia/vlc/files/patch-share_Makefile.in
index 79222127a897..d27ed522e0ee 100644
--- a/multimedia/vlc/files/patch-share_Makefile.in
+++ b/multimedia/vlc/files/patch-share_Makefile.in
@@ -1,6 +1,6 @@
---- share/Makefile.in.orig	2017-04-06 14:40:37 UTC
+--- share/Makefile.in.orig	2026-08-03 20:48:17 UTC
 +++ share/Makefile.in
-@@ -1845,7 +1845,7 @@ skins2/default.vlt: $(skins2_default_vlt
+@@ -1855,7 +1855,7 @@ skins2/default.vlt: $(skins2_default_vlt_FILES)
  	GZIP=--no-name \
  	tar cvvzf skins2/default.vlt.tmp \
  		--format=ustar $$tarsort \
diff --git a/multimedia/vlc/files/patch-src-network-udp.c b/multimedia/vlc/files/patch-src-network-udp.c
index 22f0c77b7279..8bf8709ce300 100644
--- a/multimedia/vlc/files/patch-src-network-udp.c
+++ b/multimedia/vlc/files/patch-src-network-udp.c
@@ -1,6 +1,6 @@
---- src/network/udp.c.orig	2018-01-17 13:29:46 UTC
+--- src/network/udp.c.orig	2025-12-23 10:49:21 UTC
 +++ src/network/udp.c
-@@ -315,7 +315,7 @@ net_SourceSubscribe (vlc_object_t *obj, 
+@@ -316,7 +316,7 @@ net_SourceSubscribe (vlc_object_t *obj, int fd,
  {
  /* MCAST_JOIN_SOURCE_GROUP was introduced to OS X in v10.7, but it doesn't work,
   * so ignore it to use the same code path as on 10.5 or 10.6 */
diff --git a/multimedia/vlc/files/vlc-3.0.22-ffmpeg8.patch b/multimedia/vlc/files/vlc-3.0.22-ffmpeg8.patch
deleted file mode 100644
index 061fa5edff13..000000000000
--- a/multimedia/vlc/files/vlc-3.0.22-ffmpeg8.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From: Steve Lhomme <[email protected]>
-Date: Mon, 8 Sep 2025 13:55:28 +0200
-Subject: avcodec: encoder: remove AV_INPUT_BUFFER_MIN_SIZE usage
-
-It's not supported in FFMpeg 8.0 since 60.40.100.
-
-It used to be used with preallocated packet buffers with
-the old encode API, but said API is no more and therefore
-there is no reason for this to be public any more.
-So deprecate it and use an internal replacement
-for the encoders using it as an upper bound for the
-size of their headers.
-
-(cherry picked from commit dae7faa0757ee094681c5e7100baca74c007c67c)
----
- modules/codec/avcodec/avcommon_compat.h | 3 ---
- modules/codec/avcodec/encoder.c         | 2 +-
- 2 files changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
-index 8ab6910..14aa62c 100644
---- a/modules/codec/avcodec/avcommon_compat.h
-+++ b/modules/codec/avcodec/avcommon_compat.h
-@@ -75,9 +75,6 @@
- #ifndef AV_CODEC_CAP_SMALL_LAST_FRAME
- # define AV_CODEC_CAP_SMALL_LAST_FRAME CODEC_CAP_SMALL_LAST_FRAME
- #endif
--#ifndef AV_INPUT_BUFFER_MIN_SIZE
--# define AV_INPUT_BUFFER_MIN_SIZE FF_MIN_BUFFER_SIZE
--#endif
- #ifndef  FF_MAX_B_FRAMES
- # define  FF_MAX_B_FRAMES 16 // FIXME: remove this
- #endif
-diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
-index be53cec..deb61eb 100644
---- a/modules/codec/avcodec/encoder.c
-+++ b/modules/codec/avcodec/encoder.c
-@@ -1052,7 +1052,7 @@ errmsg:
-         p_sys->i_sample_bytes = (p_enc->fmt_in.audio.i_bitspersample / 8);
-         p_sys->i_frame_size = p_context->frame_size > 1 ?
-                                     p_context->frame_size :
--                                    AV_INPUT_BUFFER_MIN_SIZE;
-+                                    16384; // AV_INPUT_BUFFER_MIN_SIZE
-         p_sys->i_buffer_out = av_samples_get_buffer_size(NULL,
-                 p_enc->fmt_out.audio.i_channels, p_sys->i_frame_size,
-                 p_sys->p_context->sample_fmt, DEFAULT_ALIGN);
-From: Steve Lhomme <[email protected]>
-Date: Tue, 14 Jan 2025 11:28:21 +0100
-Subject: avcodec/video: use frame flags instead of fields
-
-The structure fields are deprecated.
-It was introduced in lavu 58.7.100.
-
-(cherry picked from commit c79659bc9cfa2ff14754920a706f89d07d6425e6)
----
- modules/codec/avcodec/video.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
-index 8524f57..dfd359c 100644
---- a/modules/codec/avcodec/video.c
-+++ b/modules/codec/avcodec/video.c
-@@ -1431,8 +1431,13 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
-         /* Hack to force display of still pictures */
-         p_pic->b_force = p_sys->b_first_frame;
-         p_pic->i_nb_fields = 2 + frame->repeat_pict;
-+#if LIBAVUTIL_VERSION_CHECK( 58, 7, 100 )
-+        p_pic->b_progressive = !(frame->flags & AV_FRAME_FLAG_INTERLACED);
-+        p_pic->b_top_field_first = !!(frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST);
-+#else
-         p_pic->b_progressive = !frame->interlaced_frame;
-         p_pic->b_top_field_first = frame->top_field_first;
-+#endif
- 
-         if (DecodeSidedata(p_dec, frame, p_pic))
-             i_pts = VLC_TICK_INVALID;
-From: Steve Lhomme <[email protected]>
-Date: Mon, 8 Sep 2025 13:51:43 +0200
-Subject: avcodec: use AV_PROFILE_xxx instead of FF_PROFILE_xxx
-
-This was added in libavcodec 60.26.100 [^1]. We require 58.54.100.
-
-[^1]:  https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/8238bc0b5e3dba271217b1223a901b3f9713dc6e
-
-(cherry picked from commit ff292b650ea0b10c67c9e4ff16327486afe0d8ad) (edited)
-- the vaapi had less profiles
-- the direct_va doesn't have HEVC EXT
-- FF_PROFILE_UNKNOWN was used in more places
----
- modules/codec/avcodec/audio.c           |  2 +-
- modules/codec/avcodec/avcommon_compat.h |  6 +++++
- modules/codec/avcodec/directx_va.c      | 40 ++++++++++++++++-----------------
- modules/codec/avcodec/encoder.c         | 20 ++++++++---------
- modules/codec/avcodec/vaapi.c           |  8 +++----
- modules/codec/avcodec/video.c           |  2 +-
- 6 files changed, 42 insertions(+), 36 deletions(-)
-
-diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
-index b6186d6..46f9a2a 100644
---- a/modules/codec/avcodec/audio.c
-+++ b/modules/codec/avcodec/audio.c
-@@ -271,7 +271,7 @@ int InitAudioDec( vlc_object_t *obj )
-     p_dec->pf_flush  = Flush;
- 
-     /* XXX: Writing input format makes little sense. */
--    if( avctx->profile != FF_PROFILE_UNKNOWN )
-+    if( avctx->profile != AVPROFILE(UNKNOWN) )
-         p_dec->fmt_in.i_profile = avctx->profile;
-     if( avctx->level != FF_LEVEL_UNKNOWN )
-         p_dec->fmt_in.i_level = avctx->level;
-diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
-index 14aa62c..01e6223 100644
---- a/modules/codec/avcodec/avcommon_compat.h
-+++ b/modules/codec/avcodec/avcommon_compat.h
-@@ -144,4 +144,10 @@
- 
- #endif
- 
-+#if LIBAVCODEC_VERSION_CHECK(60,26,100)
-+# define AVPROFILE(prof) (AV_PROFILE_##prof)
-+#else
-+# define AVPROFILE(prof) (FF_PROFILE_##prof)
-+#endif
-+
- #endif
-diff --git a/modules/codec/avcodec/directx_va.c b/modules/codec/avcodec/directx_va.c
-index 36a5d61..f6e252f 100644
---- a/modules/codec/avcodec/directx_va.c
-+++ b/modules/codec/avcodec/directx_va.c
-@@ -48,25 +48,25 @@ struct picture_sys_t {
- #include "../../packetizer/h264_nal.h"
- #include "../../packetizer/hevc_nal.h"
- 
--static const int PROF_MPEG2_MAIN[]   = { FF_PROFILE_MPEG2_SIMPLE,
--                                         FF_PROFILE_MPEG2_MAIN,
--                                         FF_PROFILE_UNKNOWN };
--static const int PROF_H264_HIGH[]    = { FF_PROFILE_H264_BASELINE,
--                                         FF_PROFILE_H264_CONSTRAINED_BASELINE,
--                                         FF_PROFILE_H264_MAIN,
--                                         FF_PROFILE_H264_HIGH,
--                                         FF_PROFILE_UNKNOWN };
--static const int PROF_HEVC_MAIN[]    = { FF_PROFILE_HEVC_MAIN,
--                                         FF_PROFILE_UNKNOWN };
--static const int PROF_HEVC_MAIN10[]  = { FF_PROFILE_HEVC_MAIN,
--                                         FF_PROFILE_HEVC_MAIN_10,
--                                         FF_PROFILE_UNKNOWN };
--
--static const int PROF_VP9_MAIN[]    = { FF_PROFILE_VP9_0, FF_PROFILE_UNKNOWN };
--static const int PROF_VP9_10[]      = { FF_PROFILE_VP9_2, FF_PROFILE_UNKNOWN };
--
--static const int PROF_AV1_MAIN[]    = { FF_PROFILE_AV1_MAIN, FF_PROFILE_UNKNOWN };
--static const int PROF_AV1_HIGH[]    = { FF_PROFILE_AV1_HIGH, FF_PROFILE_AV1_MAIN, FF_PROFILE_UNKNOWN };
-+static const int PROF_MPEG2_MAIN[]   = { AVPROFILE(MPEG2_SIMPLE),
-+                                         AVPROFILE(MPEG2_MAIN),
-+                                         AVPROFILE(UNKNOWN) };
-+static const int PROF_H264_HIGH[]    = { AVPROFILE(H264_BASELINE),
-+                                         AVPROFILE(H264_CONSTRAINED_BASELINE),
-+                                         AVPROFILE(H264_MAIN),
-+                                         AVPROFILE(H264_HIGH),
-+                                         AVPROFILE(UNKNOWN) };
-+static const int PROF_HEVC_MAIN[]    = { AVPROFILE(HEVC_MAIN),
-+                                         AVPROFILE(UNKNOWN) };
-+static const int PROF_HEVC_MAIN10[]  = { AVPROFILE(HEVC_MAIN),
-+                                         AVPROFILE(HEVC_MAIN_10),
-+                                         AVPROFILE(UNKNOWN) };
-+
-+static const int PROF_VP9_MAIN[]    = { AVPROFILE(VP9_0), AVPROFILE(UNKNOWN) };
-+static const int PROF_VP9_10[]      = { AVPROFILE(VP9_2), AVPROFILE(UNKNOWN) };
-+
-+static const int PROF_AV1_MAIN[]    = { AVPROFILE(AV1_MAIN), AVPROFILE(UNKNOWN) };
-+static const int PROF_AV1_HIGH[]    = { AVPROFILE(AV1_HIGH), AVPROFILE(AV1_MAIN), AVPROFILE(UNKNOWN) };
- 
- #include <winapifamily.h>
- #if defined(WINAPI_FAMILY)
-@@ -436,7 +436,7 @@ static bool profile_supported(const directx_va_mode_t *mode, const es_format_t *
-     bool is_supported = false;
-     if (profile <= 0)
-         is_supported = true;
--    else for (const int *p_profile = &mode->p_profiles[0]; *p_profile != FF_PROFILE_UNKNOWN; ++p_profile)
-+    else for (const int *p_profile = &mode->p_profiles[0]; *p_profile != AVPROFILE(UNKNOWN); ++p_profile)
-     {
-         if (*p_profile == profile)
-         {
-diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
-index deb61eb..1f3dd8f 100644
---- a/modules/codec/avcodec/encoder.c
-+++ b/modules/codec/avcodec/encoder.c
-@@ -484,30 +484,30 @@ int InitVideoEnc( vlc_object_t *p_this )
-     psz_val = var_GetString( p_enc, ENC_CFG_PREFIX "aac-profile" );
-     /* libavcodec uses faac encoder atm, and it has issues with
-      * other than low-complexity profile, so default to that */
--    p_sys->i_aac_profile = FF_PROFILE_AAC_LOW;
-+    p_sys->i_aac_profile = AVPROFILE(AAC_LOW);
-     if( psz_val && *psz_val )
-     {
-         if( !strncmp( psz_val, "main", 4 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_MAIN;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_MAIN);
-         else if( !strncmp( psz_val, "low", 3 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_LOW;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_LOW);
-         else if( !strncmp( psz_val, "ssr", 3 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_SSR;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_SSR);
-         else if( !strncmp( psz_val, "ltp", 3 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_LTP;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_LTP);
- /* These require libavcodec with libfdk-aac */
-         else if( !strncmp( psz_val, "hev2", 4 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_HE_V2;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_HE_V2);
-         else if( !strncmp( psz_val, "hev1", 4 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_HE;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_HE);
-         else if( !strncmp( psz_val, "ld", 2 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_LD;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_LD);
-         else if( !strncmp( psz_val, "eld", 3 ) )
--            p_sys->i_aac_profile = FF_PROFILE_AAC_ELD;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_ELD);
-         else
-         {
-             msg_Warn( p_enc, "unknown AAC profile requested, setting it to low" );
--            p_sys->i_aac_profile = FF_PROFILE_AAC_LOW;
-+            p_sys->i_aac_profile = AVPROFILE(AAC_LOW);
-         }
-     }
-     free( psz_val );
-diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
-index e203baa..5380099 100644
---- a/modules/codec/avcodec/vaapi.c
-+++ b/modules/codec/avcodec/vaapi.c
-@@ -100,9 +100,9 @@ static int GetVaProfile(AVCodecContext *ctx, const es_format_t *fmt,
-         count = 18;
-         break;
-     case AV_CODEC_ID_HEVC:
--        if (ctx->profile == FF_PROFILE_HEVC_MAIN)
-+        if (ctx->profile == AVPROFILE(HEVC_MAIN))
-             i_profile = VAProfileHEVCMain;
--        else if (ctx->profile == FF_PROFILE_HEVC_MAIN_10)
-+        else if (ctx->profile == AVPROFILE(HEVC_MAIN_10))
-         {
-             i_profile = VAProfileHEVCMain10;
-             i_vlc_chroma = VLC_CODEC_VAAPI_420_10BPP;
-@@ -116,10 +116,10 @@ static int GetVaProfile(AVCodecContext *ctx, const es_format_t *fmt,
-         count = 5;
-         break;
-     case AV_CODEC_ID_VP9:
--        if (ctx->profile == FF_PROFILE_VP9_0)
-+        if (ctx->profile == AVPROFILE(VP9_0))
-             i_profile = VAProfileVP9Profile0;
- #if VA_CHECK_VERSION( 0, 39, 0 )
--        else if (ctx->profile == FF_PROFILE_VP9_2)
-+        else if (ctx->profile == AVPROFILE(VP9_2))
-         {
-             i_profile = VAProfileVP9Profile2;
-             i_vlc_chroma = VLC_CODEC_VAAPI_420_10BPP;
-diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
-index dfd359c..2448e07 100644
---- a/modules/codec/avcodec/video.c
-+++ b/modules/codec/avcodec/video.c
-@@ -624,7 +624,7 @@ static int InitVideoDecCommon( decoder_t *p_dec )
-     p_dec->pf_flush  = Flush;
- 
-     /* XXX: Writing input format makes little sense. */
--    if( p_context->profile != FF_PROFILE_UNKNOWN )
-+    if( p_context->profile != AVPROFILE(UNKNOWN) )
-         p_dec->fmt_in.i_profile = p_context->profile;
-     if( p_context->level != FF_LEVEL_UNKNOWN )
-         p_dec->fmt_in.i_level = p_context->level;
-From: Steve Lhomme <[email protected]>
-Date: Tue, 9 Dec 2025 11:42:02 +0100
-Subject: avcodec: use AV_LEVEL_xxx instead of FF_LEVEL_xxx
-
-This was added in libavcodec 60.26.100 [^1].
-
-[^1]:  https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/8238bc0b5e3dba271217b1223a901b3f9713dc6e
----
- modules/codec/avcodec/audio.c           | 2 +-
- modules/codec/avcodec/avcommon_compat.h | 6 ++++++
- modules/codec/avcodec/video.c           | 2 +-
- 3 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
-index 46f9a2a..d3748cc 100644
---- a/modules/codec/avcodec/audio.c
-+++ b/modules/codec/avcodec/audio.c
-@@ -273,7 +273,7 @@ int InitAudioDec( vlc_object_t *obj )
-     /* XXX: Writing input format makes little sense. */
-     if( avctx->profile != AVPROFILE(UNKNOWN) )
-         p_dec->fmt_in.i_profile = avctx->profile;
--    if( avctx->level != FF_LEVEL_UNKNOWN )
-+    if( avctx->level != AVLEVEL(UNKNOWN) )
-         p_dec->fmt_in.i_level = avctx->level;
- 
-     return VLC_SUCCESS;
-diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
-index 01e6223..b3fb167 100644
---- a/modules/codec/avcodec/avcommon_compat.h
-+++ b/modules/codec/avcodec/avcommon_compat.h
-@@ -150,4 +150,10 @@
- # define AVPROFILE(prof) (FF_PROFILE_##prof)
- #endif
- 
-+#if LIBAVCODEC_VERSION_CHECK(60,26,100)
-+# define AVLEVEL(prof) (AV_LEVEL_##prof)
-+#else
-+# define AVLEVEL(prof) (FF_LEVEL_##prof)
-+#endif
-+
- #endif
-diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
-index 2448e07..3412a7f 100644
---- a/modules/codec/avcodec/video.c
-+++ b/modules/codec/avcodec/video.c
-@@ -626,7 +626,7 @@ static int InitVideoDecCommon( decoder_t *p_dec )
-     /* XXX: Writing input format makes little sense. */
-     if( p_context->profile != AVPROFILE(UNKNOWN) )
-         p_dec->fmt_in.i_profile = p_context->profile;
--    if( p_context->level != FF_LEVEL_UNKNOWN )
-+    if( p_context->level != AVLEVEL(UNKNOWN) )
-         p_dec->fmt_in.i_level = p_context->level;
-     return VLC_SUCCESS;
- }
diff --git a/multimedia/vlc/pkg-plist b/multimedia/vlc/pkg-plist
index e08b004f2bca..6584f910be0d 100644
--- a/multimedia/vlc/pkg-plist
+++ b/multimedia/vlc/pkg-plist
@@ -1,6 +1,6 @@
 bin/cvlc
 %%NCURSES%%bin/nvlc
-%%QT5%%bin/qvlc
+%%QT%%bin/qvlc
 bin/rvlc
 %%SKINS%%bin/svlc
 bin/vlc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.