git: c204aaf79162 - main - multimedia/ffmpeg: update to 8.0.1

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Wed, 24 Dec 2025 08:55:26 UTC
The branch main has been updated by bapt:

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

commit c204aaf791628cf4cdc06f5cabd0053100360594
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2025-12-17 15:34:34 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-12-24 08:55:20 +0000

    multimedia/ffmpeg: update to 8.0.1
    
    - fix XCB option [1]
    - add a nox11 flavor [2]
    - detect breakage in symbol versionning detection [3]
    - incorporate a chromium patch to readd av_stream_get_first_dts()
      necessary to unbundle ffmpeg in chromium distributions like
      qt*-webengine. as of today chromium devs has not found a way to
      avoid using this function so they keep readding this function in
      their bundled version of ffmpeg.
    
    PR:     290246 [1]
    PR:     278705 [2]
    PR:     291868 [3]
---
 multimedia/ffmpeg/Makefile                         | 521 ++++++++++-----------
 multimedia/ffmpeg/distinfo                         |  12 +-
 ...-Add-av_stream_get_first_dts-for-Chromium.patch |  43 ++
 ...h-add-av_stream_get_first_dts-for-qt5-webengine |  35 --
 multimedia/ffmpeg/files/patch-configure            |  40 --
 multimedia/ffmpeg/files/patch-doc-Makefile         |  11 -
 .../ffmpeg/files/patch-libavcodec_libsvtav1.c      |  16 -
 .../ffmpeg/files/patch-libavfilter_vf__lensfun.c   |  51 --
 multimedia/ffmpeg/files/patch-libavformat_rtsp.c   |  44 --
 multimedia/ffmpeg/files/patch-libavutil-common.h   |  13 -
 multimedia/ffmpeg/files/patch-libavutil-x86-asm.h  |  11 -
 .../ffmpeg/files/patch-libavutil_hwcontext__drm.c  |  24 -
 .../files/patch-libswscale_ppc_yuv2rgb__altivec.c  |  15 -
 multimedia/ffmpeg/pkg-plist                        | 121 +++--
 14 files changed, 374 insertions(+), 583 deletions(-)

diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile
index 390556926dbb..84f1c2801511 100644
--- a/multimedia/ffmpeg/Makefile
+++ b/multimedia/ffmpeg/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	ffmpeg
-PORTVERSION=	6.1.2
-PORTREVISION=	17
+DISTVERSION=	8.0.1
 PORTEPOCH=	1
 CATEGORIES=	multimedia audio net
 MASTER_SITES=	https://ffmpeg.org/releases/
@@ -12,6 +11,12 @@ WWW=		https://ffmpeg.org/
 LICENSE=	GPLv2+ LGPL21+
 LICENSE_COMB=	multi
 
+EXTRA_PATCHES=	${FILESDIR}/0001-Add-av_stream_get_first_dts-for-Chromium.patch:-p1
+
+FLAVORS=	default nox11
+FLAVOR?=	${FLAVORS:[1]}
+nox11_PKGNAMESUFFIX=	-nox11
+
 BUILD_DEPENDS=	${BUILD_DEPENDS_${ARCH}}
 BUILD_DEPENDS_aarch64=	as:devel/binutils
 BUILD_DEPENDS_amd64=	nasm:devel/nasm
@@ -19,91 +24,110 @@ BUILD_DEPENDS_armv6=	as:devel/binutils
 BUILD_DEPENDS_armv7=	as:devel/binutils
 BUILD_DEPENDS_i386=	nasm:devel/nasm
 
-HAS_CONFIGURE=	yes
-CONFIGURE_LOG=	ffbuild/config.log
-USES=		compiler:c11 cpe gmake localbase:ldflags perl5 \
+USES=		compiler:c17 cpe gmake localbase:ldflags perl5 \
 		pkgconfig shebangfix tar:xz
-USE_LDCONFIG=	yes
 USE_PERL5=	build
 SHEBANG_FILES=	doc/texi2pod.pl
-NOPRECIOUSMAKEVARS=	yes # ARCH
-
-PORTSCOUT=	limit:^6\.
-
-# Option CHROMAPRINT disabled, it cannot work and people are baffled.
-OPTIONS_DEFINE=	ALSA AMR_NB AMR_WB AOM ARIBB24 ARIBCAPTION ASM ASS BS2B CACA CDIO \
-		CODEC2 DAV1D DAVS2 DC1394 DEBUG DOCS DRM FDK_AAC FLITE \
-		FONTCONFIG FREETYPE FREI0R FRIBIDI GLSLANG GME GSM HARFBUZZ ICONV ILBC \
-		JACK JXL KLVANC KVAZAAR LADSPA LAME LCMS2 LENSFUN LIBBLURAY LIBPLACEBO LIBRSVG2 \
-		LIBXML2 LTO LV2 MODPLUG MYSOFA NETWORK NVENC OPENAL OPENCL OPENGL \
-		OPENH264 OPENJPEG OPENMPT OPENVINO OPTIMIZED_CFLAGS OPUS POCKETSPHINX \
-		PULSEAUDIO RAV1E RABBITMQ RIST RTCPU RUBBERBAND SDL SHADERC SMB SNAPPY \
-		SNDIO SOXR SPEEX SRT SSH SVTAV1 SVTHEVC SVTVP9 TENSORFLOW \
-		TESSERACT THEORA TWOLAME UAVS3D V4L VAAPI VAPOURSYNTH VDPAU VIDSTAB \
-		VMAF VO_AMRWBENC VORBIS VPX VULKAN WEBP X264 X265 \
-		XAVS2 XCB XVID XVIDEO ZIMG ZMQ ZVBI
-# intel-media-sdk only for i386/amd64
-OPTIONS_DEFINE_amd64=	MFX VPL
-OPTIONS_DEFINE_i386=	MFX
+USE_LDCONFIG=	yes
 
-OPTIONS_DEFAULT=	AOM ASM ASS DAV1D DRM FONTCONFIG FREETYPE FREI0R GMP \
-			GNUTLS HARFBUZZ ICONV JXL LAME LCMS2 LIBPLACEBO LIBXML2 NETWORK \
-			OPTIMIZED_CFLAGS OPUS RTCPU SHADERC SVTAV1 V4L VAAPI VDPAU VMAF \
-			VORBIS VPX VULKAN WEBP X264 X265 XCB
-OPTIONS_DEFAULT_aarch64=LTO
-OPTIONS_DEFAULT_amd64=	LTO NVENC
-OPTIONS_DEFAULT_i386=	NVENC
+HAS_CONFIGURE=	yes
+CONFIGURE_LOG=	ffbuild/config.log
+NOPRECIOUSMAKEVARS=	yes
 
