Thanks to rafael for the initial port of mlt7.
However, latest stable shotcut wants a newer version of mlt7
Here's the combined diff.
The other consumer for mlt7, kdenlive, seems to build okay with it.
I've done minimal testing of shotcut, seems to work just fine.
Index: mlt7/Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mlt7/Makefile,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile
--- mlt7/Makefile 17 Dec 2021 15:09:18 -0000 1.3
+++ mlt7/Makefile 17 Dec 2021 15:40:24 -0000
@@ -2,7 +2,7 @@
COMMENT-main = multimedia transformations framework
COMMENT-gpl2 = GPLv2-licensed modules for mlt
-VERSION = 7.0.1
+VERSION = 7.2.0
DISTNAME = mlt-${VERSION}
PKGNAME-main = mlt7-${VERSION}
PKGNAME-gpl2 = mlt7-gpl2-${VERSION}
@@ -17,8 +17,8 @@ MASTER_SITES = \
DEBUG_PACKAGES = ${BUILD_PACKAGES}
# XXX versions should be kept in sync together
-SHARED_LIBS = mlt-7 0.0
-SHARED_LIBS += mlt++-7 0.0
+SHARED_LIBS = mlt-7 1.0
+SHARED_LIBS += mlt++-7 2.0
# GPLv2+, LGPLv2.1+
# Actually, qimage module could be under GPLv3+ if one more object
Index: mlt7/distinfo
===================================================================
RCS file: /cvs/ports/multimedia/mlt7/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 distinfo
--- mlt7/distinfo 16 Oct 2021 18:08:17 -0000 1.1.1.1
+++ mlt7/distinfo 17 Dec 2021 15:40:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (mlt-7.0.1.tar.gz) = toyI2a2RiJg4GGGIzOk4/u6LY+N1WjtvtF3Jwq4MXs0=
-SIZE (mlt-7.0.1.tar.gz) = 1181298
+SHA256 (mlt-7.2.0.tar.gz) = NLc3+uYdq93z7GRHcpjey5sgdjiMy9p+UBFJlrJoCG0=
+SIZE (mlt-7.2.0.tar.gz) = 1203489
Index: mlt7/patches/patch-src_framework_mlt_property_c
===================================================================
RCS file:
/cvs/ports/multimedia/mlt7/patches/patch-src_framework_mlt_property_c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-src_framework_mlt_property_c
--- mlt7/patches/patch-src_framework_mlt_property_c 16 Oct 2021 18:08:17
-0000 1.1.1.1
+++ mlt7/patches/patch-src_framework_mlt_property_c 17 Dec 2021 15:40:24
-0000
@@ -7,7 +7,7 @@ locale functions from dumping core!
Index: src/framework/mlt_property.c
--- src/framework/mlt_property.c.orig
+++ src/framework/mlt_property.c
-@@ -315,7 +315,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -320,7 +320,7 @@ static int time_clock_to_frames( mlt_property self, co
s = copy;
pos = strrchr( s, ':' );
@@ -16,7 +16,7 @@ Index: src/framework/mlt_property.c
char *orig_localename = NULL;
if ( locale )
{
-@@ -331,7 +331,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -336,7 +336,7 @@ static int time_clock_to_frames( mlt_property self, co
#endif
if ( pos ) {
@@ -25,7 +25,7 @@ Index: src/framework/mlt_property.c
if ( locale )
seconds = strtod_l( pos + 1, NULL, locale );
else
-@@ -349,7 +349,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -354,7 +354,7 @@ static int time_clock_to_frames( mlt_property self, co
}
}
else {
@@ -34,7 +34,7 @@ Index: src/framework/mlt_property.c
if ( locale )
seconds = strtod_l( s, NULL, locale );
else
-@@ -357,7 +357,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -362,7 +362,7 @@ static int time_clock_to_frames( mlt_property self, co
seconds = strtod( s, NULL );
}
@@ -43,7 +43,7 @@ Index: src/framework/mlt_property.c
if ( locale ) {
// Restore the current locale
setlocale( LC_NUMERIC, orig_localename );
-@@ -534,11 +534,11 @@ static double mlt_property_atof( mlt_property self, do
+@@ -539,11 +539,11 @@ static double mlt_property_atof( mlt_property self, do
char *end = NULL;
double result;
@@ -57,7 +57,7 @@ Index: src/framework/mlt_property.c
char *orig_localename = NULL;
if ( locale ) {
// Protect damaging the global locale from a temporary
locale on another thread.
-@@ -556,7 +556,7 @@ static double mlt_property_atof( mlt_property self, do
+@@ -561,7 +561,7 @@ static double mlt_property_atof( mlt_property self, do
if ( end && end[0] == '%' )
result /= 100.0;
@@ -66,7 +66,7 @@ Index: src/framework/mlt_property.c
if ( locale ) {
// Restore the current locale
setlocale( LC_NUMERIC, orig_localename );
-@@ -799,7 +799,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
+@@ -804,7 +804,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
}
else if ( ! ( self->types & mlt_prop_string ) )
{
@@ -75,7 +75,7 @@ Index: src/framework/mlt_property.c
// TODO: when glibc gets sprintf_l, start using it! For now,
hack on setlocale.
// Save the current locale
#if defined(__APPLE__)
-@@ -845,7 +845,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
+@@ -850,7 +850,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
self->types |= mlt_prop_string;
self->prop_string = self->serialiser( self->data,
self->length );
}
@@ -84,7 +84,7 @@ Index: src/framework/mlt_property.c
// Restore the current locale
setlocale( LC_NUMERIC, orig_localename );
free( orig_localename );
-@@ -1057,7 +1057,7 @@ static void time_clock_from_frames( int frames, double
+@@ -1062,7 +1062,7 @@ static void time_clock_from_frames( int frames, double
char *mlt_property_get_time( mlt_property self, mlt_time_format format,
double fps, locale_t locale )
{
@@ -93,7 +93,7 @@ Index: src/framework/mlt_property.c
char *orig_localename = NULL;
#endif
int frames = 0;
-@@ -1070,7 +1070,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
+@@ -1075,7 +1075,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
if ( format == mlt_time_frames )
return mlt_property_get_string_l( self, locale );
@@ -102,7 +102,7 @@ Index: src/framework/mlt_property.c
// Use the specified locale
if ( locale )
{
-@@ -1129,7 +1129,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
+@@ -1134,7 +1134,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
else // Use smpte drop frame by default
time_smpte_from_frames( frames, fps, self->prop_string, 1 );
@@ -111,7 +111,7 @@ Index: src/framework/mlt_property.c
// Restore the current locale
if ( locale )
{
-@@ -1169,11 +1169,11 @@ static int is_property_numeric( mlt_property self, loc
+@@ -1174,11 +1174,11 @@ static int is_property_numeric( mlt_property self, loc
{
char *p = NULL;
@@ -125,7 +125,7 @@ Index: src/framework/mlt_property.c
char *orig_localename = NULL;
if ( locale ) {
// Protect damaging the global locale from a temporary
locale on another thread.
-@@ -1189,7 +1189,7 @@ static int is_property_numeric( mlt_property self, loc
+@@ -1194,7 +1194,7 @@ static int is_property_numeric( mlt_property self, loc
strtod( self->prop_string, &p );
@@ -134,7 +134,7 @@ Index: src/framework/mlt_property.c
if ( locale ) {
// Restore the current locale
setlocale( LC_NUMERIC, orig_localename );
-@@ -1683,7 +1683,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
+@@ -1688,7 +1688,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
char *p = NULL;
int count = 0;
@@ -143,7 +143,7 @@ Index: src/framework/mlt_property.c
char *orig_localename = NULL;
if ( locale ) {
// Protect damaging the global locale from a temporary
locale on another thread.
-@@ -1700,7 +1700,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
+@@ -1705,7 +1705,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
while ( *value )
{
double temp;
@@ -152,7 +152,7 @@ Index: src/framework/mlt_property.c
if ( locale )
temp = strtod_l( value, &p, locale );
else
-@@ -1735,7 +1735,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
+@@ -1740,7 +1740,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
count ++;
}
Index: mlt7/pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/multimedia/mlt7/pkg/PLIST-main,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 PLIST-main
--- mlt7/pkg/PLIST-main 16 Oct 2021 18:08:17 -0000 1.1.1.1
+++ mlt7/pkg/PLIST-main 17 Dec 2021 15:40:24 -0000
@@ -313,9 +313,11 @@ share/mlt-7/presets/consumer/avformat/st
share/mlt-7/presets/consumer/avformat/stills/PPM
share/mlt-7/presets/consumer/avformat/stills/TGA
share/mlt-7/presets/consumer/avformat/stills/TIFF
+share/mlt-7/presets/consumer/avformat/stills/webp
share/mlt-7/presets/consumer/avformat/vp9
share/mlt-7/presets/consumer/avformat/webm
share/mlt-7/presets/consumer/avformat/webm-pass1
+share/mlt-7/presets/consumer/avformat/webp
share/mlt-7/presets/consumer/avformat/x264-medium
share/mlt-7/presets/consumer/avformat/x264-medium-baseline
share/mlt-7/presets/consumer/avformat/x264-medium-main
@@ -429,6 +431,7 @@ share/mlt-7/vorbis/
share/mlt-7/vorbis/producer_vorbis.yml
share/mlt-7/xml/
share/mlt-7/xml/consumer_xml.yml
+share/mlt-7/xml/filter_gpstext.yml
share/mlt-7/xml/mlt-xml.dtd
share/mlt-7/xml/producer_xml-nogl.yml
share/mlt-7/xml/producer_xml-string.yml
Index: shotcut/Makefile
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- shotcut/Makefile 5 Mar 2021 08:16:24 -0000 1.7
+++ shotcut/Makefile 17 Dec 2021 15:40:24 -0000
@@ -3,7 +3,7 @@
USE_WXNEEDED = Yes
COMMENT = video editor
-V = 21.01.29
+V = 21.10.31
DISTNAME = shotcut-$V
CATEGORIES = multimedia
@@ -22,7 +22,7 @@ WANTLIB += ${COMPILER_LIBCXX}
WANTLIB += GL Qt5Core Qt5Gui Qt5Multimedia Qt5Network Qt5OpenGL
WANTLIB += Qt5PrintSupport Qt5Qml Qt5Quick Qt5QuickWidgets Qt5Sql
WANTLIB += Qt5WebSockets Qt5Widgets
-WANTLIB += Qt5Xml c m mlt mlt++
+WANTLIB += Qt5Xml c m mlt-7 mlt++-7
WANTLIB += Qt5QuickControls2
WANTLIB += Qt5QmlModels
@@ -34,11 +34,11 @@ RUN_DEPENDS = audio/jack \
devel/desktop-file-utils \
devel/sdl2 \
misc/shared-mime-info \
- multimedia/mlt,-gpl2 \
+ multimedia/mlt7,-gpl2 \
x11/gtk+3,-guic \
x11/qt5/qtgraphicaleffects \
x11/qt5/qtquickcontrols
-LIB_DEPENDS = multimedia/mlt \
+LIB_DEPENDS = multimedia/mlt7 \
x11/qt5/qtmultimedia \
x11/qt5/qtwebsockets \
x11/qt5/qtquickcontrols2
Index: shotcut/distinfo
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- shotcut/distinfo 5 Mar 2021 08:16:24 -0000 1.5
+++ shotcut/distinfo 17 Dec 2021 15:40:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (shotcut-21.01.29.tar.gz) = LlXjbZU0R1jyILCBsfJfkOs9ATGwpK+dZYcXmAee6WE=
-SIZE (shotcut-21.01.29.tar.gz) = 4094623
+SHA256 (shotcut-21.10.31.tar.gz) = BI+vIRbC1uAcZFxkjY5V/00iw7FEchxM5GKjIjG7lMo=
+SIZE (shotcut-21.10.31.tar.gz) = 4408987
Index: shotcut/patches/patch-src_mainwindow_cpp
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/patches/patch-src_mainwindow_cpp,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_mainwindow_cpp
--- shotcut/patches/patch-src_mainwindow_cpp 11 Dec 2020 10:13:14 -0000
1.3
+++ shotcut/patches/patch-src_mainwindow_cpp 17 Dec 2021 15:40:24 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-src_mainwindow_cpp,v 1.3
Index: src/mainwindow.cpp
--- src/mainwindow.cpp.orig
+++ src/mainwindow.cpp
-@@ -128,7 +128,7 @@ MainWindow::MainWindow()
+@@ -131,7 +131,7 @@ MainWindow::MainWindow()
, m_keyframesDock(0)
{
#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
@@ -12,7 +12,7 @@ Index: src/mainwindow.cpp
if (!libJack.load()) {
QMessageBox::critical(this, qApp->applicationName(),
tr("Error: This program requires the JACK 1 library.\n\nPlease
install it using your package manager. It may be named libjack0,
jack-audio-connection-kit, jack, or similar."));
-@@ -136,7 +136,7 @@ MainWindow::MainWindow()
+@@ -139,7 +139,7 @@ MainWindow::MainWindow()
} else {
libJack.unload();
}
Index: shotcut/patches/patch-src_src_pro
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/patches/patch-src_src_pro,v
retrieving revision 1.4
diff -u -p -r1.4 patch-src_src_pro
--- shotcut/patches/patch-src_src_pro 5 Mar 2021 08:16:24 -0000 1.4
+++ shotcut/patches/patch-src_src_pro 17 Dec 2021 15:40:24 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-src_src_pro,v 1.4 2021/0
Index: src/src.pro
--- src/src.pro.orig
+++ src/src.pro
-@@ -445,6 +445,6 @@ unix:!mac {
+@@ -459,7 +459,7 @@ unix:!mac {
icon128.files =
$$PWD/../packaging/linux/icons/128x128/org.shotcut.Shotcut.png
icon128.path = $$PREFIX/share/icons/hicolor/128x128/apps
man.files = $$PWD/../packaging/linux/shotcut.1
@@ -11,3 +11,4 @@ Index: src/src.pro
+ man.path = $$PREFIX/man/man1
INSTALLS += metainfo desktop mime icon64 icon128 man
}
+
Index: shotcut/patches/patch-src_util_cpp
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/patches/patch-src_util_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_util_cpp
--- shotcut/patches/patch-src_util_cpp 5 Mar 2021 08:16:24 -0000 1.1
+++ shotcut/patches/patch-src_util_cpp 17 Dec 2021 15:40:24 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-src_util_cpp,v 1.1 2021/
Index: src/util.cpp
--- src/util.cpp.orig
+++ src/util.cpp
-@@ -501,5 +501,7 @@ bool Util::isMemoryLow()
+@@ -518,6 +518,8 @@ bool Util::isMemoryLow()
meminfo.close();
LOG_INFO() << "available RAM = " << availableKB << "KB";
return availableKB < kLowMemoryThresholdKB;
@@ -11,3 +11,4 @@ Index: src/util.cpp
+ return false;
#endif
}
+
Index: shotcut/pkg/PLIST
===================================================================
RCS file: /cvs/ports/multimedia/shotcut/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- shotcut/pkg/PLIST 5 Mar 2021 08:16:24 -0000 1.4
+++ shotcut/pkg/PLIST 17 Dec 2021 15:40:24 -0000
@@ -100,6 +100,10 @@ share/shotcut/qml/filters/bigsh0t_eq_to_
share/shotcut/qml/filters/bigsh0t_eq_to_rect/meta.qml
share/shotcut/qml/filters/bigsh0t_eq_to_rect/ui.qml
share/shotcut/qml/filters/bigsh0t_eq_to_rect/vui.qml
+share/shotcut/qml/filters/bigsh0t_eq_to_stereo/
+share/shotcut/qml/filters/bigsh0t_eq_to_stereo/meta.qml
+share/shotcut/qml/filters/bigsh0t_eq_to_stereo/ui.qml
+share/shotcut/qml/filters/bigsh0t_eq_to_stereo/vui.qml
share/shotcut/qml/filters/bigsh0t_hemi_to_eq/
share/shotcut/qml/filters/bigsh0t_hemi_to_eq/meta.qml
share/shotcut/qml/filters/bigsh0t_hemi_to_eq/ui.qml
@@ -172,6 +176,9 @@ share/shotcut/qml/filters/crop_rectangle
share/shotcut/qml/filters/dance/
share/shotcut/qml/filters/dance/meta_dance.qml
share/shotcut/qml/filters/dance/ui_dance.qml
+share/shotcut/qml/filters/deband/
+share/shotcut/qml/filters/deband/meta.qml
+share/shotcut/qml/filters/deband/ui.qml
share/shotcut/qml/filters/distort/
share/shotcut/qml/filters/distort/meta.qml
share/shotcut/qml/filters/distort/ui.qml
@@ -214,6 +221,10 @@ share/shotcut/qml/filters/glow/meta_frei
share/shotcut/qml/filters/glow/meta_movit.qml
share/shotcut/qml/filters/glow/ui_frei0r.qml
share/shotcut/qml/filters/glow/ui_movit.qml
+share/shotcut/qml/filters/gpstext/
+share/shotcut/qml/filters/gpstext/meta.qml
+share/shotcut/qml/filters/gpstext/ui.qml
+share/shotcut/qml/filters/gpstext/vui.qml
share/shotcut/qml/filters/gradient/
share/shotcut/qml/filters/gradient/meta.qml
share/shotcut/qml/filters/gradient/ui.qml
@@ -264,6 +275,9 @@ share/shotcut/qml/filters/mask_alphaspot
share/shotcut/qml/filters/mask_apply/
share/shotcut/qml/filters/mask_apply/meta.qml
share/shotcut/qml/filters/mask_apply/ui.qml
+share/shotcut/qml/filters/mask_chromakey/
+share/shotcut/qml/filters/mask_chromakey/meta.qml
+share/shotcut/qml/filters/mask_chromakey/ui.qml
share/shotcut/qml/filters/mask_shape/
share/shotcut/qml/filters/mask_shape/meta.qml
share/shotcut/qml/filters/mask_shape/ui.qml
@@ -303,6 +317,9 @@ share/shotcut/qml/filters/pillar_echo/vu
share/shotcut/qml/filters/posterize/
share/shotcut/qml/filters/posterize/meta.qml
share/shotcut/qml/filters/posterize/ui.qml
+share/shotcut/qml/filters/reflect/
+share/shotcut/qml/filters/reflect/meta.qml
+share/shotcut/qml/filters/reflect/ui.qml
share/shotcut/qml/filters/rgbsplit0r/
share/shotcut/qml/filters/rgbsplit0r/meta.qml
share/shotcut/qml/filters/rgbsplit0r/ui.qml
@@ -366,6 +383,9 @@ share/shotcut/qml/filters/tcolor/ui.qml
share/shotcut/qml/filters/threshold/
share/shotcut/qml/filters/threshold/meta.qml
share/shotcut/qml/filters/threshold/ui.qml
+share/shotcut/qml/filters/time_remap/
+share/shotcut/qml/filters/time_remap/meta.qml
+share/shotcut/qml/filters/time_remap/ui.qml
share/shotcut/qml/filters/timer/
share/shotcut/qml/filters/timer/ClockSpinner.qml
share/shotcut/qml/filters/timer/meta.qml
@@ -406,11 +426,14 @@ share/shotcut/qml/modules/Shotcut/Contro
share/shotcut/qml/modules/Shotcut/Controls/ColorPicker.qml
share/shotcut/qml/modules/Shotcut/Controls/ComboBox.qml
share/shotcut/qml/modules/Shotcut/Controls/DoubleSpinBox.qml
+share/shotcut/qml/modules/Shotcut/Controls/EditMenu.qml
share/shotcut/qml/modules/Shotcut/Controls/Gauge.qml
share/shotcut/qml/modules/Shotcut/Controls/GradientControl.qml
share/shotcut/qml/modules/Shotcut/Controls/HoverTip.qml
share/shotcut/qml/modules/Shotcut/Controls/KeyframableFilter.qml
share/shotcut/qml/modules/Shotcut/Controls/KeyframesButton.qml
+share/shotcut/qml/modules/Shotcut/Controls/Marker.qml
+share/shotcut/qml/modules/Shotcut/Controls/MarkerBar.qml
share/shotcut/qml/modules/Shotcut/Controls/Preset.qml
share/shotcut/qml/modules/Shotcut/Controls/RectangleControl.qml
share/shotcut/qml/modules/Shotcut/Controls/SaveDefaultButton.qml
@@ -419,6 +442,7 @@ share/shotcut/qml/modules/Shotcut/Contro
share/shotcut/qml/modules/Shotcut/Controls/TextFilterUi.qml
share/shotcut/qml/modules/Shotcut/Controls/TextFilterVui.qml
share/shotcut/qml/modules/Shotcut/Controls/TimeSpinner.qml
+share/shotcut/qml/modules/Shotcut/Controls/TipBox.qml
share/shotcut/qml/modules/Shotcut/Controls/ToggleButton.qml
share/shotcut/qml/modules/Shotcut/Controls/ToolButton.qml
share/shotcut/qml/modules/Shotcut/Controls/UndoButton.qml
@@ -483,6 +507,7 @@ share/shotcut/translations/shotcut_oc.qm
share/shotcut/translations/shotcut_pl.qm
share/shotcut/translations/shotcut_pt_BR.qm
share/shotcut/translations/shotcut_pt_PT.qm
+share/shotcut/translations/shotcut_ro.qm
share/shotcut/translations/shotcut_ru.qm
share/shotcut/translations/shotcut_sk.qm
share/shotcut/translations/shotcut_sl.qm