diff --git a/graphics/libavif/Makefile b/graphics/libavif/Makefile index 6c7729de2c8d..c7a372bbfa1d 100644 --- a/graphics/libavif/Makefile +++ b/graphics/libavif/Makefile @@ -1,85 +1,85 @@ PORTNAME= libavif PORTVERSION= 1.3.0 DISTVERSIONPREFIX= v -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics MAINTAINER= sunpoet@FreeBSD.org COMMENT= Library for encoding and decoding .avif files WWW= https://github.com/AOMediaCodec/libavif LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libpng.so:graphics/png \ libyuv.so:graphics/libyuv TEST_DEPENDS= bash:shells/bash \ googletest>=0:devel/googletest USES= cmake:testing compiler:c11 cpe jpeg pkgconfig CMAKE_ARGS= -DAVIF_GTEST=OFF \ -DAVIF_FUZZTEST=OFF \ -DAVIF_JPEG=SYSTEM \ -DAVIF_LIBYUV=SYSTEM \ -DAVIF_ZLIBPNG=SYSTEM CMAKE_OFF= AVIF_BUILD_EXAMPLES \ AVIF_BUILD_TESTS CMAKE_ON= AVIF_BUILD_APPS CMAKE_TESTING_ARGS= -DAVIF_GTEST=SYSTEM CMAKE_TESTING_ON= AVIF_BUILD_TESTS LDFLAGS+= -lm USE_LDCONFIG= yes USE_GITHUB= yes GH_ACCOUNT= AOMediaCodec GH_TUPLE= kmurray:libargparse:ee74d1b:kmurray_libargparse/../.build/_deps/libargparse-src CPE_VENDOR= aomedia OPTIONS_DEFINE= LIBSHARPYUV LIBXML2 MANPAGES PIXBUF OPTIONS_GROUP= AV1 OPTIONS_GROUP_AV1= AOM DAV1D GAV1 RAV1E SVTAV1 OPTIONS_DEFAULT=AOM DAV1D PIXBUF OPTIONS_SUB= yes AOM_DESC= AV1 encoding/decoding via libaom DAV1D_DESC= AV1 decoding via libdav1d GAV1_DESC= AV1 decoding via libgav1 LIBSHARPYUV_DESC= Colorspace conversion via libsharpyuv MANPAGES_DESC= Install manpages (requires pandoc) RAV1E_DESC= AV1 encoding via librav1e SVTAV1_DESC= AV1 encoding via SVT-AV1 AOM_CMAKE_OFF= -DAVIF_CODEC_AOM=OFF AOM_CMAKE_ON= -DAVIF_CODEC_AOM=SYSTEM AOM_LIB_DEPENDS= libaom.so:multimedia/aom DAV1D_CMAKE_OFF= -DAVIF_CODEC_DAV1D=OFF DAV1D_CMAKE_ON= -DAVIF_CODEC_DAV1D=SYSTEM DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d GAV1_CMAKE_OFF= -DAVIF_CODEC_LIBGAV1=OFF GAV1_CMAKE_ON= -DAVIF_CODEC_LIBGAV1=SYSTEM GAV1_LIB_DEPENDS= libgav1.so:multimedia/libgav1 LIBSHARPYUV_CMAKE_OFF= -DAVIF_LIBSHARPYUV=OFF LIBSHARPYUV_CMAKE_ON= -DAVIF_LIBSHARPYUV=SYSTEM LIBSHARPYUV_LIB_DEPENDS=libsharpyuv.so:graphics/webp MANPAGES_BUILD_DEPENDS= pandoc:textproc/hs-pandoc MANPAGES_CMAKE_BOOL= AVIF_BUILD_MAN_PAGES PIXBUF_CMAKE_BOOL= AVIF_BUILD_GDK_PIXBUF PIXBUF_USE= GNOME=gdkpixbuf PIXBUF_USES= gnome RAV1E_CMAKE_OFF= -DAVIF_CODEC_RAV1E=OFF RAV1E_CMAKE_ON= -DAVIF_CODEC_RAV1E=SYSTEM RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e SVTAV1_CMAKE_OFF= -DAVIF_CODEC_SVT=OFF SVTAV1_CMAKE_ON= -DAVIF_CODEC_SVT=SYSTEM SVTAV1_LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1 LIBXML2_CMAKE_OFF= -DAVIF_LIBXML2=OFF LIBXML2_CMAKE_ON= -DAVIF_LIBXML2=SYSTEM LIBXML2_USE= GNOME=libxml2 LIBXML2_USES= gnome post-patch: # Clean up bundled libraries @${RM} -r ${WRKSRC}/third_party/libyuv/ .include diff --git a/graphics/libavif/files/patch-src_codec__svt.c b/graphics/libavif/files/patch-src_codec__svt.c new file mode 100644 index 000000000000..683d07ab045c --- /dev/null +++ b/graphics/libavif/files/patch-src_codec__svt.c @@ -0,0 +1,16 @@ +https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/v4.0.0/.gitlab/workflows/linux/0002-svt-av1-fix-aq_mode.patch + +--- src/codec_svt.c.orig 2025-05-09 16:21:14 UTC ++++ src/codec_svt.c +@@ -162,7 +162,11 @@ static avifResult svtCodecEncodeImage(avifCodec * code + #else + svt_config->logical_processors = encoder->maxThreads; + #endif ++#if SVT_AV1_CHECK_VERSION(4, 0, 0) ++ svt_config->aq_mode = 2; ++#else + svt_config->enable_adaptive_quantization = 2; ++#endif + // disable 2-pass + #if SVT_AV1_CHECK_VERSION(0, 9, 0) + svt_config->rc_stats_buffer = (SvtAv1FixedBuf) { NULL, 0 }; diff --git a/graphics/libheif/Makefile b/graphics/libheif/Makefile index 8cf4a5b91330..559bcc927bc1 100644 --- a/graphics/libheif/Makefile +++ b/graphics/libheif/Makefile @@ -1,85 +1,90 @@ PORTNAME= libheif DISTVERSION= 1.21.2 +PORTREVISION= 1 CATEGORIES= graphics MASTER_SITES= https://github.com/strukturag/${PORTNAME}/releases/download/v${DISTVERSION}/ +PATCH_SITES= https://github.com/strukturag/${PORTNAME}/commit/ +PATCHFILES+= 61923302d12f.patch:-p1 # https://github.com/strukturag/libheif/pull/1680 +PATCHFILES+= f9919e348689.patch:-p1 # https://github.com/strukturag/libheif/pull/1680 + MAINTAINER= makc@FreeBSD.org COMMENT= ISO/IEC 23008-12:2017 HEIF file format de- and encoder WWW= https://github.com/strukturag/libheif LICENSE= LGPL3+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libsharpyuv.so:graphics/webp USES= cmake:testing compiler:c++20-lang cpe gettext-runtime gnome \ localbase:ldflags pathfix pkgconfig CPE_VENDOR= struktur USE_GNOME= gdkpixbuf glib20 USE_LDCONFIG= yes PLIST_SUB= LIB_VER=${DISTVERSION} CMAKE_OFF= BUILD_TESTING \ WITH_KVAZAAR \ WITH_UVG266 \ WITH_VVDEC \ WITH_VVENC \ CMAKE_COMPILE_WARNING_AS_ERROR CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_Doxygen OPTIONS_DEFINE= AOM DAV1D EXAMPLES FFMPEG JPEG LIBDE265 OPENH264 \ OPENJPEG OPENJPH SVTAV1 RAV1E X265 OPTIONS_DEFAULT=AOM DAV1D FFMPEG JPEG OPENH264 OPENJPEG OPENJPH SVTAV1 X265 OPTIONS_SUB= yes AOM_DESC= AV1 encoding/decoding via libaom FFMPEG_DESC= Use FFmpeg (support for HEVC decoding) DAV1D_DESC= Build dav1e decoder LIBDE265_DESC= Use libde265 (support for HEVC decoding) OPENH264_DESC= AVC decoding via OpenH264 OPENJPH_DESC= HT-J2K encoding via OpenJPH SVTAV1_DESC= Build svt-av1 encoder RAV1E_DESC= Build rav1e encoder X265_DESC= Use x265 (support for HEVC encoding) AOM_LIB_DEPENDS= libaom.so:multimedia/aom AOM_CMAKE_BOOL= WITH_AOM_ENCODER WITH_AOM_DECODER DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d DAV1D_CMAKE_BOOL= WITH_DAV1D EXAMPLES_LIB_DEPENDS= libpng16.so:graphics/png \ libtiff.so:graphics/tiff EXAMPLES_USES= sdl EXAMPLES_USE= SDL=sdl2 EXAMPLES_CMAKE_BOOL= WITH_EXAMPLES EXAMPLE_IMPLIES= JPEG FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= WITH_FFMPEG_DECODER JPEG_USES= jpeg JPEG_CMAKE_BOOL= WITH_JPEG_ENCODER WITH_JPEG_DECODER LIBDE265_LIB_DEPENDS= libde265.so:multimedia/libde265 LIBDE265_CMAKE_BOOL= WITH_LIBDE265 OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264 OPENH264_CMAKE_BOOL= WITH_OpenH264_DECODER OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CMAKE_BOOL= WITH_OpenJPEG_ENCODER WITH_OpenJPEG_DECODER OPENJPH_LIB_DEPENDS= libopenjph.so:graphics/openjph OPENJPH_CMAKE_BOOL= WITH_OPENJPH_ENCODER WITH_OPENJPH_DECODER SVTAV1_LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1 SVTAV1_CMAKE_BOOL= WITH_SvtEnc RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e RAV1E_CMAKE_BOOL= WITH_RAV1E X265_LIB_DEPENDS= libx265.so:multimedia/x265 X265_CMAKE_BOOL= WITH_X265 .include diff --git a/graphics/libheif/distinfo b/graphics/libheif/distinfo index 22222f3ad5a0..48c0aea46dd7 100644 --- a/graphics/libheif/distinfo +++ b/graphics/libheif/distinfo @@ -1,3 +1,7 @@ -TIMESTAMP = 1768676876 +TIMESTAMP = 1769288759 SHA256 (libheif-1.21.2.tar.gz) = 75f530b7154bc93e7ecf846edfc0416bf5f490612de8c45983c36385aa742b42 SIZE (libheif-1.21.2.tar.gz) = 1859435 +SHA256 (61923302d12f.patch) = 1a45ec9118a0132650324f79f2163281da9072fad28d506a5771938300aa261d +SIZE (61923302d12f.patch) = 991 +SHA256 (f9919e348689.patch) = ea5c62cf3cbd75faab729458d26899f7ed1b5dc8f48b71093c69c0c9a97c71eb +SIZE (f9919e348689.patch) = 2340 diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index 329db8eaa6b7..55f3ec55eb1f 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -1,672 +1,672 @@ PORTNAME= ffmpeg DISTVERSION= 8.0.1 -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= multimedia audio net MASTER_SITES= https://ffmpeg.org/releases/ MAINTAINER= multimedia@FreeBSD.org COMMENT= Realtime audio/video encoder/converter and streaming server 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 BUILD_DEPENDS_armv6= as:devel/binutils BUILD_DEPENDS_armv7= as:devel/binutils BUILD_DEPENDS_i386= nasm:devel/nasm USES= compiler:c17 cpe gmake localbase:ldflags perl5 \ pkgconfig shebangfix tar:xz USE_PERL5= build SHEBANG_FILES= doc/texi2pod.pl USE_LDCONFIG= yes HAS_CONFIGURE= yes CONFIGURE_LOG= ffbuild/config.log NOPRECIOUSMAKEVARS= yes 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 DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} MAKE_ENV+= V=1 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 INSTALL_TARGET= install-progs install-doc install-data \ install-libs install-headers install-examples 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}" 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 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 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 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 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 KVAZAAR_DESC= H.265 video codec support via Kvazaar LICENSE_DESC= Licensing options LV2_DESC= LV2 audio filtering MFX_DESC= Intel MediaSDK (aka Quick Sync Video) MYSOFA_DESC= SOFAlizer binaural filter NETWORK_DESC= Networking support 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 POCKETSPHINX_DESC= Automatic Speech Recognition via PocketSphinx RAV1E_DESC= AV1 encoding via librav1e RABBITMQ_DESC= AMQP 0-9-1 protocol via RabbitMQ RIST_DESC= Reliable Internet Stream Transport protocol via librist RUBBERBAND_DESC=Time-stretching and pitch-shifting with librubberband RTCPU_DESC= Detect CPU capabilities at runtime 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 #SVTVP9_DESC= VP9 encoding via SVT-VP9 LIBPLACEBO_DESC=GPU filters from libplacebo TENSORFLOW_DESC=TensorFlow as a DNN module backend TESSERACT_DESC= Optical Character Recognition via Tesseract THEORA_DESC= Encoding support for theora via libtheora 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 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 ### ### 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 # Opencore AMR NB AMR_NB_LIB_DEPENDS= libopencore-amrnb.so:audio/opencore-amr AMR_NB_CONFIGURE_ENABLE= libopencore-amrnb AMR_NB_IMPLIES= GPL3 # Opencore AMR WB AMR_WB_LIB_DEPENDS= libopencore-amrwb.so:audio/opencore-amr AMR_WB_CONFIGURE_ENABLE= libopencore-amrwb AMR_WB_IMPLIES= GPL3 # AOM AV1 codec AOM_LIB_DEPENDS= libaom.so:multimedia/aom AOM_CONFIGURE_ENABLE= libaom # ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream ARIBB24_LIB_DEPENDS= libaribb24.so:multimedia/aribb24 ARIBB24_CONFIGURE_ENABLE= libaribb24 # Assembly support ASM_CONFIGURE_ENABLE= asm # ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle renderer ASS_LIB_DEPENDS= libass.so:multimedia/libass ASS_CONFIGURE_ENABLE= libass # Bauer Stereophonic-to-Binaural filter via libbs2b BS2B_LIB_DEPENDS= libbs2b.so:audio/libbs2b BS2B_CONFIGURE_ENABLE= libbs2b # Convert video into colour ASCII art via (lib)caca CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca CACA_CONFIGURE_ENABLE= libcaca # 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 # codec2 format support via (lib)codec2 CODEC2_LIB_DEPENDS= libcodec2.so:audio/codec2 CODEC2_CONFIGURE_ENABLE= libcodec2 # AV1 decoder DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d DAV1D_CONFIGURE_ENABLE= libdav1d # IEEE 1394 camera control via (lib)dc1394 DC1394_LIB_DEPENDS= libdc1394.so:multimedia/libdc1394 DC1394_CONFIGURE_ENABLE= libdc1394 # Debugging DEBUG_CONFIGURE_ON= --disable-stripping DEBUG_CONFIGURE_OFF= --disable-debug # Documentation DOCS_BUILD_DEPENDS= texi2html:textproc/texi2html DOCS_CONFIGURE_ENABLE= htmlpages DOCS_BINARY_ALIAS= makeinfo=${FALSE} # force texi2html # DRM DRM_LIB_DEPENDS= libdrm.so:graphics/libdrm DRM_CONFIGURE_ENABLE= libdrm # 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 # Speech synthesis via (lib)flite FLITE_LIB_DEPENDS= libflite.so:audio/flite FLITE_CONFIGURE_ENABLE= libflite # (lib)fontconfig FONTCONFIG_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig FONTCONFIG_CONFIGURE_ENABLE= fontconfig # (lib)freetype FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 FREETYPE_CONFIGURE_ENABLE= libfreetype # Video effects via (lib)Frei0r FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r FREI0R_CONFIGURE_ENABLE= frei0r # (lib)FriBidi FRIBIDI_LIB_DEPENDS= libfribidi.so:converters/fribidi FRIBIDI_CONFIGURE_ENABLE= libfribidi # Libgcrypt GCRYPT_LIB_DEPENDS= libgcrypt.so:security/libgcrypt GCRYPT_CONFIGURE_ENABLE= gcrypt # 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_LIB_DEPENDS= libgnutls.so:security/gnutls GNUTLS_CONFIGURE_ENABLE= gnutls # Game Music Emu via libgme GME_LIB_DEPENDS= libgme.so:audio/libgme GME_CONFIGURE_ENABLE= libgme # GMP GMP_LIB_DEPENDS= libgmp.so:math/gmp GMP_CONFIGURE_ENABLE= gmp GMP_IMPLIES= GPL3 # GSM de/encoding via libgsm GSM_LIB_DEPENDS= libgsm.so:audio/gsm GSM_CONFIGURE_ENABLE= libgsm # (lib)harfbuzz HARFBUZZ_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz HARFBUZZ_CONFIGURE_ENABLE= libharfbuzz # iconv ICONV_USES= iconv ICONV_CONFIGURE_ENABLE= iconv # iLBC de/encoding via libilbc ILBC_LIB_DEPENDS= libilbc.so:net/libilbc ILBC_CONFIGURE_ENABLE= libilbc # Support for JACK low-latency audio server JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CONFIGURE_ENABLE= libjack # JPEG XL de/encoding via libjxl JXL_LIB_DEPENDS= libjxl.so:graphics/libjxl JXL_CONFIGURE_ENABLE= libjxl # HEVC encoding via libkvazaar KVAZAAR_LIB_DEPENDS= libkvazaar.so:multimedia/kvazaar KVAZAAR_CONFIGURE_ENABLE= libkvazaar # 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 # MP3 encoding via LAME LAME_LIB_DEPENDS= libmp3lame.so:audio/lame LAME_CONFIGURE_ENABLE= libmp3lame # lcms2 LCMS2_LIB_DEPENDS= liblcms2.so:graphics/lcms2 LCMS2_CONFIGURE_ENABLE= lcms2 # 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 # GPU-accelerated video/image rendering via libplacebo LIBPLACEBO_LIB_DEPENDS= libplacebo.so:graphics/libplacebo LIBPLACEBO_CONFIGURE_ENABLE= libplacebo LIBPLACEBO_IMPLIES= VULKAN # SVG format support via librsvg LIBRSVG2_USES= gnome LIBRSVG2_USE= GNOME=cairo,librsvg2 LIBRSVG2_CONFIGURE_ENABLE= librsvg # XML support via libxml2 LIBXML2_USES= gnome LIBXML2_USE= GNOME=libxml2 LIBXML2_CONFIGURE_ENABLE= libxml2 # lto LTO_CONFIGURE_ON= --enable-lto # LV2 audio filtering LV2_BUILD_DEPENDS= lv2>0:audio/lv2 LV2_LIB_DEPENDS= liblilv-0.so:audio/lilv LV2_CONFIGURE_ENABLE= lv2 # Intel MediaSDK support via libmfx MFX_LIB_DEPENDS= libmfx.so:multimedia/intel-media-sdk MFX_CONFIGURE_ENABLE= libmfx # ModPlug via libmodplug MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug MODPLUG_CONFIGURE_ENABLE= libmodplug # mysofa MYSOFA_LIB_DEPENDS= libmysofa.so:audio/libmysofa MYSOFA_CONFIGURE_ENABLE= libmysofa # network NETWORK_CONFIGURE_ENABLE= network # Glue for Nvidia Codec SDK headers, hardware decoding/encoding NVENC_BUILD_DEPENDS= ffnvcodec-headers>=11.1.5.2:multimedia/ffnvcodec-headers NVENC_CONFIGURE_ENABLE= cuvid \ nvdec \ nvenc # OpenAL 1.1 capture support OPENAL_LIB_DEPENDS= libopenal.so:audio/openal-soft OPENAL_CONFIGURE_ENABLE= openal # 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 rendering OPENGL_USES= gl OPENGL_USE= GL=gl OPENGL_CONFIGURE_ENABLE= opengl # H.264 encoding via OpenH264 OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264 OPENH264_CONFIGURE_ENABLE= libopenh264 # JPEG 2000 encoding via OpenJPEG OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CONFIGURE_ENABLE= libopenjpeg # Support for various mod files formats via (lib)openmpt OPENMPT_LIB_DEPENDS= libopenmpt.so:audio/libopenmpt OPENMPT_CONFIGURE_ENABLE= libopenmpt # OpenSSL OPENSSL_USES= ssl OPENSSL_CONFIGURE_ENABLE= openssl OPENSSL_IMPLIES= NONFREE # Enable optimizations defined by upstream OPTIMIZED_CFLAGS_CONFIGURE_ENABLE= optimizations # Opus de/encoding via libopus OPUS_LIB_DEPENDS= libopus.so:audio/opus OPUS_CONFIGURE_ENABLE= libopus # Speech recognition via (lib)PocketSphinx POCKETSPHINX_LIB_DEPENDS= libpocketsphinx.so:audio/pocketsphinx POCKETSPHINX_CONFIGURE_ENABLE= pocketsphinx POCKETSPHINX_BROKEN= pocketsphinx < 5prealpha is not supported # Pulseaudio input via libpulse PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CONFIGURE_ENABLE= libpulse # AV1 encoding via librav1e RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e RAV1E_CONFIGURE_ENABLE= librav1e # RabbitMQ RABBITMQ_LIB_DEPENDS= librabbitmq.so:net/rabbitmq-c RABBITMQ_CONFIGURE_ENABLE= librabbitmq # RIST via librist RIST_LIB_DEPENDS= librist.so:multimedia/librist RIST_CONFIGURE_ENABLE= librist # 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 # SDL(2) video output support SDL_USES= sdl SDL_USE= SDL=sdl2 SDL_CONFIGURE_ENABLE= sdl2 # 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 # Samba protocol support via libsmbclient SMB_USES= samba:lib SMB_CONFIGURE_ENABLE= libsmbclient SMB_IMPLIES= GPL3 # Snappy compression via libsnappy SNAPPY_LIB_DEPENDS= libsnappy.so:archivers/snappy SNAPPY_CONFIGURE_ENABLE= libsnappy # sndio SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_CONFIGURE_ENABLE= sndio # libsoxr resampling SOXR_LIB_DEPENDS= libsoxr.so:audio/libsoxr SOXR_CONFIGURE_ENABLE= libsoxr # Speex de/encoding via libspeex SPEEX_LIB_DEPENDS= libspeex.so:audio/speex SPEEX_CONFIGURE_ENABLE= libspeex # Haivision SRT protocol via libsrt SRT_LIB_DEPENDS= libsrt.so:www/srt SRT_CONFIGURE_ENABLE= libsrt # 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 # 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 # TensorFlow TENSORFLOW_LIB_DEPENDS= libtensorflow.so:science/py-tensorflow TENSORFLOW_CONFIGURE_ENABLE= libtensorflow # OCR support via Tesseract TESSERACT_LIB_DEPENDS= libtesseract.so:graphics/tesseract TESSERACT_CONFIGURE_ENABLE= libtesseract # Theora encoding via libtheora THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora THEORA_CONFIGURE_ENABLE= libtheora # MP2 encoding via libtwolame TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame TWOLAME_CONFIGURE_ENABLE= libtwolame # 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 # Video Acceleration API (VA-API) VAAPI_LIB_DEPENDS= libva.so:multimedia/libva VAAPI_CONFIGURE_ENABLE= vaapi # VapourSynth demuxer VAPOURSYNTH_LIB_DEPENDS= libvapoursynth-script.so:multimedia/vapoursynth VAPOURSYNTH_CONFIGURE_ENABLE= vapoursynth # Nvidia Video Decode and Presentation API VDPAU_USES= xorg VDPAU_USE= XORG=x11 VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau VDPAU_CONFIGURE_ENABLE= vdpau # 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 # VisualOn AMR-WB encoder VO_AMRWBENC_LIB_DEPENDS= libvo-amrwbenc.so:audio/vo-amrwbenc VO_AMRWBENC_CONFIGURE_ENABLE= libvo-amrwbenc VO_AMRWBENC_IMPLIES= GPL3 # Vorbis en/decoding via libvorbis VORBIS_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis VORBIS_CONFIGURE_ENABLE= libvorbis # Intel oneVPL VPL_LIB_DEPENDS= libvpl.so:multimedia/onevpl VPL_CONFIGURE_ENABLE= libvpl # VP8 and VP9 de/encoding via libvpx VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx VPX_CONFIGURE_ENABLE= libvpx # Vulkan VULKAN_BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader VULKAN_CONFIGURE_ENABLE= vulkan # 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 # H.264 encoding via (lib)x264 X264_LIB_DEPENDS= libx264.so:multimedia/libx264 X264_CONFIGURE_ENABLE= libx264 # HEVC encoding via (lib)x265 X265_LIB_DEPENDS= libx265.so:multimedia/x265 X265_CONFIGURE_ENABLE= libx265 # X11 grabbing using XCB XCB_USES= xorg XCB_USE= XORG=xcb,x11,xext,xv XCB_CONFIGURE_ENABLE= libxcb libxcb-shape libxcb-shm libxcb-xfixes xlib # XviD support XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid XVID_CONFIGURE_ENABLE= libxvid # xv XVIDEO_USES= xorg XVIDEO_USE= XORG=x11,xext,xv XVIDEO_CONFIGURE_OFF= --disable-outdev=xv # Scaling, colorspace conversion, and dithering via "z" library ZIMG_LIB_DEPENDS= libzimg.so:graphics/sekrit-twc-zimg ZIMG_CONFIGURE_ENABLE= libzimg # Message passing via libzmq ZMQ_LIB_DEPENDS= libzmq.so:net/libzmq${ZMQ_VERSION} ZMQ_CONFIGURE_ENABLE= libzmq ZMQ_VERSION?= 4 # 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 NONFREE_CONFIGURE_ENABLE=nonfree .include .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_PERMS_NONFREE= auto-accept .endif .if !${PORT_OPTIONS:MVDPAU} || !${PORT_OPTIONS:MXCB} || !${PORT_OPTIONS:MXVIDEO} CONFIGURE_ARGS+= --disable-xlib .endif .include diff --git a/multimedia/ffmpeg/files/patch-svtav1 b/multimedia/ffmpeg/files/patch-svtav1 new file mode 100644 index 000000000000..c0136cbeac94 --- /dev/null +++ b/multimedia/ffmpeg/files/patch-svtav1 @@ -0,0 +1,16 @@ +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/a5d4c398b411 + +--- libavcodec/libsvtav1.c.orig 2025-11-20 02:31:18 UTC ++++ libavcodec/libsvtav1.c +@@ -238,7 +238,11 @@ static int config_enc_params(EbSvtAv1EncConfiguration + } else if (svt_enc->qp > 0) { + param->qp = svt_enc->qp; + param->rate_control_mode = 0; ++#if SVT_AV1_CHECK_VERSION(4, 0, 0) ++ param->aq_mode = 0; ++#else + param->enable_adaptive_quantization = 0; ++#endif + } + + desc = av_pix_fmt_desc_get(avctx->pix_fmt); diff --git a/multimedia/ffmpeg4/Makefile b/multimedia/ffmpeg4/Makefile index fab92cd150db..7795f163cc21 100644 --- a/multimedia/ffmpeg4/Makefile +++ b/multimedia/ffmpeg4/Makefile @@ -1,645 +1,645 @@ PORTNAME= ffmpeg PORTVERSION= 4.4.4 -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= multimedia audio net MASTER_SITES= https://ffmpeg.org/releases/ PKGNAMESUFFIX= 4 MAINTAINER= multimedia@FreeBSD.org COMMENT= Realtime audio/video encoder/converter and streaming server (legacy 4.* series) WWW= https://ffmpeg.org/ LICENSE= GPLv2+ LGPL21+ LICENSE_COMB= multi BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} BUILD_DEPENDS_aarch64= as:devel/binutils BUILD_DEPENDS_amd64= nasm:devel/nasm 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 \ pkgconfig shebangfix tar:xz USE_LDCONFIG= yes USE_PERL5= build SHEBANG_FILES= doc/texi2pod.pl NOPRECIOUSMAKEVARS= yes # ARCH .ifdef PKGNAMESUFFIX PORTSCOUT= limit:^4\. PREFIX= ${LOCALBASE}/${PKGBASE} # avoid conflict with the default .endif # Option CHROMAPRINT disabled, it cannot work and people are baffled. OPTIONS_DEFINE= ALSA AMR_NB AMR_WB AOM ARIBB24 ASM ASS BS2B CACA CDIO \ CODEC2 DAV1D DAVS2 DC1394 DEBUG DOCS DRM FDK_AAC FLITE \ FONTCONFIG FREETYPE FREI0R FRIBIDI GLSLANG GME GSM ICONV ILBC \ JACK KLVANC KVAZAAR LADSPA LAME LENSFUN LIBBLURAY 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 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 OPTIONS_DEFINE_i386= MFX OPTIONS_DEFAULT= AOM ASM ASS DAV1D DRM FONTCONFIG FREETYPE FREI0R GMP \ GNUTLS ICONV LAME LIBXML2 NETWORK OPTIMIZED_CFLAGS OPUS \ RTCPU SVTAV1 V4L VAAPI VDPAU VMAF VORBIS VPX WEBP X264 \ X265 XCB # i386 is too register-starved for LTO (PR257124) OPTIONS_EXCLUDE_i386= LTO .if !exists(${.CURDIR:H:H}/multimedia/davs2) # https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/5985a1bf7233 OPTIONS_EXCLUDE+= DAVS2 .endif .if !exists(${.CURDIR:H:H}/multimedia/uavs3d) # https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/c952db9d68d3 OPTIONS_EXCLUDE+= UAVS3D .endif .if !exists(${.CURDIR:H:H}/multimedia/xavs2) # https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/85a921f4618 OPTIONS_EXCLUDE+= XAVS2 .endif .if !exists(${.CURDIR:H:H}/multimedia/klvanc) # https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/8732dfa9954 OPTIONS_EXCLUDE+= KLVANC .endif .if !exists(${.CURDIR:H:H}/science/openvino) # https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ff37ebaf30e6 OPTIONS_EXCLUDE+= OPENVINO .endif OPTIONS_RADIO= RTMP SSL OPTIONS_RADIO_RTMP= GCRYPT GMP OPTIONS_RADIO_SSL= GNUTLS MBEDTLS OPENSSL OPTIONS_GROUP= LICENSE OPTIONS_GROUP_LICENSE= GPL3 NONFREE ASS_DESC= Subtitles rendering via libass AOM_DESC= AV1 video encoding/decoding via libaom ARIBB24_DESC= ARIB text and caption decoding via libaribb24 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 FDK_AAC_DESC= AAC audio encoding via Fraunhofer FDK FLITE_DESC= Voice synthesis support via libflite GLSLANG_DESC= GLSL->SPIRV compilation via libglslang GME_DESC= Game Music Emu demuxer GPL3_DESC= Allow (L)GPL version 3 code(cs) 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 MFX_DESC= Intel MediaSDK (aka Quick Sync Video) MYSOFA_DESC= SOFAlizer binaural filter NETWORK_DESC= Networking support 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 RIST_DESC= Reliable Internet Stream Transport protocol via librist RUBBERBAND_DESC=Time-stretching and pitch-shifting with librubberband RTCPU_DESC= Detect CPU capabilities at runtime RTMP_DESC= RTMP(T)E protocol support 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 TENSORFLOW_DESC=TensorFlow as a DNN module backend for DNN based filters like sr 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 VULKAN_DESC= Vulkan filters XAVS2_DESC= AVS2 encoding via libxavs2 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 ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CONFIGURE_ENABLE= alsa # Opencore AMR NB AMR_NB_LIB_DEPENDS= libopencore-amrnb.so:audio/opencore-amr AMR_NB_CONFIGURE_ENABLE= libopencore-amrnb AMR_NB_IMPLIES= GPL3 # Opencore AMR WB AMR_WB_LIB_DEPENDS= libopencore-amrwb.so:audio/opencore-amr AMR_WB_CONFIGURE_ENABLE= libopencore-amrwb AMR_WB_IMPLIES= GPL3 # aom AOM_LIB_DEPENDS= libaom.so:multimedia/aom AOM_CONFIGURE_ENABLE= libaom # arib ARIBB24_LIB_DEPENDS= libaribb24.so:multimedia/aribb24 ARIBB24_CONFIGURE_ENABLE= libaribb24 # asm support ASM_CONFIGURE_ENABLE= asm # ass ASS_LIB_DEPENDS= libass.so:multimedia/libass ASS_CONFIGURE_ENABLE= libass # bs2b BS2B_LIB_DEPENDS= libbs2b.so:audio/libbs2b BS2B_CONFIGURE_ENABLE= libbs2b # caca CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca CACA_CONFIGURE_ENABLE= libcaca # 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 # codec2 CODEC2_LIB_DEPENDS= libcodec2.so:audio/codec2 CODEC2_CONFIGURE_ENABLE= libcodec2 # dav1d DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d DAV1D_CONFIGURE_ENABLE= libdav1d # davs2 DAVS2_LIB_DEPENDS= libdavs2.so:multimedia/davs2 DAVS2_CONFIGURE_ENABLE= libdavs2 # dc1394 DC1394_LIB_DEPENDS= libdc1394.so:multimedia/libdc1394 DC1394_CONFIGURE_ENABLE= libdc1394 # debugging DEBUG_CONFIGURE_ON= --disable-stripping DEBUG_CONFIGURE_OFF= --disable-debug # docs DOCS_BUILD_DEPENDS= texi2html:textproc/texi2html DOCS_CONFIGURE_ENABLE= htmlpages DOCS_BINARY_ALIAS= makeinfo=${FALSE} # force texi2html # drm DRM_LIB_DEPENDS= libdrm.so:graphics/libdrm DRM_CONFIGURE_ENABLE= libdrm # fdk_aac FDK_AAC_LIB_DEPENDS= libfdk-aac.so:audio/fdk-aac FDK_AAC_CONFIGURE_ENABLE= libfdk-aac FDK_AAC_IMPLIES= NONFREE # flite FLITE_LIB_DEPENDS= libflite.so:audio/flite FLITE_CONFIGURE_ENABLE= libflite # fontconfig FONTCONFIG_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig FONTCONFIG_CONFIGURE_ENABLE= fontconfig # freetype FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 FREETYPE_CONFIGURE_ENABLE= libfreetype # frei0r FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r FREI0R_CONFIGURE_ENABLE= frei0r # fribidi FRIBIDI_LIB_DEPENDS= libfribidi.so:converters/fribidi FRIBIDI_CONFIGURE_ENABLE= libfribidi # gcrypt GCRYPT_LIB_DEPENDS= libgcrypt.so:security/libgcrypt GCRYPT_CONFIGURE_ENABLE= gcrypt # glslang 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_LIB_DEPENDS= libgnutls.so:security/gnutls GNUTLS_CONFIGURE_ENABLE= gnutls # gme GME_LIB_DEPENDS= libgme.so:audio/libgme GME_CONFIGURE_ENABLE= libgme # gmp GMP_LIB_DEPENDS= libgmp.so:math/gmp GMP_CONFIGURE_ENABLE= gmp GMP_IMPLIES= GPL3 # gsm GSM_LIB_DEPENDS= libgsm.so:audio/gsm GSM_CONFIGURE_ENABLE= libgsm # iconv ICONV_USES= iconv ICONV_CONFIGURE_ENABLE= iconv # ilbc ILBC_LIB_DEPENDS= libilbc.so:net/libilbc ILBC_CONFIGURE_ENABLE= libilbc # jack JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CONFIGURE_ENABLE= libjack # klvanc KLVANC_LIB_DEPENDS= libklvanc.so:multimedia/libklvanc KLVANC_CONFIGURE_ENABLE= libklvanc # kvazaar KVAZAAR_LIB_DEPENDS= libkvazaar.so:multimedia/kvazaar KVAZAAR_CONFIGURE_ENABLE= libkvazaar # ladspa LADSPA_BUILD_DEPENDS= ${LOCALBASE}/include/ladspa.h:audio/ladspa LADSPA_RUN_DEPENDS= ${LOCALBASE}/lib/ladspa/amp.so:audio/ladspa LADSPA_CONFIGURE_ENABLE= ladspa # lame LAME_LIB_DEPENDS= libmp3lame.so:audio/lame LAME_CONFIGURE_ENABLE= libmp3lame # lensfun LENSFUN_LIB_DEPENDS= liblensfun.so:graphics/lensfun LENSFUN_CONFIGURE_ENABLE= liblensfun # libbluray LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray LIBBLURAY_CONFIGURE_ENABLE= libbluray # librsvg LIBRSVG2_USES= gnome LIBRSVG2_USE= GNOME=cairo,librsvg2 LIBRSVG2_CONFIGURE_ENABLE= librsvg # libxml LIBXML2_LIB_DEPENDS= libxml2.so:textproc/libxml2 LIBXML2_CONFIGURE_ENABLE= libxml2 # lto LTO_CONFIGURE_ENABLE= lto # lv2 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 MFX_LIB_DEPENDS= libmfx.so:multimedia/intel-media-sdk MFX_CONFIGURE_ENABLE= libmfx # modplug MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug MODPLUG_CONFIGURE_ENABLE= libmodplug # mysofa MYSOFA_LIB_DEPENDS= libmysofa.so:audio/libmysofa MYSOFA_CONFIGURE_ENABLE= libmysofa # network NETWORK_CONFIGURE_ENABLE= network # nvenc NVENC_BROKEN= Fails to configure or build with ffnvcodec-headers >= 13.0 NVENC_BUILD_DEPENDS= ${LOCALBASE}/include/ffnvcodec/nvEncodeAPI.h:multimedia/ffnvcodec-headers NVENC_CONFIGURE_ENABLE= nvenc # OpenAL OPENAL_LIB_DEPENDS= libopenal.so:audio/openal-soft OPENAL_CONFIGURE_ENABLE= openal # opencl OPENCL_BUILD_DEPENDS= ${LOCALBASE}/include/CL/opencl.h:devel/opencl OPENCL_LIB_DEPENDS= libOpenCL.so:devel/ocl-icd OPENCL_CONFIGURE_ENABLE= opencl # opengl OPENGL_USES= gl OPENGL_USE= GL=gl OPENGL_CONFIGURE_ENABLE= opengl # openh264 OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264 OPENH264_CONFIGURE_ENABLE= libopenh264 # openjpeg OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CONFIGURE_ENABLE= libopenjpeg # openmpt OPENMPT_LIB_DEPENDS= libopenmpt.so:audio/libopenmpt OPENMPT_CONFIGURE_ENABLE= libopenmpt # openssl/libtls OPENSSL_USES= ssl OPENSSL_CONFIGURE_ENABLE= ${"${SSL_DEFAULT:Mlibressl*}"!="":?libtls:openssl} OPENSSL_IMPLIES= NONFREE # openvino OPENVINO_LIB_DEPENDS= libinference_engine_c_api.so:science/openvino OPENVINO_CONFIGURE_ENABLE= libopenvino # optimizations OPTIMIZED_CFLAGS_CONFIGURE_ENABLE= optimizations # opus OPUS_LIB_DEPENDS= libopus.so:audio/opus OPUS_CONFIGURE_ENABLE= libopus # pocketsphinx POCKETSPHINX_LIB_DEPENDS= libpocketsphinx.so:audio/pocketsphinx POCKETSPHINX_CONFIGURE_ENABLE= pocketsphinx POCKETSPHINX_BROKEN= pocketsphinx < 5prealpha is not supported # pulseaudio PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CONFIGURE_ENABLE= libpulse # rav1e RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e RAV1E_CONFIGURE_ENABLE= librav1e # rabbitmq RABBITMQ_LIB_DEPENDS= librabbitmq.so:net/rabbitmq-c RABBITMQ_CONFIGURE_ENABLE= librabbitmq # rist RIST_LIB_DEPENDS= librist.so:multimedia/librist RIST_CONFIGURE_ENABLE= librist # rubberband RUBBERBAND_LIB_DEPENDS= librubberband.so:audio/rubberband RUBBERBAND_CONFIGURE_ENABLE= librubberband # rtcpu RTCPU_CONFIGURE_ENABLE= runtime-cpudetect # sdl SDL_USES= sdl SDL_USE= SDL=sdl2 SDL_CONFIGURE_ENABLE= sdl2 # smbclient SMB_USES= samba:lib SMB_CONFIGURE_ENABLE= libsmbclient SMB_IMPLIES= GPL3 # snappy SNAPPY_LIB_DEPENDS= libsnappy.so:archivers/snappy SNAPPY_CONFIGURE_ENABLE= libsnappy # sndio SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_CONFIGURE_ENABLE= sndio # soxr SOXR_LIB_DEPENDS= libsoxr.so:audio/libsoxr SOXR_CONFIGURE_ENABLE= libsoxr # speex SPEEX_LIB_DEPENDS= libspeex.so:audio/speex SPEEX_CONFIGURE_ENABLE= libspeex # ssh SSH_LIB_DEPENDS= libssh.so:security/libssh SSH_CONFIGURE_ENABLE= libssh # srt SRT_LIB_DEPENDS= libsrt.so:www/srt SRT_CONFIGURE_ENABLE= libsrt # svt-av1 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.0-3-g86b58f77/ffmpeg_plugin/:svthevc SVTHEVC_PATCHFILES= 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 # 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-4-gabd5c59/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_LIB_DEPENDS= libtensorflow.so:science/py-tensorflow TENSORFLOW_CONFIGURE_ENABLE= libtensorflow # tesseract TESSERACT_LIB_DEPENDS= libtesseract.so:graphics/tesseract TESSERACT_CONFIGURE_ENABLE= libtesseract # theora THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora THEORA_CONFIGURE_ENABLE= libtheora # twolame TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame TWOLAME_CONFIGURE_ENABLE= libtwolame # uavs3d UAVS3D_LIB_DEPENDS= libuavs3d.so:multimedia/uavs3d UAVS3D_CONFIGURE_ENABLE= libuavs3d # vaapi VAAPI_LIB_DEPENDS= libva.so:multimedia/libva VAAPI_CONFIGURE_ENABLE= vaapi # vapoursynth VAPOURSYNTH_LIB_DEPENDS= libvapoursynth-script.so:multimedia/vapoursynth VAPOURSYNTH_CONFIGURE_ENABLE= vapoursynth # vdpau VDPAU_USES= xorg VDPAU_USE= XORG=x11 VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau VDPAU_CONFIGURE_ENABLE= vdpau # vmaf VMAF_LIB_DEPENDS= libvmaf.so:multimedia/vmaf VMAF_CONFIGURE_ENABLE= libvmaf # vo-amrwbenc 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_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis VORBIS_CONFIGURE_ENABLE= libvorbis # vp8 VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx VPX_CONFIGURE_ENABLE= libvpx # vulkan VULKAN_BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader VULKAN_CONFIGURE_ENABLE= vulkan # webp WEBP_LIB_DEPENDS= libwebp.so:graphics/webp WEBP_CONFIGURE_ENABLE= libwebp # x264 X264_LIB_DEPENDS= libx264.so:multimedia/libx264 X264_CONFIGURE_ENABLE= libx264 # 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 XCB_USES= xorg XCB_USE= XORG=xcb XCB_CONFIGURE_ENABLE= libxcb # xvid XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid XVID_CONFIGURE_ENABLE= libxvid # xv XVIDEO_USES= xorg XVIDEO_USE= XORG=x11,xext,xv XVIDEO_CONFIGURE_OFF= --disable-outdev=xv # zimg ZIMG_LIB_DEPENDS= libzimg.so:graphics/sekrit-twc-zimg ZIMG_CONFIGURE_ENABLE= libzimg # zmq ZMQ_LIB_DEPENDS= libzmq.so:net/libzmq${ZMQ_VERSION} ZMQ_CONFIGURE_ENABLE= libzmq ZMQ_VERSION?= 4 # zvbi 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 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 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 \ --enable-avresample \ --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 .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_PERMS_NONFREE= auto-accept .endif post-install: (cd ${WRKSRC} && ${COPYTREE_SHARE} \ "${DOC_FILES}" ${STAGEDIR}${DOCSDIR}) (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \ "${DOC_DOCFILES}" ${STAGEDIR}${DOCSDIR}) .include diff --git a/multimedia/ffmpeg4/files/patch-svtav1 b/multimedia/ffmpeg4/files/patch-svtav1 index e6cfac9482f5..dc32623e0d6a 100644 --- a/multimedia/ffmpeg4/files/patch-svtav1 +++ b/multimedia/ffmpeg4/files/patch-svtav1 @@ -1,467 +1,472 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/04b89e8ae33b https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/64e2fb3f9d89 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/0463f5d6d56d https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/c5f314309067 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/c33b4048859a https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/a2b090da7932 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/1dddb930aaf0 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/4e47ebf38b97 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/50bc87263576 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/d794b36a7788 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/51c0b9e829be https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/e3c4442b249a https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/6fd1533057ff https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ded0334d214f https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/70887d44ffa3 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe100bc556d7 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/031f1561cd28 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/1c6fd7d756af https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/96748ac54f99 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe196fd29a67 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/a5d4c398b411 --- configure.orig 2021-10-24 20:47:11 UTC +++ configure @@ -6430,7 +6430,7 @@ enabled libsrt && require_pkg_config libsrt enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket -enabled libsvtav1 && require_pkg_config libsvtav1 "SvtAv1Enc >= 0.8.4" EbSvtAv1Enc.h svt_av1_enc_init_handle +enabled libsvtav1 && require_pkg_config libsvtav1 "SvtAv1Enc >= 0.9.0" EbSvtAv1Enc.h svt_av1_enc_init_handle enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow enabled libtesseract && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg --- doc/encoders.texi.orig 2021-10-24 20:47:07 UTC +++ doc/encoders.texi @@ -1754,28 +1754,15 @@ Set the operating point tier. @item tier Set the operating point tier. -@item rc -Set the rate control mode to use. - -Possible modes: -@table @option -@item cqp -Constant quantizer: use fixed values of qindex (dependent on the frame type) -throughout the stream. This mode is the default. - -@item vbr -Variable bitrate: use a target bitrate for the whole stream. - -@item cvbr -Constrained variable bitrate: use a target bitrate for each GOP. -@end table - @item qmax Set the maximum quantizer to use when using a bitrate mode. @item qmin Set the minimum quantizer to use when using a bitrate mode. +@item crf +Constant rate factor value used in crf rate control mode (0-63). + @item qp Set the quantizer used in cqp rate control mode (0-63). @@ -1786,14 +1773,18 @@ Set number of frames to look ahead (0-120). Set number of frames to look ahead (0-120). @item preset -Set the quality-speed tradeoff, in the range 0 to 8. Higher values are -faster but lower quality. Defaults to 8 (highest speed). +Set the quality-speed tradeoff, in the range 0 to 13. Higher values are +faster but lower quality. @item tile_rows Set log2 of the number of rows of tiles to use (0-6). @item tile_columns Set log2 of the number of columns of tiles to use (0-4). + +@item svtav1-params +Set SVT-AV1 options using a list of @var{key}=@var{value} pairs separated +by ":". See the SVT-AV1 encoder user guide for a list of accepted parameters. @end table --- libavcodec/libsvtav1.c.orig 2021-10-24 20:47:07 UTC +++ libavcodec/libsvtav1.c @@ -60,17 +60,20 @@ typedef struct SvtContext { EOS_STATUS eos_flag; // User options. + AVDictionary *svtav1_opts; +#if FF_API_SVTAV1_OPTS int hierarchical_level; int la_depth; - int enc_mode; - int rc_mode; int scd; - int qp; int tier; int tile_columns; int tile_rows; +#endif + int enc_mode; + int crf; + int qp; } SvtContext; static const struct { @@ -120,16 +123,12 @@ static int alloc_buffer(EbSvtAv1EncConfiguration *conf static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) { - const int pack_mode_10bit = - (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; - const size_t luma_size_8bit = - config->source_width * config->source_height * (1 << pack_mode_10bit); - const size_t luma_size_10bit = - (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; + const size_t luma_size = config->source_width * config->source_height * + (config->encoder_bit_depth > 8 ? 2 : 1); EbSvtIOFormat *in_data; - svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; + svt_enc->raw_size = luma_size * 3 / 2; // allocate buffer for in and out svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); -@@ -151,11 +150,132 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -151,11 +150,136 @@ static int config_enc_params(EbSvtAv1EncConfiguration { SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; + AVDictionaryEntry *en = NULL; + // Update param from options +#if FF_API_SVTAV1_OPTS + if (svt_enc->hierarchical_level >= 0) + param->hierarchical_levels = svt_enc->hierarchical_level; + if (svt_enc->tier >= 0) + param->tier = svt_enc->tier; + if (svt_enc->scd >= 0) + param->scene_change_detection = svt_enc->scd; + if (svt_enc->tile_columns >= 0) + param->tile_columns = svt_enc->tile_columns; + if (svt_enc->tile_rows >= 0) + param->tile_rows = svt_enc->tile_rows; + + if (svt_enc->la_depth >= 0) + param->look_ahead_distance = svt_enc->la_depth; +#endif + + if (svt_enc->enc_mode >= 0) + param->enc_mode = svt_enc->enc_mode; + + if (avctx->bit_rate) { + param->target_bit_rate = avctx->bit_rate; + if (avctx->rc_max_rate != avctx->bit_rate) + param->rate_control_mode = 1; + else + param->rate_control_mode = 2; + + param->max_qp_allowed = avctx->qmax; + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; + if (avctx->bit_rate && avctx->rc_buffer_size) + param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; + param->rate_control_mode = 0; + } else if (svt_enc->qp > 0) { + param->qp = svt_enc->qp; + param->rate_control_mode = 0; ++#if SVT_AV1_CHECK_VERSION(4, 0, 0) ++ param->aq_mode = 0; ++#else + param->enable_adaptive_quantization = 0; ++#endif + } + + desc = av_pix_fmt_desc_get(avctx->pix_fmt); + param->color_primaries = avctx->color_primaries; + param->matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? + AVCOL_SPC_RGB : avctx->colorspace; + param->transfer_characteristics = avctx->color_trc; + + if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) + param->color_range = avctx->color_range == AVCOL_RANGE_JPEG; + else + param->color_range = !!(desc->flags & AV_PIX_FMT_FLAG_RGB); + +#if SVT_AV1_CHECK_VERSION(1, 0, 0) + if (avctx->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED) { + const char *name = + av_chroma_location_name(avctx->chroma_sample_location); + + switch (avctx->chroma_sample_location) { + case AVCHROMA_LOC_LEFT: + param->chroma_sample_position = EB_CSP_VERTICAL; + break; + case AVCHROMA_LOC_TOPLEFT: + param->chroma_sample_position = EB_CSP_COLOCATED; + break; + default: + if (!name) + break; + + av_log(avctx, AV_LOG_WARNING, + "Specified chroma sample location %s is unsupported " + "on the AV1 bit stream level. Usage of a container that " + "allows passing this information - such as Matroska - " + "is recommended.\n", + name); + break; + } + } +#endif + + if (avctx->profile != FF_PROFILE_UNKNOWN) + param->profile = avctx->profile; + + if (avctx->level != FF_LEVEL_UNKNOWN) + param->level = avctx->level; + + if (avctx->gop_size > 0) + param->intra_period_length = avctx->gop_size - 1; + + if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { + param->frame_rate_numerator = avctx->framerate.num; + param->frame_rate_denominator = avctx->framerate.den; + } else { + param->frame_rate_numerator = avctx->time_base.den; + param->frame_rate_denominator = avctx->time_base.num * avctx->ticks_per_frame; + } + + /* 2 = IDR, closed GOP, 1 = CRA, open GOP */ + param->intra_refresh_type = avctx->flags & AV_CODEC_FLAG_CLOSED_GOP ? 2 : 1; + +#if SVT_AV1_CHECK_VERSION(0, 9, 1) + while ((en = av_dict_get(svt_enc->svtav1_opts, "", en, AV_DICT_IGNORE_SUFFIX))) { + EbErrorType ret = svt_av1_enc_parse_parameter(param, en->key, en->value); + if (ret != EB_ErrorNone) { + int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING; + av_log(avctx, level, "Error parsing option %s: %s.\n", en->key, en->value); + if (avctx->err_recognition & AV_EF_EXPLODE) + return AVERROR(EINVAL); + } + } +#else + if ((en = av_dict_get(svt_enc->svtav1_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING; + av_log(avctx, level, "svt-params needs libavcodec to be compiled with SVT-AV1 " + "headers >= 0.9.1.\n"); + if (avctx->err_recognition & AV_EF_EXPLODE) + return AVERROR(ENOSYS); + } +#endif + param->source_width = avctx->width; param->source_height = avctx->height; - desc = av_pix_fmt_desc_get(avctx->pix_fmt); param->encoder_bit_depth = desc->comp[0].depth; if (desc->log2_chroma_w == 1 && desc->log2_chroma_h == 1) @@ -169,12 +289,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration return AVERROR(EINVAL); } - if (avctx->profile != FF_PROFILE_UNKNOWN) - param->profile = avctx->profile; - - if (avctx->level != FF_LEVEL_UNKNOWN) - param->level = avctx->level; - if ((param->encoder_color_format == EB_YUV422 || param->encoder_bit_depth > 10) && param->profile != FF_PROFILE_AV1_PROFESSIONAL ) { av_log(avctx, AV_LOG_WARNING, "Forcing Professional profile\n"); @@ -184,40 +298,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration param->profile = FF_PROFILE_AV1_HIGH; } - // Update param from options - param->hierarchical_levels = svt_enc->hierarchical_level; - param->enc_mode = svt_enc->enc_mode; - param->tier = svt_enc->tier; - param->rate_control_mode = svt_enc->rc_mode; - param->scene_change_detection = svt_enc->scd; - param->qp = svt_enc->qp; + avctx->bit_rate = param->rate_control_mode > 0 ? + param->target_bit_rate : 0; + avctx->rc_max_rate = param->max_bit_rate; + avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL; - param->target_bit_rate = avctx->bit_rate; + if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { + AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx); + if (!cpb_props) + return AVERROR(ENOMEM); - if (avctx->gop_size > 0) - param->intra_period_length = avctx->gop_size - 1; - - if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { - param->frame_rate_numerator = avctx->framerate.num; - param->frame_rate_denominator = avctx->framerate.den; - } else { - param->frame_rate_numerator = avctx->time_base.den; - param->frame_rate_denominator = avctx->time_base.num * avctx->ticks_per_frame; + cpb_props->buffer_size = avctx->rc_buffer_size; + cpb_props->max_bitrate = avctx->rc_max_rate; + cpb_props->avg_bitrate = avctx->bit_rate; } - if (param->rate_control_mode) { - param->max_qp_allowed = avctx->qmax; - param->min_qp_allowed = avctx->qmin; - } - - param->intra_refresh_type = 2; /* Real keyframes only */ - - if (svt_enc->la_depth >= 0) - param->look_ahead_distance = svt_enc->la_depth; - - param->tile_columns = svt_enc->tile_columns; - param->tile_rows = svt_enc->tile_rows; - return 0; } @@ -330,11 +425,8 @@ static int eb_send_frame(AVCodecContext *avctx, const if (svt_enc->eos_flag == EOS_SENT) return 0; - headerPtrLast.n_alloc_len = 0; - headerPtrLast.n_filled_len = 0; - headerPtrLast.n_tick_count = 0; - headerPtrLast.p_app_private = NULL; - headerPtrLast.p_buffer = NULL; + memset(&headerPtrLast, 0, sizeof(headerPtrLast)); + headerPtrLast.pic_type = EB_AV1_INVALID_PICTURE; headerPtrLast.flags = EB_BUFFERFLAG_EOS; svt_av1_enc_send_picture(svt_enc->svt_handle, &headerPtrLast); @@ -350,6 +442,16 @@ static int eb_send_frame(AVCodecContext *avctx, const headerPtr->p_app_private = NULL; headerPtr->pts = frame->pts; + switch (frame->pict_type) { + case AV_PICTURE_TYPE_I: + headerPtr->pic_type = EB_AV1_KEY_PICTURE; + break; + default: + // Actually means auto, or default. + headerPtr->pic_type = EB_AV1_INVALID_PICTURE; + break; + } + svt_av1_enc_send_picture(svt_enc->svt_handle, headerPtr); return 0; @@ -472,21 +574,22 @@ static const AVOption options[] = { #define OFFSET(x) offsetof(SvtContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { - { "hielevel", "Hierarchical prediction levels setting", OFFSET(hierarchical_level), - AV_OPT_TYPE_INT, { .i64 = 4 }, 3, 4, VE , "hielevel"}, +#if FF_API_SVTAV1_OPTS + { "hielevel", "Hierarchical prediction levels setting (Deprecated, use svtav1-params)", OFFSET(hierarchical_level), + AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"}, { "3level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3 }, INT_MIN, INT_MAX, VE, "hielevel" }, { "4level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 4 }, INT_MIN, INT_MAX, VE, "hielevel" }, - { "la_depth", "Look ahead distance [0, 120]", OFFSET(la_depth), - AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 120, VE }, + { "la_depth", "Look ahead distance [0, 120] (Deprecated, use svtav1-params)", OFFSET(la_depth), + AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 120, VE | AV_OPT_FLAG_DEPRECATED }, - { "preset", "Encoding preset [0, 8]", - OFFSET(enc_mode), AV_OPT_TYPE_INT, { .i64 = MAX_ENC_PRESET }, 0, MAX_ENC_PRESET, VE }, - - { "tier", "Set operating point tier", OFFSET(tier), - AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE, "tier" }, + { "tier", "Set operating point tier (Deprecated, use svtav1-params)", OFFSET(tier), + AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" }, { "main", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, VE, "tier" }, { "high", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, VE, "tier" }, +#endif + { "preset", "Encoding preset", + OFFSET(enc_mode), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, MAX_ENC_PRESET, VE }, FF_AV1_PROFILE_OPTS @@ -518,21 +621,20 @@ static const AVOption options[] = { { LEVEL("7.3", 73) }, #undef LEVEL - { "rc", "Bit rate control mode", OFFSET(rc_mode), - AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 3, VE , "rc"}, - { "cqp", "Constant quantizer", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "rc" }, - { "vbr", "Variable Bit Rate, use a target bitrate for the entire stream", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "rc" }, - { "cvbr", "Constrained Variable Bit Rate, use a target bitrate for each GOP", 0, AV_OPT_TYPE_CONST,{ .i64 = 2 }, INT_MIN, INT_MAX, VE, "rc" }, + { "crf", "Constant Rate Factor value", OFFSET(crf), + AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE }, + { "qp", "Initial Quantizer level value", OFFSET(qp), + AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE }, +#if FF_API_SVTAV1_OPTS + { "sc_detection", "Scene change detection (Deprecated, use svtav1-params)", OFFSET(scd), + AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED }, - { "qp", "Quantizer to use with cqp rate control mode", OFFSET(qp), - AV_OPT_TYPE_INT, { .i64 = 50 }, 0, 63, VE }, + { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED }, + { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 6, VE | AV_OPT_FLAG_DEPRECATED }, +#endif - { "sc_detection", "Scene change detection", OFFSET(scd), - AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, + { "svtav1-params", "Set the SVT-AV1 configuration using a :-separated list of key=value parameters", OFFSET(svtav1_opts), AV_OPT_TYPE_DICT, { 0 }, 0, 0, VE }, - { "tile_columns", "Log2 of number of tile columns to use", OFFSET(tile_columns), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, VE}, - { "tile_rows", "Log2 of number of tile rows to use", OFFSET(tile_rows), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 6, VE}, - {NULL}, }; @@ -544,9 +646,10 @@ static const AVCodecDefault eb_enc_defaults[] = { }; static const AVCodecDefault eb_enc_defaults[] = { - { "b", "7M" }, + { "b", "0" }, + { "flags", "+cgop" }, { "g", "-1" }, - { "qmin", "0" }, + { "qmin", "1" }, { "qmax", "63" }, { NULL }, }; @@ -561,12 +664,11 @@ AVCodec ff_libsvtav1_encoder = { .receive_packet = eb_receive_packet, .close = eb_enc_close, .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, - .caps_internal = FF_CODEC_CAP_AUTO_THREADS, + .caps_internal = FF_CODEC_CAP_AUTO_THREADS | FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_NONE }, .priv_class = &class, .defaults = eb_enc_defaults, - .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .wrapper_name = "libsvtav1", }; --- libavcodec/version.h.orig 2021-10-24 20:47:07 UTC +++ libavcodec/version.h @@ -168,5 +168,8 @@ #ifndef FF_API_INIT_PACKET #define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 60) #endif +#ifndef FF_API_SVTAV1_OPTS +#define FF_API_SVTAV1_OPTS (LIBAVCODEC_VERSION_MAJOR < 60) +#endif #endif /* AVCODEC_VERSION_H */ diff --git a/multimedia/gstreamer1-plugins-svt-av1/Makefile b/multimedia/gstreamer1-plugins-svt-av1/Makefile index 5c1ca5c951cf..04df0f0c3443 100644 --- a/multimedia/gstreamer1-plugins-svt-av1/Makefile +++ b/multimedia/gstreamer1-plugins-svt-av1/Makefile @@ -1,27 +1,28 @@ PORTNAME= svt-av1 DISTVERSIONPREFIX= v DISTVERSION= 3.1.0 +PORTREVISION= 1 CATEGORIES= multimedia PKGNAMEPREFIX= gstreamer1-plugins- MAINTAINER= jbeich@FreeBSD.org COMMENT= GStreamer (svt-av1) plugin WWW= https://01.org/svt LICENSE= LGPL21+ # based on SPDX header LICENSE_FILE= ${_LICENSE_STORE}/LGPL21 LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1 USES= gnome gstreamer meson pkgconfig USE_GITLAB= yes USE_GNOME= glib20 GL_ACCOUNT= AOMediaCodec GL_PROJECT= SVT-AV1 WRKSRC_SUBDIR= gstreamer-plugin PLIST_FILES= lib/gstreamer-1.0/libgstsvtav1enc.so post-patch: @${REINPLACE_CMD} '/-O2/d' ${WRKSRC}/meson.build .include diff --git a/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c b/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c index a7f88b9b8a4d..08d80231b203 100644 --- a/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c +++ b/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c @@ -1,15 +1,42 @@ https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2252 +https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/a6cdd54b4d8f --- gstsvtav1enc.c.orig 2025-02-20 14:51:11 UTC +++ gstsvtav1enc.c -@@ -535,10 +535,8 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E +@@ -277,7 +277,7 @@ static void gst_svtav1enc_class_init(GstSvtAv1EncClass + PROP_TARGET_SOCKET, + g_param_spec_int("target-socket", + "Target socket", +- "Target CPU socket to run on. -1: all available", ++ "Deprecated. This property is ignored in SVT-AV1 4.0.0 and later.", + -1, + 15, + PROP_TARGET_SOCKET_DEFAULT, +@@ -434,7 +434,7 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E + GST_DEBUG_OBJECT(svtav1enc, "Enabling CQP mode (qp %u)", svtav1enc->cqp); + svtav1enc->svt_config->qp = svtav1enc->cqp; + svtav1enc->svt_config->rate_control_mode = SVT_AV1_RC_MODE_CQP_OR_CRF; +- svtav1enc->svt_config->enable_adaptive_quantization = false; ++ svtav1enc->svt_config->aq_mode = 0; + svtav1enc->svt_config->force_key_frames = true; + } else { + GST_DEBUG_OBJECT(svtav1enc, "Using default rate control settings"); +@@ -442,7 +442,6 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E + svtav1enc->svt_config->intra_period_length = svtav1enc->intra_period_length; + svtav1enc->svt_config->intra_refresh_type = svtav1enc->intra_refresh_type; + svtav1enc->svt_config->level_of_parallelism = svtav1enc->level_of_parallelism; +- svtav1enc->svt_config->target_socket = svtav1enc->target_socket; + gst_svtav1enc_parse_parameters_string(svtav1enc); + + /* set properties out of GstVideoInfo */ +@@ -535,10 +534,8 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E svtav1enc->svt_config->mastering_display.white_point.y = master_display_info.white_point.y; svtav1enc->svt_config->mastering_display.max_luma = master_display_info.max_display_mastering_luminance; svtav1enc->svt_config->mastering_display.min_luma = master_display_info.min_display_mastering_luminance; - svtav1enc->svt_config->high_dynamic_range_input = true; } else { memset(&svtav1enc->svt_config->mastering_display, 0, sizeof(svtav1enc->svt_config->mastering_display)); - svtav1enc->svt_config->high_dynamic_range_input = false; } GstVideoContentLightLevel content_light_level; diff --git a/multimedia/svt-av1/Makefile b/multimedia/svt-av1/Makefile index 93418e7a54ac..73f1adba2665 100644 --- a/multimedia/svt-av1/Makefile +++ b/multimedia/svt-av1/Makefile @@ -1,36 +1,36 @@ PORTNAME= svt-av1 DISTVERSIONPREFIX= v -DISTVERSION= 3.1.2 +DISTVERSION= 4.0.0 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org COMMENT= Scalable AV1 encoder WWW= https://01.org/svt LICENSE= BSD2CLAUSE BSD3CLAUSE MIT LICENSE_COMB= multi LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/LICENSE-BSD2.md LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/LICENSE.md LICENSE_FILE_MIT= ${WRKSRC}/third_party/safestringlib/LICENSE BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} BUILD_DEPENDS_amd64= nasm:devel/nasm USES= cmake compiler:c11 USE_GITLAB= yes USE_LDCONFIG= yes GL_ACCOUNT= AOMediaCodec GL_PROJECT= SVT-AV1 CMAKE_OFF= NATIVE PLIST_SUB= VERSION=${DISTVERSION:C/-.*//} CONFLICTS_INSTALL= svt-av1-hdr # bin/SvtAv1EncApp OPTIONS_DEFINE= LTO OPTIONS_DEFAULT=LTO OPTIONS_EXCLUDE_riscv64= LTO # bug 262871 LTO_CMAKE_BOOL= CMAKE_INTERPROCEDURAL_OPTIMIZATION LTO_CMAKE_ON= -DCMAKE_POLICY_DEFAULT_CMP0069:STRING=NEW .include diff --git a/multimedia/svt-av1/distinfo b/multimedia/svt-av1/distinfo index 7cc9b63920a0..c915e9ad0c1b 100644 --- a/multimedia/svt-av1/distinfo +++ b/multimedia/svt-av1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1756053285 -SHA256 (SVT-AV1-v3.1.2.tar.bz2) = 802e9bb2b14f66e8c638f54857ccb84d3536144b0ae18b9f568bbf2314d2de88 -SIZE (SVT-AV1-v3.1.2.tar.bz2) = 10203273 +TIMESTAMP = 1769222341 +SHA256 (SVT-AV1-v4.0.0.tar.bz2) = 33512ba15e4e89632a6bcc87ee1be72917580ce470092f89b00c6b1dc9d3fea0 +SIZE (SVT-AV1-v4.0.0.tar.bz2) = 10225864 diff --git a/multimedia/svt-av1/files/patch-soversion b/multimedia/svt-av1/files/patch-soversion new file mode 100644 index 000000000000..1dc74f0b479e --- /dev/null +++ b/multimedia/svt-av1/files/patch-soversion @@ -0,0 +1,15 @@ +--- Source/Lib/CMakeLists.txt.orig 2026-01-24 02:39:01 UTC ++++ Source/Lib/CMakeLists.txt +@@ -12,9 +12,9 @@ + # Encoder Library directory CMakeLists.txt + + # Shared Encoder Version +-set(ENC_VERSION_MAJOR 3) +-set(ENC_VERSION_MINOR 1) +-set(ENC_VERSION_PATCH 2) ++set(ENC_VERSION_MAJOR 4) ++set(ENC_VERSION_MINOR 0) ++set(ENC_VERSION_PATCH 0) + set(ENC_VERSION ${ENC_VERSION_MAJOR}.${ENC_VERSION_MINOR}.${ENC_VERSION_PATCH}) + + add_library(common_lib INTERFACE) diff --git a/multimedia/svt-av1/patch-pgo b/multimedia/svt-av1/patch-pgo new file mode 100644 index 000000000000..84e3d1556acf --- /dev/null +++ b/multimedia/svt-av1/patch-pgo @@ -0,0 +1,18 @@ +--- CMakeLists.txt~ 2022-01-22 00:28:35.000000000 +0000 ++++ CMakeLists.txt 2022-01-22 19:45:27.784323311 +0000 +@@ -485,6 +485,7 @@ if(SVT_AV1_PGO) + COMMENT "Compiling with PGO generate" + DEPENDS SvtAv1EncApp SvtAv1DecApp) + add_custom_target(PGOCompileGenUse ++ llvm-profdata merge -o ${CMAKE_BINARY_DIR}/default.profdata ${CMAKE_BINARY_DIR}/default*.profraw; + ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR} -DSVT_INTERNAL_PGO_GENERATE=ON -DSVT_INTERNAL_PGO_USE=ON + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} + --clean-first +@@ -493,6 +494,7 @@ if(SVT_AV1_PGO) + COMMENT "Compiling PGO gen+use" + DEPENDS SvtAv1EncApp SvtAv1DecApp) + add_custom_target(PGOCompileUse ++ llvm-profdata merge -o ${CMAKE_BINARY_DIR}/default.profdata ${CMAKE_BINARY_DIR}/default*.profraw; + ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR} -DSVT_INTERNAL_PGO_GENERATE=OFF -DSVT_INTERNAL_PGO_USE=ON + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} + --clean-first diff --git a/multimedia/svt-av1/pkg-plist b/multimedia/svt-av1/pkg-plist index 40784db4e457..42600237659e 100644 --- a/multimedia/svt-av1/pkg-plist +++ b/multimedia/svt-av1/pkg-plist @@ -1,12 +1,16 @@ bin/SvtAv1EncApp include/svt-av1/EbConfigMacros.h include/svt-av1/EbDebugMacros.h include/svt-av1/EbSvtAv1.h include/svt-av1/EbSvtAv1Enc.h include/svt-av1/EbSvtAv1ErrorCodes.h include/svt-av1/EbSvtAv1Formats.h include/svt-av1/EbSvtAv1Metadata.h +lib/cmake/SVT-AV1/SVT-AV1-sharedTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/SVT-AV1/SVT-AV1-sharedTargets.cmake +lib/cmake/SVT-AV1/SVT-AV1Config.cmake +lib/cmake/SVT-AV1/SVT-AV1ConfigVersion.cmake lib/libSvtAv1Enc.so -lib/libSvtAv1Enc.so.3 +lib/libSvtAv1Enc.so.4 lib/libSvtAv1Enc.so.%%VERSION%% libdata/pkgconfig/SvtAv1Enc.pc