aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2026-08-11 14:40:21 +0000
committerMax Brazhnikov <makc@FreeBSD.org>2026-08-18 11:00:41 +0000
commit5db01aa057d9fb7194ca23a9f342fae7c10463a1 (patch)
tree10adc50ea4c9e0b104d235dfe26f766d21f7087b
parent2f4fd6c6ba28109d1c4937a4ad89fb683195a9b9 (diff)
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 <makc@FreeBSD.org> (cherry picked from commit 03699b0de7a3cd995d346a816674d6710a8f4603)
-rw-r--r--multimedia/vlc/Makefile78
-rw-r--r--multimedia/vlc/distinfo6
-rw-r--r--multimedia/vlc/files/patch-modules_access_rdp.c14
-rw-r--r--multimedia/vlc/files/patch-modules_gui_qt_qt6.pro13
-rw-r--r--multimedia/vlc/files/patch-share_Makefile.in4
-rw-r--r--multimedia/vlc/files/patch-src-network-udp.c4
-rw-r--r--multimedia/vlc/files/vlc-3.0.22-ffmpeg8.patch324
-rw-r--r--multimedia/vlc/pkg-plist2
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 <robux4@ycbcr.xyz>
-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 <robux4@ycbcr.xyz>
-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 <robux4@ycbcr.xyz>
-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 <robux4@ycbcr.xyz>
-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