Recent Releases
7.42.010 Jul 2026 03:15
major feature:
Framework
Added list-based image-conversion callback dispatch on mlt_frame.
Use `mlt_frame_append_convert_image()` to register a converter instead of.
Setting `frame- convert_image` directly. Multiple converters are tried in
Registration order; the first that succeeds wins. New public API:
`mlt_frame_prepend_convert_image()`.
- `mlt_frame_append_convert_image()`.
- `mlt_frame_convert_image()`.
- `mlt_frame_next_convert_image()`.
- `mlt_frame_has_convert_image()`.
- `mlt_frame_copy_convert_image()`.
- API behavior change: `mlt_frame_s::convert_image` is now read-only after.
Init and is permanently set to the dispatcher `mlt_frame_convert_image()`.
External code that set this field directly to a custom function will no.
Longer have that function called. If you really need that (never heard of
Someone who does), clear the frame's "_convert_image_callbacks" property
And use `mlt_frame_append_convert_image()` instead.
Modules.
- Image converters (`movit.convert`, `avcolor_space`, `imageconvert`) are.
Now attached data-driven via `loader.ini` key `image_convert`.
7.40.026 Jun 2026 03:15
major bugfix:
Framework
Some for `win32_fopen()`.
- Security for time formatting in `mlt_properties`.
- Security to disable deprecated `ante` `post` properties in `mlc_consumer`.
- Added more properties to `metaschema.yaml` (new version 7.2):
- `audio_formats`.
- `video_formats`.
- `layout-hint`.
- `hide-label`.
- `normalized_default`.
Modules.
- Added `audio_formats` and `image_formats` properties to all service metadata.
- Many improvements to the `openfx` module:
- potential overflows in `snprintf()` calls.
- multi-threading: frame- and slice-based.
- many compatibility - added support for 2D and 3D numeric parameters (uses `mlt_rect`).
- preview scaling.
- the default for `choice` (`values` in `metaschema.yaml`) parameters.
- some effects rendering upside-down.
- a signed int overflow in `pgm` producer.
- Visual quality improvements for animations in the `qtblend` filter and transition.
- MSVC compatibility for `kdenlivetitle` producer and `frei0r`, `plusgpl`, `jackrack`, `openfx`, `rtaudio`, `resample` modules.
- choppy playback and deadlocks in the `decklink` consumer.
- Updated `spatialaudio` module to the libspatialaudio 0.4.0 API.
- libopus audio encoder warning about `frame_duration` in `avformat` consumer.
- crash in `avformat` consumer with unsupported `attached_pic` format.
- Added HDR10 SMPTE ST 2084 (PQ) properties to the `decklink` consumer:
- `hdr_red_x`.
- `hdr_red_y`.
- `hdr_green_x`.
- `hdr_green_y`.
- `hdr_blue_x`.
- `hdr_blue_y`.
- `hdr_white_x`.
- `hdr_white_y`.
- `hdr_max_luminance`.
- `hdr_min_luminance`.
- `hdr_max_cll`.
- `hdr_max_fall`.
- Added `rnnoise` module for background audio noise reduction (depends on librnnoise).
- plugin bundles for `vst2` filters on macOS.
- the frame position in the `consumer` producer.
- Hardened string formatting for metadata properties in the `vorbis` producer.
- `typewriter` in `qtext` filter lags when rate properties change
7.38.018 Jun 2026 03:15
major bugfix:
Framework
Added dynamic hash table for `mlt_properties` for better performance.
- memory corruption in `mlt_pool`.
- Added warning on file open failure when parsing in `mlt_properties`.
Modules.
- Added `hwaccel_scale` filter with preview scaling (scale_vaapi, scale_vulkan, scale_d3d11, scale_vt (macOS)).
This adds an environment variable `MLT_AVFORMAT_HWACCEL_PPS` to provide a
limiter to hwaccel because transfering uncompressed video between memory
CPU and GPU memory is heavy.
PPS = maximum pixels per second. Anything over it skips hwaccel.
- Added *basic support for OpenFX *filter plugins.
OpenFX has many features. This is a summary of what is NOT yet included:
- GPU rendering.
- exotic parameter types: Integer2D, Integer3D, Double3D, Custom, Bytes, Page, PushButton.
- plugin-driven keyframe animation; but MLT-driven does work.
- tile-, slice-, or frame-based multi-threading (only plugin internal threading).
- multi-resolution.
- temporal clip access.
- overlays amp; dialogs.
- timeline queries (e.g. `getTime()`).
- generator, transition, retimer.
- parametric curves.
- Added `lut` parameter to `avformat` producer.
- Added `attached_pic` property to `avformat` consumer.
- Added `movit.overlay_blend` video filter.
- Added `compositing` property to `movit.overlay` transition.
- Added constant-power crossfade to `mix` audio transition.
- Added rounded corner support for `rect` in `kdenlivetitle`.
- Added typewriter properties to `subtitle` filter.
- Added underline and strikethrough to the `text` and `qtext` filters.
- Changed `qtext` `style` property to support family named styles.
- Added anchor point support for arbitrary rotations in `qtblend`.
- Allow relative paths for images in `kdenlivetitle`.
- Updated Glaxnimate module to version 0.6.0.
- Switched to `QImage` scaling when downscaling in `qtblend`.
- Deprecated `obscure` and `watermark` filters.
- Install the jackrack module's blacklist files.
- subtitle s
7.32.001 Sep 2025 07:45
major bugfix:
Framework
Added `mlt_service_set_consumer()` and `Mlt::Service::set_consumer().
Optimized `mlt_multitrack` to not request a frame from a producer that is.
Both hidden and muted.
Modules.
Pixel format for VP8/VP9 streams in `avformat` producer.
`yuva422p` pixel format in `avformat` producer.
Added `MLT_AVFORMAT_HWACCEL` `MLT_AVFORMAT_HWACCEL_DEVICE` environment.
Variables to `avformat` producer.
Updated `decklink` module for recent hardware and drivers.
Added `colorspace` and `color_trc` (including HDR) properties to the.
`decklink` consumer.
Silencing extra audio channel (e.g. 6 = 8) in `decklink` consumer.
.1 C/LFE channels swapped over HDMI in `decklink` consumer.
Text outline had sharp angles in `kdenlivetitle` producer.
Default gamma to be Rec. 709 for 10-bit Y'CbCr from `movit` module.
Added support for HLG gamma to `movit` module (requires ddennedy/movit fork).
`opencv_tracker` filter should require multiple keyframes to be ready.
OpenCV crash on `rect`
7.30.020 Jan 2025 03:25
major bugfix:
Framework
`Mlt::Producer::set_creation_time()` not exported on i686.
`Mlt::Properties::set(int64_t)` symbol version.
`mlt_factory_init()` on Linux/BSD may fail to initialize when
compiled with `-DRELOCATABLE`.
Added generic non-drop-frame timecode in `mlt_property.c`.
Previously, it was only done for 30000/1001 and 60000/1001 frame rates,
but 24000/1001 is especially important as well.
Added support for MLT XML embedded in chains.
This, along with `xml-clip` producer handles mismatching frame rate
between parent and child producers and facilites time-affecting links on
the child.
Added `mlt_image_full_range(const char *color_range)` where any of the
following strings return true (1): `full`, `jpeg`, `pc`.
Modules.
Added `xml-clip` producer.
link `in` and `out` properties arenot serialized in the `xml` consumer.
Added `hslprimaries` and `hslrange` filters to the `plus` module.
Added a `gradientmap` filter to the `plus` module.
`avfilter` audio filters with FFmpeg 7.
incorrect frame rate for AVCHD (and possibly others) in `avformat`.
`window_id` property in consumer `sdl2` by using.
`SDL_CreateWindowFrom()`, especially important for embedding in GTK+ or Qt.
text not rendering in transition `vqm` since Qt 6.
Added `decimals` keyword to `gpstext` filter and move `RAW` keyword check.
`time_offset` property handling in `gpstext` filter.
reading and writing SRT files with unicode in the path.
`subtitle_feed` filter on producers with an in point 0.
opaque alpha channels become translucent in `luma` transition.
a crash in the `mix` transition with `consumer` producer.
`freeze` filter freezing too much.
`avfilter.fillborders` with preview scaling.
non-proportional scaling in `qtblend` transition and filter.
`avfilter` color distortion with `mlt_image_rgb` and `mlt_image_rgba`.
Extended support for `colorspace=2020` consumer propeerty and the BT.2020
colorspace in the `avformat` producer and consumer.
This does not imply HDR, which is signaled through a `color_trc` propert
7.28.024 Nov 2024 02:45
major bugfix:
This a couple of major regressions in the previous version 7.26.0:
Seeking and frozen video due by reverting "Improved performance with.
Intra-only video and reducing the frame rate."
Using `melt` to render MLT XML with OpenGL effects from `movit`.
Other and changes:
Deprecated the `composite` transition and the `sdl` and `ndi` modules.
Android camera video has the wrong frame rate (broken in v7.26.0).
Audio not playing for audio-only DTS WMA.
Using "https:" URLs in the `xml` producer.
Crash on exit when running `melt -query` or `melt -query links`.
Added a `transition` property to the `watermark` filter. Now, it defaults
to using `affine`.
Changed `affine` transition argument to set `rect` property if supplied.
7.26.007 Nov 2024 05:45
major bugfix:
Framework
a double-free crash in `Mlt::Service::profile()`.
Modules.
and improvements to the `avformat` producer:
- Changed to prefer `r_frame_rate` over `avg_frame_rate`.
- `lowres` if set too high.
- `audio_index=all`.
- `variable_frame_rate` incorrectly set true on 59.94 fps in Matroska.
- Improved performance with intra-only video and reducing the frame rate.
- mono audio handling regression on FFmpeg 7.
- audio samples may be dropped unexpectly esp. with uncompressed.
`movit` transitions with a non-movit filter on one of its inputs.
duration in the `glaxnimate` producer off by one frame.
Added `dropshadow` filter to the `qt` module.
resetting animation in `kdenlivetitle` producer.
Added support for LV2 and VST2 plugins in the `jackrack` module.
crash using `av.declick` audio filter on FFmpeg 7.
Added `subtitle` filter and producer and `subtitle_feed` filter to the `plus` module.
Added subtitle encoding to the `avformat` consumer (new properties beginning with "subtitle.").
`alang` in the the `avformat` consumer.
Added `#gps_power` keyword to the `gpstext` filter.
tab handling in the `kdenlivetitle` producer.
Other.
Added 8- and 10-bit encode presets for SVT-AV1.
building on OpenBSD.
building on musl libc.
consumer properties not updating the automatic profile on the `melt` command line.
Added `-loglevel` command line option to `melt`.
7.24.028 Apr 2024 14:45
major bugfix:
Framework
a small memory leak in `mlt_repository`.
a small memory leak in `MltPushConsumer` C++ class.
Block connecting a null producer to a service.
Include `locale.h` on any GNU libc platform.
Modules.
Added a new `spatialaudio` module with filters:
- `ambisonic-decoder`.
- `ambisonic-encoder`.
building with FFmpeg 7.
text keywords do not work with non-ASCII filenames on Windows:
- `pixbuf` producer.
- `opencv_tracker` filter.
- `dynamictext` filter.
- `qimage` producer.
Added "meta.media.aspect_ratio" property to the `avformat` producer.
`distort` property not working in `movit.rect` filter.
frames dropping or repeating in the `multi` consumer.
the `dynamic_loudness` filter maximizing audio gain.
distortion in the `mono` filter.
Also check for `WAYLAND_DISPLAY` to detect a graphical session in the `qt`
and `glaxnimate` modules.
the `wave` filter distorts if `wave` = 1 with preview scaling.
Added the read-only `meta.media. u.codec.layout` property to `avformat` producer.
Set the `channel_layout` property on the frame for the `noise` and `tone`
audio producers.
`outline` maximum for the `text` and `dynamictext` filters.
Other.
crash when using `-chain` from `melt`.
a small memory leak on Windows `fopen()`.
7.22.016 Dec 2023 11:57
minor feature:
Framework
Added new functions:
mlt_property_is_color()
mlt_property_is_numeric()
mlt_property_is_rect()
Many new keyframe types:
mlt_keyframe_smooth_loose - = (same as old mlt_keyframe_smooth - Unity Catmull-Rom spline)
mlt_keyframe_smooth_natural - = (Centripetal Catmull-Rom spline with natural slope)
mlt_keyframe_smooth_tight - -= (Centripetal Catmull-Rom spline with 0 slope)
mlt_keyframe_sinusoidal_in - a=
mlt_keyframe_sinusoidal_out - b=
mlt_keyframe_sinusoidal_in_out - c=
mlt_keyframe_quadratic_in - d=
mlt_keyframe_quadratic_out - e=
mlt_keyframe_quadratic_in_out - f=
mlt_keyframe_cubic_in - g=
mlt_keyframe_cubic_out - h=
mlt_keyframe_cubic_in_out - i=
mlt_keyframe_quartic_in - j=
mlt_keyframe_quartic_out - k=
mlt_keyframe_quartic_in_out - l=
mlt_keyframe_quintic_in - m=
mlt_keyframe_quintic_out - n=
mlt_keyframe_quintic_in_out - o=
mlt_keyframe_exponential_in - p=
mlt_keyframe_exponential_out - q=
mlt_keyframe_exponential_in_out - r=
mlt_keyframe_circular_in - s=
mlt_keyframe_circular_out - t=
mlt_keyframe_circular_in_out - u=
mlt_keyframe_back_in - v=
mlt_keyframe_back_out - w=
mlt_keyframe_back_in_out - x=
mlt_keyframe_elastic_in - y=
mlt_keyframe_elastic_out - z=
mlt_keyframe_elastic_in_out - A=
mlt_keyframe_bounce_in - B=
mlt_keyframe_bounce_out - C=
mlt_keyframe_bounce_in_out - D=
Fixed missing support for mlt_service_transition in Mlt::Producer() C++ constructor.
Modules
Fixed rotoscoping filter crash on image with height = 0.
Fixed crashed due to qtblend transition requesting an image of 0 width or height.
Added support for RtAudio 6 in the rtaudio consumer.
Fixed createdate keyword deletes preceeding text in dynamictext filter.
Added