git: fc35060efaba - main - multimedia/mlt7: Update to 7.42.0

From: Max Brazhnikov <makc_at_FreeBSD.org>
Date: Thu, 22 Oct 2026 14:41:02 UTC
The branch main has been updated by makc:

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

commit fc35060efaba25b2efaef5d536b5392c418702a5
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2026-10-22 14:40:12 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2026-10-22 14:40:12 +0000

    multimedia/mlt7: Update to 7.42.0
    
    - Add PLACEBO option
    - Enable RNNOISE and options that do not pull new dependencies
    - Drop stale patch
    
    Release notes: https://github.com/mltframework/mlt/releases/tag/v7.42.0
---
 Mk/Uses/mlt.mk                      |   2 +-
 multimedia/mlt7-glaxnimate/Makefile |   5 +-
 multimedia/mlt7-qt/Makefile         |  11 +--
 multimedia/mlt7/Makefile            |  14 +++-
 multimedia/mlt7/distinfo            |   6 +-
 multimedia/mlt7/files/patch-ffmpeg9 | 153 ------------------------------------
 multimedia/mlt7/pkg-plist           |   3 +
 7 files changed, 26 insertions(+), 168 deletions(-)

diff --git a/Mk/Uses/mlt.mk b/Mk/Uses/mlt.mk
index adb2bc60ac4d..593d75a68992 100644
--- a/Mk/Uses/mlt.mk
+++ b/Mk/Uses/mlt.mk
@@ -37,7 +37,7 @@ _MLT_NODEPEND=	yes
 .  endif
 
 # Library dependencies
-_MLT7_VERSION=	7.40.0
+_MLT7_VERSION=	7.42.0
 _MLT7_PORTNAME=	mlt7
 _MLT7_LIB=	libmlt-7.so
 _MLT7_MELT=	${LOCALBASE}/bin/melt-7
diff --git a/multimedia/mlt7-glaxnimate/Makefile b/multimedia/mlt7-glaxnimate/Makefile
index 7b120f7b5f4b..1ece23204de7 100644
--- a/multimedia/mlt7-glaxnimate/Makefile
+++ b/multimedia/mlt7-glaxnimate/Makefile
@@ -16,8 +16,9 @@ USE_XORG=	x11
 CMAKE_ON=	MOD_GLAXNIMATE_QT6
 CMAKE_OFF=	MOD_AVFORMAT MOD_DECKLINK MOD_FREI0R MOD_GDK MOD_JACKRACK \
 		MOD_KDENLIVE MOD_MOVIT MOD_NORMALIZE MOD_OLDFILM MOD_OPENCV \
-		MOD_PLUSGPL MOD_PLUS MOD_QT6 MOD_RESAMPLE MOD_RNNOISE MOD_RTAUDIO \
-		MOD_RUBBERBAND MOD_SDL2 MOD_SOX MOD_VIDSTAB MOD_VORBIS \
+		MOD_PLACEBO MOD_PLUSGPL MOD_PLUS MOD_QT6 MOD_RESAMPLE \
+		MOD_RNNOISE MOD_RTAUDIO MOD_RUBBERBAND \
+		MOD_SDL2 MOD_SOX MOD_VIDSTAB MOD_VORBIS \
 		MOD_XINE MOD_XML \
 		SWIG_CSHARP SWIG_JAVA SWIG_LUA SWIG_NODEJS \
 		SWIG_PERL SWIG_PHP SWIG_PYTHON SWIG_RUBY SWIG_TCL \
diff --git a/multimedia/mlt7-qt/Makefile b/multimedia/mlt7-qt/Makefile
index b88236a5a7ec..47eef06e3bfa 100644
--- a/multimedia/mlt7-qt/Makefile
+++ b/multimedia/mlt7-qt/Makefile
@@ -17,11 +17,12 @@ USE_XORG=	x11
 
 # Only enable Qt binding, and disable everything else
 CMAKE_ON=	MOD_QT6