-# i386 is too register-starved for LTO (PR257124)
-OPTIONS_EXCLUDE_i386=	LTO
+CFLAGS_armv6=	-Wno-error=int-conversion
+CFLAGS_armv7=	-Wno-error=int-conversion
+CFLAGS_i386=	-Wno-error=int-conversion
+CFLAGS_powerpc=	-Wno-error=int-conversion
+LDFLAGS_aarch64=-Wl,-z,notext
+LDFLAGS_armv6=	-Wl,-z,notext
+LDFLAGS_armv7=	-Wl,-z,notext
+LDFLAGS_i386=	-Wl,-z,notext
 
-.if !exists(${.CURDIR:H:H}/multimedia/libaribcaption)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/b6138633cdf2
-OPTIONS_EXCLUDE+=	ARIBCAPTION
-.endif
+DATADIR=	${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+DOCSDIR=	${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
 
-.if !exists(${.CURDIR:H:H}/multimedia/davs2)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/5985a1bf7233
-OPTIONS_EXCLUDE+=	DAVS2
-.endif
+MAKE_ENV+=	V=1
 
-.if !exists(${.CURDIR:H:H}/multimedia/uavs3d)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/c952db9d68d3
-OPTIONS_EXCLUDE+=	UAVS3D
-.endif
+HAS_SYMBOL_VERSION=	${PREFIX}/lib/libavcodec.so \
+			${PREFIX}/lib/libavdevice.so \
+			${PREFIX}/lib/libavfilter.so \
+			${PREFIX}/lib/libavformat.so \
+			${PREFIX}/lib/libavutil.so \
+			${PREFIX}/lib/libswresample.so \
+			${PREFIX}/lib/libswscale.so
 
-.if !exists(${.CURDIR:H:H}/multimedia/xavs2)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/85a921f4618
-OPTIONS_EXCLUDE+=	XAVS2
-.endif
+INSTALL_TARGET=	install-progs install-doc install-data \
+		install-libs install-headers install-examples
 
-.if !exists(${.CURDIR:H:H}/multimedia/klvanc)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/8732dfa9954
-OPTIONS_EXCLUDE+=	KLVANC
-.endif
+CONFIGURE_ARGS=	--prefix="${PREFIX}" \
+		--mandir="${PREFIX}/share/man" \
+		--datadir="${DATADIR}" \
+		--docdir="${DOCSDIR}" \
+		--pkgconfigdir="${PREFIX}/libdata/pkgconfig" \
+		--disable-static \
+		--disable-libcelt \
+		--disable-mbedtls \
+		--enable-shared \
+		--enable-pic \
+		--enable-gpl \
+		--cc="${CC}" \
+		--cxx="${CXX}"
 
-.if !exists(${.CURDIR:H:H}/science/openvino)
-# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ff37ebaf30e6
-OPTIONS_EXCLUDE+=	OPENVINO
+OPTIONS_DEFINE=	ALSA AMR_NB AMR_WB AOM ARIBB24 ASM ASS BS2B CACA CDIO CODEC2 \
+		DAV1D DC1394 DEBUG DOCS DRM DVD FDK_AAC FLITE FONTCONFIG \
+		FREETYPE FREI0R FRIBIDI GLSLANG GME GSM HARFBUZZ ICONV ILBC \
+		JACK JXL KVAZAAR LADSPA LAME LCMS2 LENSFUN LIBBLURAY \
+		LIBPLACEBO LIBRSVG2 LIBXML2 LTO LV2 MODPLUG MYSOFA NETWORK \
+		NVENC OPENAL OPENCL OPENGL OPENH264 OPENJPEG OPENMPT \
+		OPTIMIZED_CFLAGS OPUS POCKETSPHINX PULSEAUDIO RAV1E RABBITMQ \
+		RIST RTCPU RUBBERBAND SDL SHADERC SMB SNAPPY SNDIO SOXR SPEEX \
+		SRT SSH SVTAV1 TENSORFLOW TESSERACT THEORA \
+		TWOLAME V4L VAAPI VAPOURSYNTH VDPAU VIDSTAB VMAF VO_AMRWBENC \
+		VORBIS VPX VULKAN VVENC WEBP X264 X265 XCB XVID XVIDEO ZIMG \
+		ZMQ ZVBI
+
+.if ${FLAVOR} == nox11
+COMMENT+=	(without x11)
+
+OPTIONS_EXCLUDE=	CACA DRM JACK JXL LADSPA LENSFUN LIBPLACEBO LIBRSVG2 \
+			LV2 MFX NVENC OPENAL OPENGL PULSEAUDIO SDL TESSERACT \
+			V4L VAAPI VAPOURSYNTH VDPAU VIDSTAB VPL XCB XVIDEO \
+			ZMQ ZVBI
 .endif
 
+# intel-media-sdk only for i386/amd64
+OPTIONS_DEFINE_amd64=	MFX VPL
+OPTIONS_DEFINE_i386=	MFX
+
 OPTIONS_RADIO=	RTMP SSL
 OPTIONS_RADIO_RTMP=	GCRYPT GMP
-OPTIONS_RADIO_SSL=	GNUTLS MBEDTLS OPENSSL
+OPTIONS_RADIO_SSL=	GNUTLS OPENSSL
 OPTIONS_GROUP=	LICENSE
 OPTIONS_GROUP_LICENSE=	GPL3 NONFREE
 
+OPTIONS_DEFAULT=	AOM ASM ASS DAV1D DVD GMP GNUTLS HARFBUZZ ICONV LAME \
+			LCMS2 LIBBLURAY LIBXML2 NETWORK OPTIMIZED_CFLAGS \
+			OPUS RTCPU SRT SVTAV1 VORBIS VPX WEBP X264 X265
+OPTIONS_DEFAULT_aarch64=LTO
+OPTIONS_DEFAULT_amd64=	LTO
+.if ${FLAVOR} == default
+OPTIONS_DEFAULT+=	DRM FONTCONFIG FREETYPE FREI0R JXL LIBPLACEBO \
+			LIBRSVG2 SHADERC V4L VAAPI VDPAU VMAF VULKAN XCB
+OPTIONS_DEFAULT_amd64+=	NVENC
+OPTIONS_DEFAULT_i386+=	NVENC
+.endif
+OPTIONS_SUB=	yes
+
 ASS_DESC=	Subtitles rendering via libass
 AOM_DESC=	AV1 video encoding/decoding via libaom
 ARIBB24_DESC=	ARIB text and caption decoding via libaribb24
-ARIBCAPTION_DESC=	ARIB text and caption decoding via libaribcaption
 BS2B_DESC=	Bauer Stereophonic-to-Binaural filter
 CHROMAPRINT_DESC=	Audio fingerprinting with chromaprint
 CODEC2_DESC=	Codec 2 audio encoding/decoding via libcodec2
 DAV1D_DESC=	AV1 video decoding via libdav1d
-DAVS2_DESC=	AVS2 decoding via libdavs2
 DC1394_DESC=	IIDC-1394 grabbing using libdc1394
 DRM_DESC=	KMS grabbing using libdrm
+DVD_DESC=	Support for DVD
 FDK_AAC_DESC=	AAC audio encoding via Fraunhofer FDK
 FLITE_DESC=	Voice synthesis support via libflite
 GLSLANG_DESC=	GLSL->SPIRV compilation via libglslang
@@ -111,7 +135,6 @@ GME_DESC=	Game Music Emu demuxer
 GPL3_DESC=	Allow (L)GPL version 3 code(cs)
 HARFBUZZ_DESC=	Text shaping via HarfBuzz
 ILBC_DESC=	Internet Low Bit Rate codec
-KLVANC_DESC=	Kernel Labs VANC processing
 KVAZAAR_DESC=	H.265 video codec support via Kvazaar
 LICENSE_DESC=	Licensing options
 LV2_DESC=	LV2 audio filtering
@@ -122,7 +145,6 @@ NONFREE_DESC=	Allow use of nonfree code
 NVENC_DESC=	NVIDIA decoder/encoder with CUDA support
 OPENMPT_DESC=	Decoding tracked files via libopenmpt
 OPENH264_DESC=	H.264 video codec support via OpenH264
-OPENVINO_DESC=	OpenVINO as a DNN module backend for DNN based filters like dnn_processing
 POCKETSPHINX_DESC=	Automatic Speech Recognition via PocketSphinx
 RAV1E_DESC=	AV1 encoding via librav1e
 RABBITMQ_DESC=	AMQP 0-9-1 protocol via RabbitMQ
@@ -133,28 +155,48 @@ RTMP_DESC=	RTMP(T)E protocol support
 SHADERC_DESC=	GLSL->SPIRV compilation via libshaderc
 SRT_DESC=	Haivision SRT protocol via libsrt
 SVTAV1_DESC=	AV1 encoding via SVT-AV1
-SVTHEVC_DESC=	HEVC encoding via SVT-HEVC
-SVTVP9_DESC=	VP9 encoding via SVT-VP9
+#SVTVP9_DESC=	VP9 encoding via SVT-VP9
 LIBPLACEBO_DESC=GPU filters from libplacebo
-TENSORFLOW_DESC=TensorFlow as a DNN module backend for DNN based filters like sr
+TENSORFLOW_DESC=TensorFlow as a DNN module backend
 TESSERACT_DESC=	Optical Character Recognition via Tesseract
 THEORA_DESC=	Encoding support for theora via libtheora
-UAVS3D_DESC=	AVS3 decoding via libuavs3d
 VAPOURSYNTH_DESC=	VapourSynth demuxer
 VIDSTAB_DESC=	Video stabilization filter
 VMAF_DESC=	VMAF filter via libvmaf
 VPL_DESC=	Intel oneVPL (aka Quick Sync Video)
 VULKAN_DESC=	Vulkan filters
-XAVS2_DESC=	AVS2 encoding via libxavs2
+VVENC_DESC=	H.266/VVC encoding support via VVenC
 XCB_DESC=	X11 grabbing using XCB
 XVID_DESC=	Encoding support for MPEG-4 ASP via libxvid
 ZIMG_DESC=	"z" library video scaling filter
 ZMQ_DESC=	Message passing via libzmq${ZMQ_VERSION}
 ZVBI_DESC=	Teletext support via libzvbi
 
-OPTIONS_SUB=	yes
-
-# alsa
+###
+### Not ported libraries / options
+###
+###  --enable-libiec61883	enable iec61883 via libiec61883
+###  --enable-liblc3		enable LC3 de/encoding via liblc3
+###  --enable-liblcevc-dec	enable LCEVC decoding via liblcevc-dec
+###  --enable-liboapv		enable APV encoding via liboapv
+###  --enable-libopencv		enable video filtering via libopencv
+###  --enable-libqrencode	enable QR encode generation via libqrencode
+###  --enable-libquirc		enable QR decoding via libquirc
+###  --enable-libtls		enable LibreSSL (via libtls), needed for https support
+###				if openssl, gnutls or mbedtls are not used
+###  --enable-libtorch		enable Torch as one DNN backend
+###  --enable-libxeve		enable EVC encoding via libxeve
+###  --enable-libxevd		enable EVC decoding via libxevd
+###  --enable-libxavs		enable AVS encoding via xavs
+###  --enable-whisper		enable whisper filter
+###  --enable-libaribcaption	ARIB STD-B24 Caption Decoder/Renderer
+###  --enable-libdavs2		AVS2 decoding
+###  --enable-libuavs3d		AVS3 decoding via libuavs3d
+###  --enable-libxavs2		AVS2 encoding via libxavs2
+###  --enable-libklvanc		Kernel Labs VANC processing
+###  --enable-libopenvino	OpenVINO as a DNN module backend
+
+# ALSA
 ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
 ALSA_CONFIGURE_ENABLE=	alsa
 
@@ -168,125 +210,123 @@ AMR_WB_LIB_DEPENDS=	libopencore-amrwb.so:audio/opencore-amr
 AMR_WB_CONFIGURE_ENABLE=	libopencore-amrwb
 AMR_WB_IMPLIES=		GPL3
 
-# aom
+# AOM AV1 codec
 AOM_LIB_DEPENDS=	libaom.so:multimedia/aom
 AOM_CONFIGURE_ENABLE=	libaom
 
-# arib
+# ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream
 ARIBB24_LIB_DEPENDS=	libaribb24.so:multimedia/aribb24
 ARIBB24_CONFIGURE_ENABLE=	libaribb24
 
-# aribcaption
-ARIBCAPTION_LIB_DEPENDS=	libaribcaption.so:multimedia/libaribcaption
-ARIBCAPTION_CONFIGURE_ENABLE=	libaribcaption
-
-# asm support
+# Assembly support
 ASM_CONFIGURE_ENABLE=	asm
 
-# ass
+# ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle renderer
 ASS_LIB_DEPENDS=	libass.so:multimedia/libass
 ASS_CONFIGURE_ENABLE=	libass
 
-# bs2b
+# Bauer Stereophonic-to-Binaural filter via libbs2b
 BS2B_LIB_DEPENDS=	libbs2b.so:audio/libbs2b
 BS2B_CONFIGURE_ENABLE=	libbs2b
 
-# caca
+# Convert video into colour ASCII art via (lib)caca
 CACA_LIB_DEPENDS=	libcaca.so:graphics/libcaca
 CACA_CONFIGURE_ENABLE=	libcaca
 
-# cdio
+# CD Audio support via (lib)cdio
 CDIO_LIB_DEPENDS=	libcdio_paranoia.so:sysutils/libcdio-paranoia
 CDIO_CONFIGURE_ENABLE=	libcdio
 
 # chromaprint
-CHROMAPRINT_BROKEN=		Dependency loop
-CHROMAPRINT_LIB_DEPENDS=	libchromaprint.so:audio/chromaprint
-CHROMAPRINT_CONFIGURE_ENABLE=	chromaprint
+#CHROMAPRINT_BROKEN=		Dependency loop
+#CHROMAPRINT_LIB_DEPENDS=	libchromaprint.so:audio/chromaprint
+#CHROMAPRINT_CONFIGURE_ENABLE=	chromaprint
 
-# codec2
+# codec2 format support via (lib)codec2
 CODEC2_LIB_DEPENDS=	libcodec2.so:audio/codec2
 CODEC2_CONFIGURE_ENABLE=	libcodec2
 
-# dav1d
+# AV1 decoder
 DAV1D_LIB_DEPENDS=	libdav1d.so:multimedia/dav1d
 DAV1D_CONFIGURE_ENABLE=	libdav1d
 
-# davs2
-DAVS2_LIB_DEPENDS=	libdavs2.so:multimedia/davs2
-DAVS2_CONFIGURE_ENABLE=	libdavs2
-
-# dc1394
+# IEEE 1394 camera control via (lib)dc1394
 DC1394_LIB_DEPENDS=	libdc1394.so:multimedia/libdc1394
 DC1394_CONFIGURE_ENABLE=	libdc1394
 
-# debugging
+# Debugging
 DEBUG_CONFIGURE_ON=	--disable-stripping
 DEBUG_CONFIGURE_OFF=	--disable-debug
 
-# docs
+# Documentation
 DOCS_BUILD_DEPENDS=	texi2html:textproc/texi2html
 DOCS_CONFIGURE_ENABLE=	htmlpages
 DOCS_BINARY_ALIAS=	makeinfo=${FALSE} # force texi2html
 
-# drm
+# DRM
 DRM_LIB_DEPENDS=	libdrm.so:graphics/libdrm
 DRM_CONFIGURE_ENABLE=	libdrm
 
-# fdk_aac
+# DVD support
+DVD_LIB_DEPENDS=	libdvdnav.so:multimedia/libdvdnav \
+			libdvdread.so:multimedia/libdvdread
+DVD_CONFIGURE_ENABLE=	libdvdnav \
+			libdvdread
+
+# Fraunhofer FDK AAC codec
 FDK_AAC_LIB_DEPENDS=	libfdk-aac.so:audio/fdk-aac
 FDK_AAC_CONFIGURE_ENABLE=	libfdk-aac
 FDK_AAC_IMPLIES=	NONFREE
 
-# flite
+# Speech synthesis via (lib)flite
 FLITE_LIB_DEPENDS=	libflite.so:audio/flite
 FLITE_CONFIGURE_ENABLE=	libflite
 
-# fontconfig
+# (lib)fontconfig
 FONTCONFIG_LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig
 FONTCONFIG_CONFIGURE_ENABLE=	fontconfig
 
-# freetype
+# (lib)freetype
 FREETYPE_LIB_DEPENDS=	libfreetype.so:print/freetype2
 FREETYPE_CONFIGURE_ENABLE=	libfreetype
 
-# frei0r
+# Video effects via (lib)Frei0r
 FREI0R_BUILD_DEPENDS=	${LOCALBASE}/include/frei0r.h:graphics/frei0r
 FREI0R_CONFIGURE_ENABLE=	frei0r
 
-# fribidi
+# (lib)FriBidi
 FRIBIDI_LIB_DEPENDS=	libfribidi.so:converters/fribidi
 FRIBIDI_CONFIGURE_ENABLE=	libfribidi
 
-# gcrypt
+# Libgcrypt
 GCRYPT_LIB_DEPENDS=	libgcrypt.so:security/libgcrypt
 GCRYPT_CONFIGURE_ENABLE=	gcrypt
 
-# glslang
+# OpenGL and OpenGL ES shader frontend
 GLSLANG_BUILD_DEPENDS=	glslang>0:graphics/glslang \
 			spirv-tools>0:graphics/spirv-tools
 GLSLANG_CONFIGURE_ENABLE=	libglslang
 GLSLANG_LDFLAGS=	-lm
 GLSLANG_IMPLIES=	VULKAN
 
-# gnutls
+# GnuTLS
 GNUTLS_LIB_DEPENDS=	libgnutls.so:security/gnutls
 GNUTLS_CONFIGURE_ENABLE=	gnutls
 
-# gme
+# Game Music Emu via libgme
 GME_LIB_DEPENDS=	libgme.so:audio/libgme
 GME_CONFIGURE_ENABLE=	libgme
 
-# gmp
+# GMP
 GMP_LIB_DEPENDS=	libgmp.so:math/gmp
 GMP_CONFIGURE_ENABLE=	gmp
 GMP_IMPLIES=		GPL3
 
-# gsm
+# GSM de/encoding via libgsm
 GSM_LIB_DEPENDS=	libgsm.so:audio/gsm
 GSM_CONFIGURE_ENABLE=	libgsm
 
-# harfbuzz
+# (lib)harfbuzz
 HARFBUZZ_LIB_DEPENDS=	libharfbuzz.so:print/harfbuzz
 HARFBUZZ_CONFIGURE_ENABLE=	libharfbuzz
 
@@ -294,32 +334,28 @@ HARFBUZZ_CONFIGURE_ENABLE=	libharfbuzz
 ICONV_USES=	iconv
 ICONV_CONFIGURE_ENABLE=	iconv
 
-# ilbc
+# iLBC de/encoding via libilbc
 ILBC_LIB_DEPENDS=	libilbc.so:net/libilbc
 ILBC_CONFIGURE_ENABLE=	libilbc
 
-# jack
+# Support for JACK low-latency audio server
 JACK_LIB_DEPENDS=	libjack.so:audio/jack
 JACK_CONFIGURE_ENABLE=	libjack
 
-# jxl
+# JPEG XL de/encoding via libjxl
 JXL_LIB_DEPENDS=	libjxl.so:graphics/libjxl
 JXL_CONFIGURE_ENABLE=	libjxl
 
-# klvanc
-KLVANC_LIB_DEPENDS=	libklvanc.so:multimedia/libklvanc
-KLVANC_CONFIGURE_ENABLE=	libklvanc
-
-# kvazaar
+# HEVC encoding via libkvazaar
 KVAZAAR_LIB_DEPENDS=	libkvazaar.so:multimedia/kvazaar
 KVAZAAR_CONFIGURE_ENABLE=	libkvazaar
 
-# ladspa
+# Support for Linux Audio Developer's Simple Plugin
 LADSPA_BUILD_DEPENDS=	${LOCALBASE}/include/ladspa.h:audio/ladspa
 LADSPA_RUN_DEPENDS=	${LOCALBASE}/lib/ladspa/amp.so:audio/ladspa
 LADSPA_CONFIGURE_ENABLE=	ladspa
 
-# lame
+# MP3 encoding via LAME
 LAME_LIB_DEPENDS=	libmp3lame.so:audio/lame
 LAME_CONFIGURE_ENABLE=	libmp3lame
 
@@ -327,52 +363,44 @@ LAME_CONFIGURE_ENABLE=	libmp3lame
 LCMS2_LIB_DEPENDS=	liblcms2.so:graphics/lcms2
 LCMS2_CONFIGURE_ENABLE=	lcms2
 
-# lensfun
+# Lens geometry distortions correction filter via lib(lensfun)
 LENSFUN_LIB_DEPENDS=	liblensfun.so:graphics/lensfun
 LENSFUN_CONFIGURE_ENABLE=	liblensfun
 
 # libbluray
 LIBBLURAY_LIB_DEPENDS=	libbluray.so:multimedia/libbluray
 LIBBLURAY_CONFIGURE_ENABLE=	libbluray
+LIBBLURAY_IMPLIES=	FONTCONFIG \
+			FREETYPE
 
-# libplacebo
+# GPU-accelerated video/image rendering via libplacebo
 LIBPLACEBO_LIB_DEPENDS=	libplacebo.so:graphics/libplacebo
 LIBPLACEBO_CONFIGURE_ENABLE=	libplacebo
 LIBPLACEBO_IMPLIES=	VULKAN
 
-# librsvg
-LIBRSVG2_USES=			gnome
-LIBRSVG2_USE=			GNOME=cairo,librsvg2
+# SVG format support via librsvg
+LIBRSVG2_USES=	gnome
+LIBRSVG2_USE=	GNOME=cairo,librsvg2
 LIBRSVG2_CONFIGURE_ENABLE=	librsvg
 
-# libxml
-LIBXML2_LIB_DEPENDS=	libxml2.so:textproc/libxml2
+# XML support via libxml2
+LIBXML2_USES=	gnome
+LIBXML2_USE=	GNOME=libxml2
 LIBXML2_CONFIGURE_ENABLE=	libxml2
 
 # lto
 LTO_CONFIGURE_ON=	--enable-lto
 
-# lv2
+# LV2 audio filtering
 LV2_BUILD_DEPENDS=	lv2>0:audio/lv2
 LV2_LIB_DEPENDS=	liblilv-0.so:audio/lilv
 LV2_CONFIGURE_ENABLE=	lv2
 
-# libv4l
-V4L_BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
-V4L_LIB_DEPENDS=	libv4l2.so:multimedia/libv4l
-V4L_CONFIGURE_ENABLE=	libv4l2
-V4L_CONFIGURE_OFF=		--disable-indev=v4l2 \
-				--disable-outdev=v4l2
-
-# mbedtls
-MBEDTLS_LIB_DEPENDS=	libmbedtls.so:security/mbedtls2
-MBEDTLS_CONFIGURE_ENABLE=	mbedtls
-
-# mfx
+# Intel MediaSDK support via libmfx
 MFX_LIB_DEPENDS=	libmfx.so:multimedia/intel-media-sdk
 MFX_CONFIGURE_ENABLE=	libmfx
 
-# modplug
+# ModPlug via libmodplug
 MODPLUG_LIB_DEPENDS=	libmodplug.so:audio/libmodplug
 MODPLUG_CONFIGURE_ENABLE=	libmodplug
 
@@ -383,97 +411,95 @@ MYSOFA_CONFIGURE_ENABLE=	libmysofa
 # network
 NETWORK_CONFIGURE_ENABLE=	network
 
-# nvenc
+# Glue for Nvidia Codec SDK headers, hardware decoding/encoding
 NVENC_BUILD_DEPENDS=	ffnvcodec-headers>=11.1.5.2:multimedia/ffnvcodec-headers
-NVENC_CONFIGURE_ENABLE=	nvenc
+NVENC_CONFIGURE_ENABLE=	cuvid \
+			nvdec \
+			nvenc
 
-# OpenAL
+# OpenAL 1.1 capture support
 OPENAL_LIB_DEPENDS=	libopenal.so:audio/openal-soft
 OPENAL_CONFIGURE_ENABLE=	openal
 
-# opencl
+# OpenCL processing
 OPENCL_BUILD_DEPENDS=	${LOCALBASE}/include/CL/opencl.h:devel/opencl
 OPENCL_LIB_DEPENDS=	libOpenCL.so:devel/ocl-icd
 OPENCL_CONFIGURE_ENABLE=	opencl
 
-# opengl
+# OpenGL rendering
 OPENGL_USES=		gl
 OPENGL_USE=		GL=gl
 OPENGL_CONFIGURE_ENABLE=	opengl
 
-# openh264
+# H.264 encoding via OpenH264
 OPENH264_LIB_DEPENDS=	libopenh264.so:multimedia/openh264
 OPENH264_CONFIGURE_ENABLE=	libopenh264
 
-# openjpeg
+# JPEG 2000 encoding via OpenJPEG
 OPENJPEG_LIB_DEPENDS=	libopenjp2.so:graphics/openjpeg
 OPENJPEG_CONFIGURE_ENABLE=	libopenjpeg
 
-# openmpt
+# Support for various mod files formats via (lib)openmpt
 OPENMPT_LIB_DEPENDS=	libopenmpt.so:audio/libopenmpt
 OPENMPT_CONFIGURE_ENABLE=	libopenmpt
 
-# openssl/libtls
+# OpenSSL
 OPENSSL_USES=		ssl
-OPENSSL_CONFIGURE_ENABLE=	${"${SSL_DEFAULT:Mlibressl*}"!="":?libtls:openssl}
+OPENSSL_CONFIGURE_ENABLE=	openssl
 OPENSSL_IMPLIES=	NONFREE
 
-# openvino
-OPENVINO_LIB_DEPENDS=	libinference_engine_c_api.so:science/openvino
-OPENVINO_CONFIGURE_ENABLE=	libopenvino
-
-# optimizations
+# Enable optimizations defined by upstream
 OPTIMIZED_CFLAGS_CONFIGURE_ENABLE=	optimizations
 
-# opus
+# Opus de/encoding via libopus
 OPUS_LIB_DEPENDS=	libopus.so:audio/opus
 OPUS_CONFIGURE_ENABLE=	libopus
 
-# pocketsphinx
+# Speech recognition via (lib)PocketSphinx
 POCKETSPHINX_LIB_DEPENDS=	libpocketsphinx.so:audio/pocketsphinx
 POCKETSPHINX_CONFIGURE_ENABLE=	pocketsphinx
 POCKETSPHINX_BROKEN=	pocketsphinx < 5prealpha is not supported
 
-# pulseaudio
+# Pulseaudio input via libpulse
 PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	libpulse
 
-# rav1e
+# AV1 encoding via librav1e
 RAV1E_LIB_DEPENDS=	librav1e.so:multimedia/librav1e
 RAV1E_CONFIGURE_ENABLE=	librav1e
 
-# rabbitmq
+# RabbitMQ
 RABBITMQ_LIB_DEPENDS=	librabbitmq.so:net/rabbitmq-c
 RABBITMQ_CONFIGURE_ENABLE=	librabbitmq
 
-# rist
+# RIST via librist
 RIST_LIB_DEPENDS=	librist.so:multimedia/librist
 RIST_CONFIGURE_ENABLE=	librist
 
-# rubberband
+# Real-time detection of CPU features
+RTCPU_CONFIGURE_ENABLE=	runtime-cpudetect
+
+# Time streching effect via (lib)Rubberband
 RUBBERBAND_LIB_DEPENDS=	librubberband.so:audio/rubberband
 RUBBERBAND_CONFIGURE_ENABLE=	librubberband
 
-# rtcpu
-RTCPU_CONFIGURE_ENABLE=	runtime-cpudetect
-
-# sdl
+# SDL(2) video output support
 SDL_USES=		sdl
 SDL_USE=		SDL=sdl2
 SDL_CONFIGURE_ENABLE=	sdl2
 
-# shaderc
+# GLSL/HLSL to SPIR-V shader compiler
 SHADERC_LIB_DEPENDS=	libshaderc_shared.so:graphics/shaderc
 SHADERC_CONFIGURE_ENABLE=	libshaderc
 SHADERC_IMPLIES=	VULKAN
 SHADERC_PREVENTS=	GLSLANG
 
-# smbclient
+# Samba protocol support via libsmbclient
 SMB_USES=		samba:lib
 SMB_CONFIGURE_ENABLE=	libsmbclient
 SMB_IMPLIES=		GPL3
 
-# snappy
+# Snappy compression via libsnappy
 SNAPPY_LIB_DEPENDS=	libsnappy.so:archivers/snappy
 SNAPPY_CONFIGURE_ENABLE=	libsnappy
 
@@ -481,131 +507,124 @@ SNAPPY_CONFIGURE_ENABLE=	libsnappy
 SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
 SNDIO_CONFIGURE_ENABLE=	sndio
 
-# soxr
+# libsoxr resampling
 SOXR_LIB_DEPENDS=	libsoxr.so:audio/libsoxr
 SOXR_CONFIGURE_ENABLE=	libsoxr
 
-# speex
+# Speex de/encoding via libspeex
 SPEEX_LIB_DEPENDS=	libspeex.so:audio/speex
 SPEEX_CONFIGURE_ENABLE=	libspeex
 
-# ssh
-SSH_LIB_DEPENDS=	libssh.so:security/libssh
-SSH_CONFIGURE_ENABLE=	libssh
-
-# srt
+# Haivision SRT protocol via libsrt
 SRT_LIB_DEPENDS=	libsrt.so:www/srt
 SRT_CONFIGURE_ENABLE=	libsrt
 
-# svt-av1
+# SFTP protocol support via libssh
+SSH_LIB_DEPENDS=	libssh.so:security/libssh
+SSH_CONFIGURE_ENABLE=	libssh
+
+# AV1 encoding via SVT
 SVTAV1_LIB_DEPENDS=	libSvtAv1Enc.so:multimedia/svt-av1
 SVTAV1_CONFIGURE_ON=	--enable-libsvtav1
 
-# svt-hevc
-SVTHEVC_LIB_DEPENDS=	libSvtHevcEnc.so:multimedia/svt-hevc
-SVTHEVC_CONFIGURE_ON=	--enable-libsvthevc
-SVTHEVC_PATCH_SITES=	https://github.com/OpenVisualCloud/SVT-HEVC/raw/v1.5.1-12-g6cca5b93/ffmpeg_plugin/:svthevc
-SVTHEVC_PATCHFILES=	master-0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch:-p1:svthevc \
-			0002-doc-Add-libsvt_hevc-encoder-docs.patch:-p1:svthevc
-.if make(makesum)
-.MAKEFLAGS:		WITH+=SVTHEVC
-.endif
+# VP9 encoding via SVT
+#SVTVP9_LIB_DEPENDS=	libSvtVp9Enc.so:multimedia/svt-vp9
+#SVTVP9_CONFIGURE_ON=	--enable-libsvtvp9
+#SVTVP9_PATCH_SITES=	https://github.com/OpenVisualCloud/SVT-VP9/raw/v0.3.0-20-gbab25a6/ffmpeg_plugin/:svtvp9
+#SVTVP9_PATCHFILES=	master-0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch:-p1:svtvp9
+#.if make(makesum)
+#.MAKEFLAGS:		WITH+=SVTVP9
+#.endif
 
-# svt-vp9
-SVTVP9_LIB_DEPENDS=	libSvtVp9Enc.so:multimedia/svt-vp9
-SVTVP9_CONFIGURE_ON=	--enable-libsvtvp9
-SVTVP9_PATCH_SITES=	https://github.com/OpenVisualCloud/SVT-VP9/raw/v0.3.0-20-gbab25a6/ffmpeg_plugin/:svtvp9
-SVTVP9_PATCHFILES=	master-0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch:-p1:svtvp9
-.if make(makesum)
-.MAKEFLAGS:		WITH+=SVTVP9
-.endif
-
-# tensorflow
+# TensorFlow
 TENSORFLOW_LIB_DEPENDS=	libtensorflow.so:science/py-tensorflow
 TENSORFLOW_CONFIGURE_ENABLE=	libtensorflow
 
-# tesseract
+# OCR support via Tesseract
 TESSERACT_LIB_DEPENDS=	libtesseract.so:graphics/tesseract
 TESSERACT_CONFIGURE_ENABLE=	libtesseract
 
-# theora
+# Theora encoding via libtheora
 THEORA_LIB_DEPENDS=	libtheora.so:multimedia/libtheora
 THEORA_CONFIGURE_ENABLE=	libtheora
 
-# twolame
+# MP2 encoding via libtwolame
 TWOLAME_LIB_DEPENDS=	libtwolame.so:audio/twolame
 TWOLAME_CONFIGURE_ENABLE=	libtwolame
 
-# uavs3d
-UAVS3D_LIB_DEPENDS=	libuavs3d.so:multimedia/uavs3d
-UAVS3D_CONFIGURE_ENABLE=	libuavs3d
+# V4L
+V4L_BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
+V4L_LIB_DEPENDS=	libv4l2.so:multimedia/libv4l
+V4L_CONFIGURE_ENABLE=	libv4l2
+V4L_CONFIGURE_OFF=	--disable-indev=v4l2 \
+			--disable-outdev=v4l2
 
-# vaapi
+# Video Acceleration API (VA-API)
 VAAPI_LIB_DEPENDS=	libva.so:multimedia/libva
 VAAPI_CONFIGURE_ENABLE=	vaapi
 
-# vapoursynth
+# VapourSynth demuxer
 VAPOURSYNTH_LIB_DEPENDS=	libvapoursynth-script.so:multimedia/vapoursynth
 VAPOURSYNTH_CONFIGURE_ENABLE=	vapoursynth
 
-# vdpau
+# Nvidia Video Decode and Presentation API
 VDPAU_USES=		xorg
 VDPAU_USE=		XORG=x11
 VDPAU_LIB_DEPENDS=	libvdpau.so:multimedia/libvdpau
 VDPAU_CONFIGURE_ENABLE=	vdpau
 
-# vmaf
+# Video stabilization via (lib)VidStab
+VIDSTAB_LIB_DEPENDS=	libvidstab.so:multimedia/vid.stab
+VIDSTAB_CONFIGURE_ENABLE=	libvidstab
+
+# Perceptual video quality assessment via libvmaf
 VMAF_LIB_DEPENDS=	libvmaf.so:multimedia/vmaf
 VMAF_CONFIGURE_ENABLE=	libvmaf
 
-# vo-amrwbenc
+# VisualOn AMR-WB encoder
 VO_AMRWBENC_LIB_DEPENDS=	libvo-amrwbenc.so:audio/vo-amrwbenc
 VO_AMRWBENC_CONFIGURE_ENABLE=	libvo-amrwbenc
 VO_AMRWBENC_IMPLIES=	GPL3
 
-# vid.stab
-VIDSTAB_LIB_DEPENDS=	libvidstab.so:multimedia/vid.stab
-VIDSTAB_CONFIGURE_ENABLE=	libvidstab
-
-# vorbis
+# Vorbis en/decoding via libvorbis
 VORBIS_LIB_DEPENDS=	libvorbisenc.so:audio/libvorbis
 VORBIS_CONFIGURE_ENABLE=	libvorbis
 
-# vpl
+# Intel oneVPL
 VPL_LIB_DEPENDS=	libvpl.so:multimedia/onevpl
 VPL_CONFIGURE_ENABLE=	libvpl
 
-# vp8
+# VP8 and VP9 de/encoding via libvpx
 VPX_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
 VPX_CONFIGURE_ENABLE=	libvpx
 
-# vulkan
+# Vulkan
 VULKAN_BUILD_DEPENDS=	vulkan-headers>0:graphics/vulkan-headers
 VULKAN_LIB_DEPENDS=	libvulkan.so:graphics/vulkan-loader
 VULKAN_CONFIGURE_ENABLE=	vulkan
 
-# webp
+# H.266/VVC encoding via VVenC
+VVENC_LIB_DEPENDS=	libvvenc.so:multimedia/vvenc
+VVENC_CONFIGURE_ENABLE=	libvvenc
+
+# WebP encoding via libwebp
 WEBP_LIB_DEPENDS=	libwebp.so:graphics/webp
 WEBP_CONFIGURE_ENABLE=	libwebp
 
-# x264
+# H.264 encoding via (lib)x264
 X264_LIB_DEPENDS=	libx264.so:multimedia/libx264
 X264_CONFIGURE_ENABLE=	libx264
 
-# x265
+# HEVC encoding via (lib)x265
 X265_LIB_DEPENDS=	libx265.so:multimedia/x265
 X265_CONFIGURE_ENABLE=	libx265
 
-# xavs2
-XAVS2_LIB_DEPENDS=	libxavs2.so:multimedia/xavs2
-XAVS2_CONFIGURE_ENABLE=	libxavs2
-
-# xcb
+# X11 grabbing using XCB
 XCB_USES=		xorg
-XCB_USE=		XORG=xcb
-XCB_CONFIGURE_ENABLE=	libxcb
+XCB_USE=		XORG=xcb,x11,xext,xv
+XCB_CONFIGURE_ENABLE=	libxcb libxcb-shape libxcb-shm libxcb-xfixes xlib
 
-# xvid
+# XviD support
 XVID_LIB_DEPENDS=	libxvidcore.so:multimedia/xvid
 XVID_CONFIGURE_ENABLE=	libxvid
 
@@ -614,75 +633,39 @@ XVIDEO_USES=		xorg
 XVIDEO_USE=		XORG=x11,xext,xv
 XVIDEO_CONFIGURE_OFF=	--disable-outdev=xv
 
-# zimg
+# Scaling, colorspace conversion, and dithering via "z" library
 ZIMG_LIB_DEPENDS=	libzimg.so:graphics/sekrit-twc-zimg
 ZIMG_CONFIGURE_ENABLE=	libzimg
 
-# zmq
+# Message passing via libzmq
 ZMQ_LIB_DEPENDS=	libzmq.so:net/libzmq${ZMQ_VERSION}
 ZMQ_CONFIGURE_ENABLE=	libzmq
 ZMQ_VERSION?=		4
 
-# zvbi
+# Teletext support via libzvbi
 ZVBI_LIB_DEPENDS=	libzvbi.so:devel/libzvbi
 ZVBI_CONFIGURE_ENABLE=	libzvbi
 
 # License knobs
 GPL3_CONFIGURE_ENABLE=	version3
 GPL3_VARS=		LICENSE="GPLv3+ LGPL3+"
-LICENSE_FILE_GPLv3+ =	${WRKSRC}/COPYING.GPLv3
-LICENSE_FILE_LGPL3+ =	${WRKSRC}/COPYING.LGPLv3
+#LICENSE_FILE_GPLv3+ =	${WRKSRC}/COPYING.GPLv3
+#LICENSE_FILE_LGPL3+ =	${WRKSRC}/COPYING.LGPLv3
 
 NONFREE_CONFIGURE_ENABLE=nonfree
 
-INSTALL_TARGET=	install-progs install-doc install-data \
-		install-libs install-headers install-examples
-
-DATADIR=	${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
-DOCSDIR=	${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
-MAKE_ENV+=	V=1
-CFLAGS_armv6=	-Wno-error=int-conversion
-CFLAGS_armv7=	-Wno-error=int-conversion
-CFLAGS_i386=	-Wno-error=int-conversion
-CFLAGS_powerpc=	-Wno-error=int-conversion
-LDFLAGS_aarch64=-Wl,-z,notext
-LDFLAGS_armv6=	-Wl,-z,notext
-LDFLAGS_armv7=	-Wl,-z,notext
-LDFLAGS_i386=	-Wl,-z,notext
-
-CONFIGURE_ARGS+=--prefix="${PREFIX}" \
-		--mandir="${PREFIX}/share/man" \
-		--datadir="${DATADIR}" \
-		--docdir="${DOCSDIR}" \
-		--pkgconfigdir="${PREFIX}/libdata/pkgconfig" \
-		--disable-static \
-		--disable-libcelt \
-		--enable-shared \
-		--enable-pic \
-		--enable-gpl \
-		--cc="${CC}" \
-		--cxx="${CXX}"
-
-DOC_FILES=	Changelog CREDITS INSTALL.md LICENSE.md MAINTAINERS \
-		README.md RELEASE_NOTES
-# under doc subdirectory
-DOC_DOCFILES=	APIchanges *.txt
-PORTDOCS=	*
-
 .include <bsd.port.options.mk>
 
 .if ${PORT_OPTIONS:MNONFREE}
 LICENSE+=	NONFREE
 LICENSE_COMB=	multi
 LICENSE_NAME_NONFREE=	Non free code
-LICENSE_TEXT_NONFREE=	enabling OPENSSL or FDK_AAC restricts redistribution
+LICENSE_TEXT_NONFREE=	enabling OpenSSL or fdk-aac restricts redistribution
 LICENSE_PERMS_NONFREE=	auto-accept
 .endif
 
-post-install:
-	(cd ${WRKSRC} && ${COPYTREE_SHARE} \
-		"${DOC_FILES}" ${STAGEDIR}${DOCSDIR})
-	(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \
-		"${DOC_DOCFILES}" ${STAGEDIR}${DOCSDIR})
+.if !${PORT_OPTIONS:MVDPAU} || !${PORT_OPTIONS:MXCB} || !${PORT_OPTIONS:MXVIDEO}
+CONFIGURE_ARGS+=	--disable-xlib
+.endif
 
 .include <bsd.port.mk>
diff --git a/multimedia/ffmpeg/distinfo b/multimedia/ffmpeg/distinfo
index 811067130802..eb986a50d82d 100644
--- a/multimedia/ffmpeg/distinfo
+++ b/multimedia/ffmpeg/distinfo
@@ -1,9 +1,3 @@
-TIMESTAMP = 1722554574
-SHA256 (ffmpeg-6.1.2.tar.xz) = 3b624649725ecdc565c903ca6643d41f33bd49239922e45c9b1442c63dca4e38
-SIZE (ffmpeg-6.1.2.tar.xz) = 10466152
-SHA256 (master-0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch) = e8fdc940474f3819b9a8d30cab8164774584c051322acb6194bcb03d56e8175a
-SIZE (master-0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch) = 25395
-SHA256 (0002-doc-Add-libsvt_hevc-encoder-docs.patch) = a164ebdc4d281352bf7ad1b179aae4aeb33f1191c444bed96cb8ab333c046f81
-SIZE (0002-doc-Add-libsvt_hevc-encoder-docs.patch) = 5461
-SHA256 (master-0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch) = 0433016c8523c7ce159523946a76c8fa06a926f33f94b70e8de7c2082d14178c
-SIZE (master-0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch) = 25894
+TIMESTAMP = 1766560365
+SHA256 (ffmpeg-8.0.1.tar.xz) = 05ee0b03119b45c0bdb4df654b96802e909e0a752f72e4fe3794f487229e5a41
+SIZE (ffmpeg-8.0.1.tar.xz) = 11388848
diff --git a/multimedia/ffmpeg/files/0001-Add-av_stream_get_first_dts-for-Chromium.patch b/multimedia/ffmpeg/files/0001-Add-av_stream_get_first_dts-for-Chromium.patch
new file mode 100644
index 000000000000..4bb02e4a9aaa
--- /dev/null
*** 579 LINES SKIPPED ***