På fredag 19. desember 2025 kl. 21:38, skrev Rafael Sadowski
<[email protected]>:

> 
> 
> 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.
> 


This built off movit for me on amd64.

cd /usr/ports/ && patch -l -p1 -E -C < /tmp/mlt7.diff
cd /usr/ports/ && patch -l -p1 -E < /tmp/mlt7.diff

cd /usr/ports/multimedia/mlt7/ && make test install

Had this under tests:

===>  Regression tests for mlt-7.32.0
UpdateCTestConfiguration  from 
:/usr/ports/pobj/mlt-7.32.0/build-amd64/DartConfiguration.tcl
UpdateCTestConfiguration  from 
:/usr/ports/pobj/mlt-7.32.0/build-amd64/DartConfiguration.tcl
Test project /usr/ports/pobj/mlt-7.32.0/build-amd64
Constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
No tests were found!!!

I assume this is good. Built and instalt just fine.

Can't speak to the consumers.

yaydn


> 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

Reply via email to