-CMAKE_OFF=	MOD_AVFORMAT MOD_DECKLINK MOD_FEEDS MOD_FREI0R MOD_GDK MOD_GTK2 \
-		MOD_JACKRACK MOD_KDENLIVE MOD_LUMAS MOD_MOTION_EST MOD_MOVIT MOD_NORMALIZE \
-		MOD_OLDFILM MOD_OPENCV MOD_OPENGL MOD_PLUSGPL MOD_PLUS MOD_RESAMPLE \
-		MOD_RNNOISE MOD_RTAUDIO MOD_RUBBERBAND MOD_SDL2 MOD_SOX MOD_VIDSTAB MOD_VMFX \
-		MOD_VORBIS MOD_XINE MOD_XML \
+CMAKE_OFF=	MOD_AVFORMAT MOD_DECKLINK MOD_FREI0R MOD_GDK MOD_JACKRACK \
+		MOD_KDENLIVE MOD_MOVIT MOD_NORMALIZE MOD_OLDFILM MOD_OPENCV \
+		MOD_PLACEBO MOD_PLUSGPL MOD_PLUS MOD_RESAMPLE \
+		MOD_RNNOISE MOD_RTAUDIO MOD_RUBBERBAND \
+		MOD_SDL2 MOD_SOX MOD_VIDSTAB MOD_VORBIS \
+		MOD_XINE MOD_XML \
 		SWIG_CSHARP SWIG_JAVA SWIG_LUA SWIG_NODEJS SWIG_PERL \
 		SWIG_PHP SWIG_PYTHON SWIG_RUBY SWIG_TCL \
 		USE_LV2 USE_VST2
diff --git a/multimedia/mlt7/Makefile b/multimedia/mlt7/Makefile
index ea361e792fa3..9d32e0b5daa2 100644
--- a/multimedia/mlt7/Makefile
+++ b/multimedia/mlt7/Makefile
@@ -39,13 +39,14 @@ PORTDOCS=	AUTHORS NEWS
 PORTEXAMPLES=	demo
 
 OPTIONS_DEFINE=		DOCS EXAMPLES
-OPTIONS_DEFAULT=	AVFORMAT FREI0R GDK MOVIT KDENLIVE NORMALIZE OPENFX PLUS \
-			PLUSGPL RESAMPLE SDL2 SOX VIDSTAB VORBIS
+OPTIONS_DEFAULT=	AVFORMAT FREI0R GDK KDENLIVE MOVIT NORMALIZE \
+			OLDFILM OPENFX PLACEBO PLUS PLUSGPL RESAMPLE \
+			RNNOISE SDL2 SOX VIDSTAB VORBIS XINE
 
 OPTIONS_GROUP=		MODULES
 OPTIONS_GROUP_MODULES=	AVFORMAT FREI0R GDK JACKRACK KDENLIVE MOVIT NORMALIZE \
-			OLDFILM OPENCV OPENFX PLUS PLUSGPL RESAMPLE RNNOISE \
-			RTAUDIO RUBBERBAND SDL2 SOX VIDSTAB VORBIS XINE
+			OLDFILM OPENCV OPENFX PLACEBO PLUS PLUSGPL RESAMPLE \
+			RNNOISE RTAUDIO RUBBERBAND SDL2 SOX VIDSTAB VORBIS XINE
 OPTIONS_SUB=		yes
 
 AVFORMAT_DESC=		Enable avformat module
@@ -94,6 +95,11 @@ OPENCV_CMAKE_BOOL=	MOD_OPENCV
 OPENFX_DESC=		Enable OpenFX module
 OPENFX_CMAKE_BOOL=	MOD_OPENFX
 
+PLACEBO_DESC=		Enable libplacebo GPU module
+PLACEBO_BUILD_DEPENDS=	vulkan-headers>0:graphics/vulkan-headers
+PLACEBO_LIB_DEPENDS=	libplacebo.so:graphics/libplacebo
+PLACEBO_CMAKE_BOOL=	MOD_PLACEBO
+
 PLUSGPL_DESC=		Enable plus GPL module
 PLUSGPL_CMAKE_BOOL=	MOD_PLUSGPL
 
