From: Rafael Sadowski Subject: UPDATE: multimedia/mlt7 To: ports@openbsd.org Date: Fri, 19 Dec 2025 21:37:02 +0100 Here is a diff to update mlt7 to the latest upstream version. Keep in mind you need multimedia/movit (see ports@) as a new dependency. All consumers are happy with 7.34.1. diff --git a/multimedia/mlt7/Makefile b/multimedia/mlt7/Makefile index 9277b9e04f4..c10f828e363 100644 --- a/multimedia/mlt7/Makefile +++ b/multimedia/mlt7/Makefile @@ -1,7 +1,6 @@ COMMENT-main = multimedia transformations framework COMMENT-gpl2 = GPLv2-licensed modules for mlt -V = 7.32.0 -REVISION = 0 +V = 7.34.1 DISTNAME = mlt-${V} PKGNAME-main = mlt7-${V} PKGNAME-gpl2 = mlt7-gpl2-${V} @@ -15,22 +14,22 @@ SITES = https://github.com/mltframework/mlt/releases/download/v${V}/ DEBUG_PACKAGES = ${BUILD_PACKAGES} # XXX versions should be kept in sync together -SHARED_LIBS = mlt-7 5.0 -SHARED_LIBS += mlt++-7 5.0 +SHARED_LIBS = mlt-7 6.0 +SHARED_LIBS += mlt++-7 6.0 # GPLv2+, LGPLv2.1+ # Actually, qimage module could be under GPLv3+ if one more object # file gets included, see --enable-gpl3 configure option. PERMIT_PACKAGE = Yes -WANTLIB-main += ${COMPILER_LIBCXX} SDL SDL2 X11 avcodec avdevice avfilter -WANTLIB-main += avformat avutil c ebur128 exif fftw3 fontconfig freetype -WANTLIB-main += gdk_pixbuf-2.0 glib-2.0 gobject-2.0 harfbuzz intl jack -WANTLIB-main += m pango-1.0 pangoft2-1.0 sox_ng swresample swscale vorbis -WANTLIB-main += vorbisfile xml2 +WANTLIB-main += ${COMPILER_LIBCXX} GL SDL2 X11 avcodec avdevice avfilter +WANTLIB-main += avformat avutil c ebur128 epoxy exif fftw3 fontconfig +WANTLIB-main += freetype gdk_pixbuf-2.0 glib-2.0 gobject-2.0 harfbuzz +WANTLIB-main += intl m movit pango-1.0 pangoft2-1.0 sox_ng swresample +WANTLIB-main += swscale vorbis vorbisfile xml2 -WANTLIB-gpl2 += ${COMPILER_LIBCXX} GL Qt5Core Qt5Gui Qt5Svg Qt5Widgets -WANTLIB-gpl2 += Qt5Xml Qt6Core Qt6Core5Compat Qt6Gui Qt6Svg Qt6SvgWidgets +WANTLIB-gpl2 += ${COMPILER_LIBCXX} GL Qt5Core Qt5Gui Qt5Widgets Qt5Xml +WANTLIB-gpl2 += Qt6Core Qt6Core5Compat Qt6Gui Qt6Svg Qt6SvgWidgets WANTLIB-gpl2 += Qt6Widgets Qt6Xml exif fftw3 m mlt++-7 mlt-7 pulse WANTLIB-gpl2 += pulse-simple samplerate vidstab @@ -48,13 +47,11 @@ RUN_DEPENDS-main = audio/ladspa \ multimedia/frei0r-plugins \ x11/gtk+4,-guic -LIB_DEPENDS-main = audio/jack \ - audio/libebur128 \ +LIB_DEPENDS-main = audio/libebur128 \ audio/sox \ devel/pango \ - devel/sdl \ - devel/sdl2 \ graphics/ffmpeg \ + multimedia/movit \ graphics/gdk-pixbuf2 \ graphics/libexif \ math/fftw3 @@ -71,8 +68,10 @@ LIB_DEPENDS-gpl2 = ${BUILD_PKGPATH},-main \ x11/qt6/qt5compat \ x11/qt6/qtsvg -CONFIGURE_ARGS = -DMOD_RUBBERBAND=OFF +CONFIGURE_ARGS = -DMOD_RUBBERBAND=OFF \ + -DMOD_JACKRACK=OFF +CONFIGURE_ARGS += -DMOD_QT=ON CONFIGURE_ARGS += -DMOD_QT6=ON # melt-7 is enough diff --git a/multimedia/mlt7/distinfo b/multimedia/mlt7/distinfo index 8514a031ded..0b82cf40d58 100644 --- a/multimedia/mlt7/distinfo +++ b/multimedia/mlt7/distinfo @@ -1,2 +1,2 @@ -SHA256 (mlt-7.32.0.tar.gz) = HKWq3+J5lch5uSU7OkjR3MOxJH6gtWILCH1Y9VIb4Cg= -SIZE (mlt-7.32.0.tar.gz) = 1790860 +SHA256 (mlt-7.34.1.tar.gz) = QQS4fbPhQ4n4FmaTjBMfcjVkdz/smqGLa/8Ah2HMg4s= +SIZE (mlt-7.34.1.tar.gz) = 1817867 diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_common_c b/multimedia/mlt7/patches/patch-src_modules_avformat_common_c deleted file mode 100644 index 4ac6d319452..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_common_c +++ /dev/null @@ -1,27 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/common.c ---- src/modules/avformat/common.c.orig -+++ src/modules/avformat/common.c -@@ -367,10 +367,20 @@ void mlt_image_to_avframe(mlt_image image, mlt_frame m - avframe->height = image->height; - avframe->format = mlt_to_av_image_format(image->format); - avframe->sample_aspect_ratio = av_d2q(mlt_frame_get_aspect_ratio(mltframe), 1024); -- ; - avframe->pts = mlt_frame_get_position(mltframe); -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!mlt_properties_get_int(frame_properties, "progressive")) -+ avframe->flags |= AV_FRAME_FLAG_INTERLACED; -+ else -+ avframe->flags &= ~AV_FRAME_FLAG_INTERLACED; -+ if (mlt_properties_get_int(frame_properties, "top_field_first")) -+ avframe->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+ else -+ avframe->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - avframe->interlaced_frame = !mlt_properties_get_int(frame_properties, "progressive"); - avframe->top_field_first = mlt_properties_get_int(frame_properties, "top_field_first"); -+#endif - avframe->color_primaries = mlt_properties_get_int(frame_properties, "color_primaries"); - avframe->color_trc = mlt_properties_get_int(frame_properties, "color_trc"); - avframe->color_range = mlt_properties_get_int(frame_properties, "full_range") diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_consumer_avformat_c b/multimedia/mlt7/patches/patch-src_modules_avformat_consumer_avformat_c deleted file mode 100644 index ce4b554173e..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_consumer_avformat_c +++ /dev/null @@ -1,40 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/consumer_avformat.c ---- src/modules/avformat/consumer_avformat.c.orig -+++ src/modules/avformat/consumer_avformat.c -@@ -1923,18 +1923,27 @@ static int encode_video(encode_ctx_t *enc_ctx, - avframe->pts = enc_ctx->frame_count; - - // Set frame interlace hints -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!mlt_properties_get_int(frame_properties, "progressive")) -+ avframe->flags |= AV_FRAME_FLAG_INTERLACED; -+ else -+ avframe->flags &= ~AV_FRAME_FLAG_INTERLACED; -+ const int tff = mlt_properties_get_int(frame_properties, "top_field_first"); -+ if (tff) -+ avframe->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+ else -+ avframe->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - avframe->interlaced_frame = !mlt_properties_get_int(frame_properties, "progressive"); -- avframe->top_field_first = mlt_properties_get_int(frame_properties, "top_field_first"); -+ const int tff = avframe->top_field_first = mlt_properties_get_int(frame_properties, -+ "top_field_first"); -+#endif - if (mlt_properties_get_int(frame_properties, "progressive")) - c->field_order = AV_FIELD_PROGRESSIVE; - else if (c->codec_id == AV_CODEC_ID_MJPEG) -- c->field_order = (mlt_properties_get_int(frame_properties, "top_field_first")) -- ? AV_FIELD_TT -- : AV_FIELD_BB; -+ c->field_order = tff ? AV_FIELD_TT : AV_FIELD_BB; - else -- c->field_order = (mlt_properties_get_int(frame_properties, "top_field_first")) -- ? AV_FIELD_TB -- : AV_FIELD_BT; -+ c->field_order = tff ? AV_FIELD_TB : AV_FIELD_BT; - - // Encode the image - ret = avcodec_send_frame(c, avframe); diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_filter_avfilter_c b/multimedia/mlt7/patches/patch-src_modules_avformat_filter_avfilter_c deleted file mode 100644 index 664ba21a794..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_filter_avfilter_c +++ /dev/null @@ -1,27 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/filter_avfilter.c ---- src/modules/avformat/filter_avfilter.c.orig -+++ src/modules/avformat/filter_avfilter.c -@@ -802,10 +802,21 @@ static int filter_get_image(mlt_frame frame, - pdata->avinframe->sample_aspect_ratio = (AVRational){profile->sample_aspect_num, - profile->sample_aspect_den}; - pdata->avinframe->pts = pos; -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!mlt_properties_get_int(frame_properties, "progressive")) -+ pdata->avinframe->flags |= AV_FRAME_FLAG_INTERLACED; -+ else -+ pdata->avinframe->flags &= ~AV_FRAME_FLAG_INTERLACED; -+ if (mlt_properties_get_int(frame_properties, "top_field_first")) -+ pdata->avinframe->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+ else -+ pdata->avinframe->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - pdata->avinframe->interlaced_frame = !mlt_properties_get_int(frame_properties, - "progressive"); - pdata->avinframe->top_field_first = mlt_properties_get_int(frame_properties, - "top_field_first"); -+#endif - pdata->avinframe->color_primaries = mlt_properties_get_int(frame_properties, - "color_primaries"); - pdata->avinframe->color_trc = mlt_properties_get_int(frame_properties, "color_trc"); diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_filter_swscale_c b/multimedia/mlt7/patches/patch-src_modules_avformat_filter_swscale_c deleted file mode 100644 index 387cf28ff10..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_filter_swscale_c +++ /dev/null @@ -1,21 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/filter_swscale.c ---- src/modules/avformat/filter_swscale.c.orig -+++ src/modules/avformat/filter_swscale.c -@@ -170,8 +170,15 @@ static int filter_scale(mlt_frame frame, - avinframe->height = iheight; - avinframe->format = avformat; - avinframe->sample_aspect_ratio = av_d2q(mlt_frame_get_aspect_ratio(frame), 1024); -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!mlt_properties_get_int(properties, "progressive")) -+ avinframe->flags |= AV_FRAME_FLAG_INTERLACED; -+ if (mlt_properties_get_int(properties, "top_field_first")) -+ avinframe->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - avinframe->interlaced_frame = !mlt_properties_get_int(properties, "progressive"); - avinframe->top_field_first = mlt_properties_get_int(properties, "top_field_first"); -+#endif - av_image_fill_arrays(avinframe->data, - avinframe->linesize, - *image, diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_link_avfilter_c b/multimedia/mlt7/patches/patch-src_modules_avformat_link_avfilter_c deleted file mode 100644 index 8cc17529a7d..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_link_avfilter_c +++ /dev/null @@ -1,27 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/link_avfilter.c ---- src/modules/avformat/link_avfilter.c.orig -+++ src/modules/avformat/link_avfilter.c -@@ -917,10 +917,21 @@ static int link_get_image(mlt_frame frame, - pdata->avinframe->sample_aspect_ratio = (AVRational){profile->sample_aspect_num, - profile->sample_aspect_den}; - pdata->avinframe->pts = pos; -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!mlt_properties_get_int(frame_properties, "progressive")) -+ pdata->avinframe->flags |= AV_FRAME_FLAG_INTERLACED; -+ else -+ pdata->avinframe->flags &= ~AV_FRAME_FLAG_INTERLACED; -+ if (mlt_properties_get_int(frame_properties, "top_field_first")) -+ pdata->avinframe->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+ else -+ pdata->avinframe->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - pdata->avinframe->interlaced_frame = !mlt_properties_get_int(frame_properties, - "progressive"); - pdata->avinframe->top_field_first = mlt_properties_get_int(frame_properties, - "top_field_first"); -+#endif - pdata->avinframe->color_primaries = mlt_properties_get_int(frame_properties, - "color_primaries"); - pdata->avinframe->color_trc = mlt_properties_get_int(frame_properties, "color_trc"); diff --git a/multimedia/mlt7/patches/patch-src_modules_avformat_producer_avformat_c b/multimedia/mlt7/patches/patch-src_modules_avformat_producer_avformat_c deleted file mode 100644 index 4ad1d2d1438..00000000000 --- a/multimedia/mlt7/patches/patch-src_modules_avformat_producer_avformat_c +++ /dev/null @@ -1,192 +0,0 @@ -Backport https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2 - -Index: src/modules/avformat/producer_avformat.c ---- src/modules/avformat/producer_avformat.c.orig -+++ src/modules/avformat/producer_avformat.c -@@ -335,11 +335,20 @@ static int first_video_index(producer_avformat self) - - static const char *get_projection(AVStream *st) - { -+#if LIBAVCODEC_VERSION_INT >= ((60 << 16) + (29 << 8) + 100) -+ const AVPacketSideData *psd = av_packet_side_data_get(st->codecpar->coded_side_data, -+ st->codecpar->nb_coded_side_data, -+ AV_PKT_DATA_SPHERICAL); -+ if (psd) { -+ const AVSphericalMapping *spherical = (const AVSphericalMapping *) psd->data; -+#else - const AVSphericalMapping *spherical - = (const AVSphericalMapping *) av_stream_get_side_data(st, AV_PKT_DATA_SPHERICAL, NULL); - -- if (spherical) -+ if (spherical) { -+#endif - return av_spherical_projection_name(spherical->projection); -+ } - return NULL; - } - -@@ -349,7 +358,16 @@ static double get_rotation(mlt_properties properties, - { - AVDictionaryEntry *rotate_tag = av_dict_get(st->metadata, "rotate", NULL, 0); - int has_rotate_metadata = rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0"); -+#if LIBAVCODEC_VERSION_INT >= ((60 << 16) + (29 << 8) + 100) -+ int32_t *displaymatrix = NULL; -+ const AVPacketSideData *psd = av_packet_side_data_get(st->codecpar->coded_side_data, -+ st->codecpar->nb_coded_side_data, -+ AV_PKT_DATA_DISPLAYMATRIX); -+ if (psd) -+ displaymatrix = (int32_t *) psd->data; -+#else - uint8_t *displaymatrix = av_stream_get_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, NULL); -+#endif - double theta = mlt_properties_get_double(properties, "rotate"); - int has_mlt_rotate = !!mlt_properties_get(properties, "rotate"); - -@@ -418,14 +436,7 @@ static AVRational guess_frame_rate(producer_avformat s - frame_rate = av_d2q(av_q2d(stream->avg_frame_rate), 1024); - fps = av_q2d(frame_rate); - } -- // XXX frame rates less than 1 fps are not considered sane - if (isnan(fps) || isinf(fps) || fps < 1.0) { -- // Get the frame rate from the codec. -- frame_rate.num = self->video_codec->time_base.den; -- frame_rate.den = self->video_codec->time_base.num * self->video_codec->ticks_per_frame; -- fps = av_q2d(frame_rate); -- } -- if (isnan(fps) || isinf(fps) || fps < 1.0) { - // Use the profile frame rate if all else fails. - mlt_profile profile = mlt_service_profile(MLT_PRODUCER_SERVICE(self->parent)); - frame_rate.num = profile->frame_rate_num; -@@ -1580,7 +1591,7 @@ static void get_audio_streams_info(producer_avformat s - #endif - if (codec_params->sample_rate > self->max_frequency) - self->max_frequency = codec_params->sample_rate; -- avcodec_close(codec_context); -+ avcodec_free_context(&codec_context); - } - pthread_mutex_unlock(&self->open_mutex); - } -@@ -1716,7 +1727,11 @@ static int sliced_h_pix_fmt_conv_proc(int id, int idx, - struct SwsContext *sws; - struct sliced_pix_fmt_conv_t *ctx = (struct sliced_pix_fmt_conv_t *) cookie; - -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ interlaced = ctx->frame->flags & AV_FRAME_FLAG_INTERLACED; -+#else - interlaced = ctx->frame->interlaced_frame; -+#endif - field = (interlaced) ? (idx & 1) : 0; - idx = (interlaced) ? (idx / 2) : idx; - slices = (interlaced) ? (jobs / 2) : jobs; -@@ -1865,7 +1880,11 @@ static void convert_image_rgb(producer_avformat self, - uint8_t *out_data[4]; - int out_stride[4]; - -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (src_pix_fmt == AV_PIX_FMT_YUV420P && (frame->flags & AV_FRAME_FLAG_INTERLACED)) { -+#else - if (src_pix_fmt == AV_PIX_FMT_YUV420P && frame->interlaced_frame) { -+#endif - // Perform field-aware conversion for 4:2:0 - int field_height = height / 2; - const uint8_t *in_data[4]; -@@ -2041,8 +2060,13 @@ static int convert_image(producer_avformat self, - - int sliced = !getenv("MLT_AVFORMAT_SLICED_PIXFMT_DISABLE") && src_pix_fmt != ctx.dst_format; - if (sliced) { -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ ctx.slice_w = (width < 1000) ? (256 >> (frame->flags & AV_FRAME_FLAG_INTERLACED)) -+ : (512 >> (frame->flags & AV_FRAME_FLAG_INTERLACED)); -+#else - ctx.slice_w = (width < 1000) ? (256 >> frame->interlaced_frame) - : (512 >> frame->interlaced_frame); -+#endif - } else { - ctx.slice_w = width; - } -@@ -2052,10 +2076,18 @@ static int convert_image(producer_avformat self, - - if (sliced && (last_slice_w % 8) == 0 - && !(ctx.src_format == AV_PIX_FMT_YUV422P && last_slice_w % 16)) { -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ c *= (frame->flags & AV_FRAME_FLAG_INTERLACED) ? 2 : 1; -+#else - c *= frame->interlaced_frame ? 2 : 1; -+#endif - mlt_slices_run_normal(c, sliced_h_pix_fmt_conv_proc, &ctx); - } else { -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ c = (frame->flags & AV_FRAME_FLAG_INTERLACED) ? 2 : 1; -+#else - c = frame->interlaced_frame ? 2 : 1; -+#endif - ctx.slice_w = width; - for (i = 0; i < c; i++) - sliced_h_pix_fmt_conv_proc(i, i, c, &ctx); -@@ -2524,7 +2556,11 @@ static int producer_get_image(mlt_frame frame, - // there are I frames, and find_first_pts() fails as a result. - // Try to set first_pts here after getting pict_type. - if (self->first_pts == AV_NOPTS_VALUE -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ && ((self->video_frame->flags & AV_FRAME_FLAG_KEY) -+#else - && (self->video_frame->key_frame -+#endif - || self->video_frame->pict_type == AV_PICTURE_TYPE_I)) - self->first_pts = pts; - if (self->first_pts != AV_NOPTS_VALUE) -@@ -2558,22 +2594,45 @@ static int producer_get_image(mlt_frame frame, - if (mlt_properties_get(properties, "force_progressive")) { - self->progressive = !!mlt_properties_get_int(properties, "force_progressive"); - } else if (self->video_frame && codec_params) { -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ self->progressive = !(self->video_frame->flags & AV_FRAME_FLAG_INTERLACED) -+#else - self->progressive = !self->video_frame->interlaced_frame -+#endif - && (codec_params->field_order == AV_FIELD_PROGRESSIVE - || codec_params->field_order == AV_FIELD_UNKNOWN); - } else { - self->progressive = 0; - } -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (!self->progressive) -+ self->video_frame->flags |= AV_FRAME_FLAG_INTERLACED; -+ else -+ self->video_frame->flags &= ~AV_FRAME_FLAG_INTERLACED; -+#else - self->video_frame->interlaced_frame = !self->progressive; -+#endif - // Detect and correct field order - if (mlt_properties_get(properties, "force_tff")) { - self->top_field_first = !!mlt_properties_get_int(properties, "force_tff"); - } else { -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ self->top_field_first = (self->video_frame->flags -+ & AV_FRAME_FLAG_TOP_FIELD_FIRST) -+#else - self->top_field_first = self->video_frame->top_field_first -+#endif - || codec_params->field_order == AV_FIELD_TT - || codec_params->field_order == AV_FIELD_TB; - } -+#if LIBAVUTIL_VERSION_INT >= ((58 << 16) + (7 << 8) + 100) -+ if (self->top_field_first) -+ self->video_frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; -+ else -+ self->video_frame->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; -+#else - self->video_frame->top_field_first = self->top_field_first; -+#endif - #ifdef AVFILTER - if ((self->autorotate || mlt_properties_get(properties, "filtergraph")) - && !setup_filters(self) && self->vfilter_graph) { -@@ -3690,7 +3749,7 @@ static int audio_codec_init(producer_avformat self, in - if (codec && avcodec_open2(codec_context, codec, NULL) >= 0) { - // Now store the codec with its destructor - if (self->audio_codec[index]) -- avcodec_close(self->audio_codec[index]); -+ avcodec_free_context(&self->audio_codec[index]); - self->audio_codec[index] = codec_context; - self->audio_index = index; - } else { diff --git a/multimedia/mlt7/patches/patch-src_modules_sdl_CMakeLists_txt b/multimedia/mlt7/patches/patch-src_modules_sdl_CMakeLists_txt index 3cdc93db87c..ede0707d590 100644 --- a/multimedia/mlt7/patches/patch-src_modules_sdl_CMakeLists_txt +++ b/multimedia/mlt7/patches/patch-src_modules_sdl_CMakeLists_txt @@ -1,7 +1,7 @@ Index: src/modules/sdl/CMakeLists.txt --- src/modules/sdl/CMakeLists.txt.orig +++ src/modules/sdl/CMakeLists.txt -@@ -19,6 +19,7 @@ if(APPLE) +@@ -23,6 +23,7 @@ if(APPLE) target_link_libraries(mltsdl PRIVATE objc "-framework Foundation") elseif(UNIX) target_link_libraries(mltsdl PRIVATE X11) diff --git a/multimedia/mlt7/pkg/PLIST-gpl2 b/multimedia/mlt7/pkg/PLIST-gpl2 index 4230907c0a8..97ba9ee9ab2 100644 --- a/multimedia/mlt7/pkg/PLIST-gpl2 +++ b/multimedia/mlt7/pkg/PLIST-gpl2 @@ -14,15 +14,18 @@ share/mlt-7/plusgpl/ share/mlt-7/plusgpl/consumer_cbrts.yml share/mlt-7/plusgpl/filter_burningtv.yml share/mlt-7/plusgpl/filter_lumaliftgaingamma.yml +share/mlt-7/plusgpl/filter_outline.yml share/mlt-7/plusgpl/filter_rotoscoping.yml share/mlt-7/qt/ share/mlt-7/qt/filter_audiolevelgraph.yml share/mlt-7/qt/filter_audiospectrum.yml share/mlt-7/qt/filter_audiowaveform.yml +share/mlt-7/qt/filter_dropshadow.yml share/mlt-7/qt/filter_gpsgraphic.yml share/mlt-7/qt/filter_gpstext.yml share/mlt-7/qt/filter_lightshow.yml share/mlt-7/qt/filter_qtblend.yml +share/mlt-7/qt/filter_qtblend_mode.yml share/mlt-7/qt/filter_qtcrop.yml share/mlt-7/qt/filter_qtext.yml share/mlt-7/qt/filter_typewriter.yml @@ -35,10 +38,12 @@ share/mlt-7/qt6/ share/mlt-7/qt6/filter_audiolevelgraph.yml share/mlt-7/qt6/filter_audiospectrum.yml share/mlt-7/qt6/filter_audiowaveform.yml +share/mlt-7/qt6/filter_dropshadow.yml share/mlt-7/qt6/filter_gpsgraphic.yml share/mlt-7/qt6/filter_gpstext.yml share/mlt-7/qt6/filter_lightshow.yml share/mlt-7/qt6/filter_qtblend.yml +share/mlt-7/qt6/filter_qtblend_mode.yml share/mlt-7/qt6/filter_qtcrop.yml share/mlt-7/qt6/filter_qtext.yml share/mlt-7/qt6/filter_typewriter.yml diff --git a/multimedia/mlt7/pkg/PLIST-main b/multimedia/mlt7/pkg/PLIST-main index cfbad3c88c5..8e7c36d6018 100644 --- a/multimedia/mlt7/pkg/PLIST-main +++ b/multimedia/mlt7/pkg/PLIST-main @@ -10,6 +10,7 @@ include/mlt-7/framework/mlt_chain.h include/mlt-7/framework/mlt_consumer.h include/mlt-7/framework/mlt_deque.h include/mlt-7/framework/mlt_events.h +include/mlt-7/framework/mlt_export.h include/mlt-7/framework/mlt_factory.h include/mlt-7/framework/mlt_field.h include/mlt-7/framework/mlt_filter.h @@ -76,11 +77,10 @@ lib/mlt-7/ @so lib/mlt-7/libmltdecklink.so @so lib/mlt-7/libmltfrei0r.so @so lib/mlt-7/libmltgdk.so -@so lib/mlt-7/libmltjackrack.so @so lib/mlt-7/libmltkdenlive.so +@so lib/mlt-7/libmltmovit.so @so lib/mlt-7/libmltoldfilm.so @so lib/mlt-7/libmltplus.so -@so lib/mlt-7/libmltsdl.so @so lib/mlt-7/libmltsdl2.so @so lib/mlt-7/libmltsox.so @so lib/mlt-7/libmltvorbis.so @@ -165,14 +165,32 @@ share/mlt-7/gdk/ share/mlt-7/gdk/filter_rescale.yml share/mlt-7/gdk/producer_pango.yml share/mlt-7/gdk/producer_pixbuf.yml -share/mlt-7/jackrack/ -share/mlt-7/jackrack/consumer_jack.yml share/mlt-7/kdenlive/ share/mlt-7/kdenlive/filter_boxblur.yml share/mlt-7/kdenlive/filter_freeze.yml share/mlt-7/kdenlive/filter_wave.yml share/mlt-7/kdenlive/producer_framebuffer.yml share/mlt-7/metaschema.yaml +share/mlt-7/movit/ +share/mlt-7/movit/filter_movit_blur.yml +share/mlt-7/movit/filter_movit_convert.yml +share/mlt-7/movit/filter_movit_crop.yml +share/mlt-7/movit/filter_movit_deconvolution_sharpen.yml +share/mlt-7/movit/filter_movit_diffusion.yml +share/mlt-7/movit/filter_movit_flip.yml +share/mlt-7/movit/filter_movit_glow.yml +share/mlt-7/movit/filter_movit_lift_gamma_gain.yml +share/mlt-7/movit/filter_movit_mirror.yml +share/mlt-7/movit/filter_movit_opacity.yml +share/mlt-7/movit/filter_movit_rect.yml +share/mlt-7/movit/filter_movit_resample.yml +share/mlt-7/movit/filter_movit_resize.yml +share/mlt-7/movit/filter_movit_saturation.yml +share/mlt-7/movit/filter_movit_vignette.yml +share/mlt-7/movit/filter_movit_white_balance.yml +share/mlt-7/movit/transition_movit_luma.yml +share/mlt-7/movit/transition_movit_mix.yml +share/mlt-7/movit/transition_movit_overlay.yml share/mlt-7/oldfilm/ share/mlt-7/oldfilm/dust1.svg share/mlt-7/oldfilm/dust2.svg @@ -450,15 +468,8 @@ share/mlt-7/profiles/vcd_ntsc share/mlt-7/profiles/vcd_pal share/mlt-7/profiles/vertical_hd_30 share/mlt-7/profiles/vertical_hd_60 -share/mlt-7/qt/filter_dropshadow.yml -share/mlt-7/qt6/filter_dropshadow.yml share/mlt-7/resample/ share/mlt-7/resample/link_resample.yml -share/mlt-7/sdl/ -share/mlt-7/sdl/consumer_sdl.yml -share/mlt-7/sdl/consumer_sdl_audio.yml -share/mlt-7/sdl/consumer_sdl_preview.yml -share/mlt-7/sdl/consumer_sdl_still.yml share/mlt-7/sdl2/ share/mlt-7/sdl2/consumer_sdl2.yml share/mlt-7/sdl2/consumer_sdl2_audio.yml