This makes use of the libebur128 port I posted a few hours ago
I've had most of this in my dir for a while, I actually got stumped on
something stupid in shotcut.

I've built and used shotcut with this without issue. I've also built
kdenlive, but I'm not too familiar with it.

Highlights:
- uses external libebur
- fix loads of warnings with clang (these patches haven been sent as
Issue to upstream)

Please test/okay

Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mlt/Makefile,v
retrieving revision 1.27
diff -u -p -r1.27 Makefile
--- Makefile    24 Aug 2020 14:09:54 -0000      1.27
+++ Makefile    7 Mar 2021 13:47:08 -0000
@@ -2,14 +2,14 @@
 
 COMMENT-main =         multimedia transformations framework
 COMMENT-gpl2 =         GPLv2-licensed modules for mlt
-VERSION =              6.22.1
+VERSION =              6.24.0
 DISTNAME =             mlt-${VERSION}
 PKGNAME-main =         ${DISTNAME}
 PKGNAME-gpl2 =         mlt-gpl2-${VERSION}
 
 # XXX versions should be kept in sync together
-SHARED_LIBS =          mlt             3.2
-SHARED_LIBS +=         mlt++           3.2
+SHARED_LIBS =          mlt             4.0
+SHARED_LIBS +=         mlt++           4.0
 
 CATEGORIES =           multimedia devel
 HOMEPAGE =             https://www.mltframework.org/
@@ -21,12 +21,13 @@ DEBUG_PACKAGES =    ${BUILD_PACKAGES}
 PERMIT_PACKAGE =       Yes
 
 WANTLIB-main += ${COMPILER_LIBCXX} SDL SDL2 SDL_image X11 avcodec avdevice
-WANTLIB-main += avfilter avformat avutil c exif fftw3 fontconfig gdk-x11-2.0
+WANTLIB-main += avfilter avformat avutil c exif fftw3 fontconfig
 WANTLIB-main += gdk_pixbuf-2.0 glib-2.0 gobject-2.0 jack m pango-1.0
 WANTLIB-main += pangoft2-1.0 sox swresample swscale vorbisfile xml2
+WANTLIB-main += ebur128
 
 WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Svg Qt5Widgets
-WANTLIB += Qt5Xml SDL2 exif m mlt samplerate
+WANTLIB += Qt5Xml SDL2 m mlt samplerate
 
 MASTER_SITES =         
https://github.com/mltframework/mlt/releases/download/v${VERSION}/
 
@@ -43,13 +44,14 @@ RUN_DEPENDS-main =  audio/ladspa \
                        x11/gtk+3,-guic
 
 LIB_DEPENDS-main =     audio/jack \
+                       audio/libebur128 \
                        audio/sox \
                        devel/sdl-image \
                        devel/sdl2 \
                        graphics/ffmpeg \
                        graphics/libexif \
                        math/fftw3 \
-                       x11/gtk+2,-main
+                       devel/pango
 
 LIB_DEPENDS-gpl2 =     ${BUILD_PKGPATH},-main \
                        ${MODQT5_LIB_DEPENDS} \
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/mlt/distinfo,v
retrieving revision 1.9
diff -u -p -r1.9 distinfo
--- distinfo    24 Aug 2020 14:09:54 -0000      1.9
+++ distinfo    7 Mar 2021 13:47:08 -0000
@@ -1,2 +1,2 @@
-SHA256 (mlt-6.22.1.tar.gz) = o9698LiBHw0gyQLMPfPQXa19P/NtHbFsCnM40NWYmZg=
-SIZE (mlt-6.22.1.tar.gz) = 1343746
+SHA256 (mlt-6.24.0.tar.gz) = O5d8VjIyn8p2NNADQWLfbVt5zeMla6xD57qDU6zO1h4=
+SIZE (mlt-6.24.0.tar.gz) = 1351427
Index: patches/patch-src_framework_Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mlt/patches/patch-src_framework_Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 patch-src_framework_Makefile
--- patches/patch-src_framework_Makefile        24 Aug 2020 14:09:54 -0000      
1.5
+++ patches/patch-src_framework_Makefile        7 Mar 2021 13:47:08 -0000
@@ -20,7 +20,17 @@ Index: src/framework/Makefile
  else
  NAME = libmlt$(LIBSUF)
  TARGET = $(NAME).$(version)
-@@ -100,10 +102,12 @@ all:     $(TARGET)
+@@ -92,18 +94,20 @@ OBJS += ../win32/win32.o ../win32/strptime.o
+ SRCS += ../win32/win32.c ../win32/strptime.c
+ endif
+ 
+-CFLAGS += $(RDYNAMIC) -DPREFIX_DATA="\"$(mltdatadir)\"" 
-DPREFIX_LIB="\"$(moduledir)\""
++CFLAGS += -DPREFIX_DATA="\"$(mltdatadir)\"" -DPREFIX_LIB="\"$(moduledir)\""
+ 
+-LDFLAGS += $(LIBDL) -lpthread -lm
++LDFLAGS += $(RDYNAMIC) $(LIBDL) -lpthread -lm
+ 
+ all:  $(TARGET)
  
  $(TARGET): $(OBJS)
                $(CC) $(SHFLAGS) -o $@ $(OBJS) $(LDFLAGS)