diff --git a/multimedia/mlt7/distinfo b/multimedia/mlt7/distinfo
index ce8c6c18aac7..c130e2ac440d 100644
--- a/multimedia/mlt7/distinfo
+++ b/multimedia/mlt7/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1788731262
-SHA256 (mlt-7.40.0.tar.gz) = f11c30e21670f62a3dfc56a31306ac02f3feea00908a2821a4a0bf3e989d3d6a
-SIZE (mlt-7.40.0.tar.gz) = 6775875
+TIMESTAMP = 1792659997
+SHA256 (mlt-7.42.0.tar.gz) = 8800e343f43aaa885bd5d9d23553030fa220aa3e2f0c94d9fd6a936d41638cdd
+SIZE (mlt-7.42.0.tar.gz) = 6819514
diff --git a/multimedia/mlt7/files/patch-ffmpeg9 b/multimedia/mlt7/files/patch-ffmpeg9
deleted file mode 100644
index 71cb3167d95a..000000000000
--- a/multimedia/mlt7/files/patch-ffmpeg9
+++ /dev/null
@@ -1,153 +0,0 @@
-From 06c4785f951c087c700de942362d1d1c68ffe500 Mon Sep 17 00:00:00 2001
-From: Dan Dennedy <dan@dennedy.org>
-Date: Thu, 6 Aug 2026 17:14:24 -0700
-Subject: [PATCH] Fix #1280 support for FFmpeg 9 (#1281)
-
---- src/modules/avformat/consumer_avformat.c.orig	2026-06-25 00:09:29 UTC
-+++ src/modules/avformat/consumer_avformat.c
-@@ -629,7 +629,8 @@ static void apply_properties(void *obj, mlt_properties
-                 || (opt_name[0] == 'a' && (flags & AV_OPT_FLAG_AUDIO_PARAM))))
-             opt = av_opt_find(obj, ++opt_name, NULL, flags, search_flags);
-         // Apply option if found
--        if (opt && strcmp(opt_name, "channel_layout") && strcmp(opt_name, "frame_duration"))
-+        if (opt && strcmp(opt_name, "channel_layout") && strcmp(opt_name, "frame_duration")
-+            && strcmp(opt_name, "dc"))
-             av_opt_set(obj, opt_name, mlt_properties_get_value(properties, i), search_flags);
-     }
- }
-@@ -680,7 +681,6 @@ static int pick_sample_fmt(mlt_properties properties, 
- {
-     int sample_fmt = AV_SAMPLE_FMT_S16;
-     const char *format = mlt_properties_get(properties, "mlt_audio_format");
--    const int *p = codec->sample_fmts;
-     const char *sample_fmt_str = mlt_properties_get(properties, "sample_fmt");
- 
-     if (sample_fmt_str)
-@@ -699,13 +699,29 @@ static int pick_sample_fmt(mlt_properties properties, 
-         else if (!strcmp(format, "float"))
-             sample_fmt = AV_SAMPLE_FMT_FLTP;
-     }
-+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
-+    const enum AVSampleFormat *sample_fmts = NULL;
-+    avcodec_get_supported_config(NULL,
-+                                 codec,
-+                                 AV_CODEC_CONFIG_SAMPLE_FORMAT,
-+                                 0,
-+                                 (const void **) &sample_fmts,
-+                                 NULL);
-+    const int *p = (const int *) sample_fmts;
-+#else
-+    const int *p = codec->sample_fmts;
-+#endif
-     // check if codec supports our mlt_audio_format
--    for (; *p != -1; p++) {
-+    for (; p && *p != -1; p++) {
-         if (*p == sample_fmt)
-             return sample_fmt;
-     }
-     // no match - pick first one we support
-+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
-+    for (p = (const int *) sample_fmts; p && *p != -1; p++) {
-+#else
-     for (p = codec->sample_fmts; *p != -1; p++) {
-+#endif
-         switch (*p) {
-         case AV_SAMPLE_FMT_U8:
-         case AV_SAMPLE_FMT_S16:
-@@ -980,9 +996,25 @@ static AVStream *add_video_stream(mlt_consumer consume
-         c->framerate = av_inv_q(c->time_base);
- 
-         // Default to the codec's first pix_fmt if possible.
-+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
-+        {
-+            const enum AVPixelFormat *video_pix_fmts = NULL;
-+            if (codec)
-+                avcodec_get_supported_config(NULL,
-+                                             codec,
-+                                             AV_CODEC_CONFIG_PIX_FORMAT,
-+                                             0,
-+                                             (const void **) &video_pix_fmts,
-+                                             NULL);
-+            c->pix_fmt = pix_fmt ? av_get_pix_fmt(pix_fmt)
-+                         : codec ? (video_pix_fmts ? video_pix_fmts[0] : AV_PIX_FMT_YUV422P)
-+                                 : AV_PIX_FMT_YUV420P;
-+        }
-+#else
-         c->pix_fmt = pix_fmt ? av_get_pix_fmt(pix_fmt)
-                      : codec ? (codec->pix_fmts ? codec->pix_fmts[0] : AV_PIX_FMT_YUV422P)
-                              : AV_PIX_FMT_YUV420P;
-+#endif
- 
-         if (AV_PIX_FMT_VAAPI == c->pix_fmt) {
-             int result = init_vaapi(properties, c);
-@@ -1082,7 +1114,9 @@ static AVStream *add_video_stream(mlt_consumer consume
-         c->rc_override_count = i;
-         if (!c->rc_initial_buffer_occupancy)
-             c->rc_initial_buffer_occupancy = c->rc_buffer_size * 3 / 4;
-+#if LIBAVCODEC_VERSION_INT < ((62 << 16) + (25 << 8) + 100)
-         c->intra_dc_precision = mlt_properties_get_int(properties, "dc") - 8;
-+#endif
- 
-         // Setup dual-pass
-         i = mlt_properties_get_int(properties, "pass");
-@@ -1199,6 +1233,26 @@ static int open_video(mlt_properties properties,
-                          AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM);
-     }
- 
-+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
-+    if (codec) {
-+        const enum AVPixelFormat *pix_fmts = NULL;
-+        avcodec_get_supported_config(NULL,
-+                                     codec,
-+                                     AV_CODEC_CONFIG_PIX_FORMAT,
-+                                     0,
-+                                     (const void **) &pix_fmts,
-+                                     NULL);
-+        if (pix_fmts) {
-+            const enum AVPixelFormat *p = pix_fmts;
-+            for (; *p != -1; p++) {
-+                if (*p == video_enc->pix_fmt)
-+                    break;
-+            }
-+            if (*p == -1)
-+                video_enc->pix_fmt = pix_fmts[0];
-+        }
-+    }
-+#else
-     if (codec && codec->pix_fmts) {
-         const enum AVPixelFormat *p = codec->pix_fmts;
-         for (; *p != -1; p++) {
-@@ -1208,6 +1262,7 @@ static int open_video(mlt_properties properties,
-         if (*p == -1)
-             video_enc->pix_fmt = codec->pix_fmts[0];
-     }
-+#endif
- 
-     const AVPixFmtDescriptor *srcDesc = av_pix_fmt_desc_get(video_enc->pix_fmt);
-     if (srcDesc->flags & AV_PIX_FMT_FLAG_RGB) {
- src/modules/avformat/consumer_avformat.c   | 61 ++++++++++++++++++++--
- src/modules/avformat/consumer_avformat.yml |  6 ++-
- 2 files changed, 63 insertions(+), 4 deletions(-)
-
---- src/modules/avformat/consumer_avformat.yml.orig	2026-06-25 00:09:29 UTC
-+++ src/modules/avformat/consumer_avformat.yml
-@@ -3,7 +3,7 @@ version: 7
- identifier: avformat
- title: FFmpeg Output
- version: 7
--copyright: Copyright (C) 2003-2019 Meltytech, LLC
-+copyright: Copyright (C) 2003-2026 Meltytech, LLC
- license: LGPL
- language: en
- url: http://www.ffmpeg.org/
-@@ -452,6 +452,10 @@ parameters:
-   - identifier: dc
-     title: Intra DC precision
-     type: integer
-+    description: >
-+      Sets intra_dc_precision for MPEG-2 encoding. The value is offset by 8,
-+      so the default of 8 means precision 0 (8-bit). Only relevant for
-+      MPEG-2; ignored on FFmpeg 8.0 and later.
-     default: 8
- 
-   - identifier: muxdelay
diff --git a/multimedia/mlt7/pkg-plist b/multimedia/mlt7/pkg-plist
index efb12e14bd43..890e373fc397 100644
--- a/multimedia/mlt7/pkg-plist
+++ b/multimedia/mlt7/pkg-plist
@@ -82,6 +82,7 @@ lib/mlt-7/libmltcore.so
 %%OLDFILM%%lib/mlt-7/libmltoldfilm.so
 %%OPENCV%%lib/mlt-7/libmltopencv.so
 %%OPENFX%%lib/mlt-7/libmltopenfx.so
+%%PLACEBO%%lib/mlt-7/libmltplacebo.so
 %%PLUS%%lib/mlt-7/libmltplus.so
 %%PLUSGPL%%lib/mlt-7/libmltplusgpl.so
 %%RESAMPLE%%lib/mlt-7/libmltresample.so
@@ -230,6 +231,8 @@ share/man/man1/melt-7.1.gz
 %%OLDFILM%%%%DATADIR%%/oldfilm/vignette.svg
 %%OPENCV%%%%DATADIR%%/opencv/filter_opencv_tracker.yml
 %%OPENFX%%%%DATADIR%%/openfx/filter_openfx.yml
+%%PLACEBO%%%%DATADIR%%/placebo/filter_placebo_render.yml
+%%PLACEBO%%%%DATADIR%%/placebo/filter_placebo_shader.yml
 %%PLUS%%%%DATADIR%%/plus/consumer_blipflash.yml
 %%PLUS%%%%DATADIR%%/plus/filter_affine.yml
 %%PLUS%%%%DATADIR%%/plus/filter_charcoal.yml