Index: patches/patch-src_framework_mlt_property_c
===================================================================
RCS file: /cvs/ports/multimedia/mlt/patches/patch-src_framework_mlt_property_c,v
retrieving revision 1.4
diff -u -p -r1.4 patch-src_framework_mlt_property_c
--- patches/patch-src_framework_mlt_property_c  24 Aug 2020 14:09:54 -0000      
1.4
+++ patches/patch-src_framework_mlt_property_c  7 Mar 2021 13:47:08 -0000
@@ -7,22 +7,7 @@ locale functions from dumping core!
 Index: src/framework/mlt_property.c
 --- src/framework/mlt_property.c.orig
 +++ src/framework/mlt_property.c
-@@ -90,8 +90,12 @@ struct mlt_property_s
- mlt_property mlt_property_init( )
- {
-       mlt_property self = calloc( 1, sizeof( *self ) );
--      if ( self )
--              pthread_mutex_init( &self->mutex, NULL );
-+      if ( self ) {
-+              pthread_mutexattr_t attr;
-+              pthread_mutexattr_init(&attr);
-+              pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
-+              pthread_mutex_init( &self->mutex, &attr );
-+      }
-       return self;
- }
- 
-@@ -311,7 +315,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -315,7 +315,7 @@ static int time_clock_to_frames( mlt_property self, co
        s = copy;
        pos = strrchr( s, ':' );
  
@@ -31,7 +16,7 @@ Index: src/framework/mlt_property.c
        char *orig_localename = NULL;
        if ( locale )
        {
-@@ -353,7 +357,7 @@ static int time_clock_to_frames( mlt_property self, co
+@@ -357,7 +357,7 @@ static int time_clock_to_frames( mlt_property self, co
                        seconds = strtod( s, NULL );
        }
  
@@ -40,7 +25,7 @@ Index: src/framework/mlt_property.c
        if ( locale ) {
                // Restore the current locale
                setlocale( LC_NUMERIC, orig_localename );
-@@ -529,7 +533,7 @@ static double mlt_property_atof( mlt_property self, do
+@@ -533,7 +533,7 @@ static double mlt_property_atof( mlt_property self, do
                if ( locale )
                        result = strtod_l( value, &end, locale );
                else
@@ -49,7 +34,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.
-@@ -547,7 +551,7 @@ static double mlt_property_atof( mlt_property self, do
+@@ -551,7 +551,7 @@ static double mlt_property_atof( mlt_property self, do
                if ( end && end[0] == '%' )
                        result /= 100.0;
  
@@ -58,7 +43,7 @@ Index: src/framework/mlt_property.c
                if ( locale ) {
                        // Restore the current locale
                        setlocale( LC_NUMERIC, orig_localename );
-@@ -775,7 +779,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
+@@ -779,7 +779,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
        }
        else if ( ! ( self->types & mlt_prop_string ) )
        {
@@ -67,7 +52,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__)
-@@ -821,7 +825,7 @@ char *mlt_property_get_string_l_tf( mlt_property self,
+@@ -825,7 +825,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 );
                }
@@ -76,7 +61,7 @@ Index: src/framework/mlt_property.c
                // Restore the current locale
                setlocale( LC_NUMERIC, orig_localename );
                free( orig_localename );
-@@ -1033,7 +1037,7 @@ static void time_clock_from_frames( int frames, double
+@@ -1037,7 +1037,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 )
  {
@@ -85,7 +70,7 @@ Index: src/framework/mlt_property.c
        char *orig_localename = NULL;
  #endif
        int frames = 0;
-@@ -1046,7 +1050,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
+@@ -1050,7 +1050,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
        if ( format == mlt_time_frames )
                return mlt_property_get_string_l( self, locale );
  
@@ -94,7 +79,7 @@ Index: src/framework/mlt_property.c
        // Use the specified locale
        if ( locale )
        {
-@@ -1105,7 +1109,7 @@ char *mlt_property_get_time( mlt_property self, mlt_ti
+@@ -1109,7 +1109,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 );
  
@@ -103,7 +88,7 @@ Index: src/framework/mlt_property.c
        // Restore the current locale
        if ( locale )
        {
-@@ -1149,7 +1153,7 @@ static int is_property_numeric( mlt_property self, loc
+@@ -1153,7 +1153,7 @@ static int is_property_numeric( mlt_property self, loc
                if ( locale )
                        strtod_l( self->prop_string, &p, locale );
                else
@@ -112,7 +97,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.
-@@ -1165,7 +1169,7 @@ static int is_property_numeric( mlt_property self, loc
+@@ -1169,7 +1169,7 @@ static int is_property_numeric( mlt_property self, loc
  
                strtod( self->prop_string, &p );
  
@@ -121,7 +106,7 @@ Index: src/framework/mlt_property.c
                if ( locale ) {
                        // Restore the current locale
                        setlocale( LC_NUMERIC, orig_localename );
-@@ -1650,7 +1654,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
+@@ -1654,7 +1654,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
                char *p = NULL;
                int count = 0;
  
@@ -130,7 +115,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.
-@@ -1702,7 +1706,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
+@@ -1706,7 +1706,7 @@ mlt_rect mlt_property_get_rect( mlt_property self, loc
                        count ++;
                }
  
Index: patches/patch-src_melt_Makefile
===================================================================
RCS file: patches/patch-src_melt_Makefile
diff -N patches/patch-src_melt_Makefile
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_melt_Makefile     7 Mar 2021 13:47:08 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Index: src/melt/Makefile
+--- src/melt/Makefile.orig
++++ src/melt/Makefile
+@@ -3,9 +3,9 @@ include ../../config.mak
+ OBJS = melt.o \
+          io.o
+ 
+-CFLAGS += -I.. $(RDYNAMIC) -DVERSION=\"$(version)\"
++CFLAGS += -I.. -DVERSION=\"$(version)\"
+ 
+-LDFLAGS += -L../framework -lmlt -lpthread
++LDFLAGS += $(RDYNAMIC) -L../framework -lmlt -lpthread
+ 
+ SRCS := $(OBJS:.o=.c)
+ 
Index: patches/patch-src_mlt++_Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mlt/patches/patch-src_mlt++_Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 patch-src_mlt++_Makefile
--- patches/patch-src_mlt++_Makefile    24 Aug 2020 14:09:54 -0000      1.5
+++ patches/patch-src_mlt++_Makefile    7 Mar 2021 13:47:08 -0000
@@ -13,6 +13,18 @@ Index: src/mlt++/Makefile
  else
        TARGET = $(NAME).$(version)
        SONAME = $(NAME).$(soversion)
+@@ -19,9 +23,9 @@ endif
+ ifneq (, $(shell $(CXX) --version | grep -is -e g++ -e clang))
+       CXXFLAGS += -std=c++11
+ endif
+-CXXFLAGS += -I.. $(RDYNAMIC) -DVERSION=\"$(version)\" -fvisibility=hidden
++CXXFLAGS += -I.. -DVERSION=\"$(version)\" -fvisibility=hidden
+ 
+-LDFLAGS := -L../framework -lmlt $(LDFLAGS)
++LDFLAGS := $(RDYNAMIC) -L../framework -lmlt $(LDFLAGS)
+ ifeq ($(targetos), Linux)
+ LDFLAGS += -Wl,--version-script=mlt++.vers
+ endif
 @@ -58,10 +62,12 @@ all:               $(TARGET)
  
  $(TARGET):    $(OBJS)
Index: patches/patch-src_modules_qt_Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mlt/patches/patch-src_modules_qt_Makefile,v
retrieving revision 1.4
diff -u -p -r1.4 patch-src_modules_qt_Makefile
--- patches/patch-src_modules_qt_Makefile       26 Apr 2019 13:39:16 -0000      
1.4
+++ patches/patch-src_modules_qt_Makefile       7 Mar 2021 13:47:08 -0000
@@ -3,7 +3,7 @@ XXX Dirty hack
 Index: src/modules/qt/Makefile
 --- src/modules/qt/Makefile.orig
 +++ src/modules/qt/Makefile
-@@ -34,6 +34,10 @@ ifdef USE_FFTW
+@@ -35,6 +35,10 @@ ifdef USE_FFTW
        CFLAGS += -DUSE_FFTW
  endif
  
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/multimedia/mlt/pkg/PLIST-main,v
retrieving revision 1.11
diff -u -p -r1.11 PLIST-main
--- pkg/PLIST-main      24 Aug 2020 14:09:54 -0000      1.11
+++ pkg/PLIST-main      7 Mar 2021 13:47:08 -0000
@@ -93,6 +93,7 @@ share/mlt/core/filter_audiomap.yml
 share/mlt/core/filter_audiowave.yml
 share/mlt/core/filter_brightness.yml
 share/mlt/core/filter_channelcopy.yml
+share/mlt/core/filter_choppy.yml
 share/mlt/core/filter_crop.yml
 share/mlt/core/filter_data_show.yml
 share/mlt/core/filter_fieldorder.yml
@@ -194,6 +195,7 @@ share/mlt/plus/filter_lift_gamma_gain.ym
 share/mlt/plus/filter_loudness.yml
 share/mlt/plus/filter_loudness_meter.yml
 share/mlt/plus/filter_lumakey.yml
+share/mlt/plus/filter_pillar_echo.yml
 share/mlt/plus/filter_rgblut.yml
 share/mlt/plus/filter_sepia.yml
 share/mlt/plus/filter_spot_remover.yml
@@ -416,6 +418,7 @@ share/mlt/profiles/vcd_pal
 share/mlt/profiles/vertical_hd_30
 share/mlt/profiles/vertical_hd_60
 share/mlt/qt/
+share/mlt/qt/filter_qtcrop.yml
 share/mlt/qt/filter_qtext.yml
 share/mlt/sdl/
 share/mlt/sdl/consumer_sdl.yml

Reply via email to