Releases: mltframework/mlt
Releases Β· mltframework/mlt
v7.28.0
What's Changed
This fixes a couple of major regressions in the previous version 7.26.0:
- Fixed seeking and frozen video due by reverting "Improved performance with intra-only video and reducing the frame rate."
- Fixed using
melt
to render MLT XML with OpenGL effects frommovit
.
Other fixes and changes:
- Deprecated the
composite
transition and thesdl
andndi
modules. - Fixed Android camera video has the wrong frame rate (broken in v7.26.0).
- Fixed audio not playing for audio-only DTS WMA.
- Fixed using "https:" URLs in the
xml
producer. - Fixed crash on exit when running
melt -query
ormelt -query links
. - Added a
transition
property to thewatermark
filter. Now, it defaults to usingaffine
. - Changed
affine
transition argument to setrect
property if supplied.
v7.26.0
What's Changed
Framework
- Fixed a double-free crash in
Mlt::Service::profile()
.
Modules
- Fixes and improvements to the
avformat
producer:- Changed to prefer
r_frame_rate
overavg_frame_rate
. - Fixed
lowres
if set too high. - Fixed
audio_index=all
. - Fixed
variable_frame_rate
incorrectly set true on 59.94 fps in Matroska. - Improved performance with intra-only video and reducing the frame rate.
- Fixed mono audio handling regression on FFmpeg 7.
- Fixed audio samples may be dropped unexpectly esp. with uncompressed.
- Changed to prefer
- Fixed
movit
transitions with a non-movit filter on one of its inputs. - Fixed duration in the
glaxnimate
producer off by one frame. - Added
dropshadow
filter to theqt
module. - Fixed resetting animation in
kdenlivetitle
producer. - Added support for LV2 and VST2 plugins in the
jackrack
module. - Fixed crash using
av.declick
audio filter. - Added
subtitle
filter and producer andsubtitle_feed
filter to theplus
module. - Added subtitle encoding to the
avformat
consumer (new properties beginning with "subtitle."). - Fixed
alang
in the theavformat
consumer. - Added
#gps_power
keyword to thegpstext
filter. - Fixed tab handling in the
kdenlivetitle
producer.
Other
- Added 8- and 10-bit encode presets for SVT-AV1.
- Fixed building on OpenBSD.
- Fixed building on musl libc.
- Fixed consumer properties not updating the automatic profile on the
melt
command line. - Added
-loglevel
command line option tomelt
.
v7.24.0
What's Changed
Framework
- Fixed a small memory leak in
mlt_repository
. - Fixed 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
- Fixed building with FFmpeg 7.
- Fixed text keywords do not work with non-ASCII filenames on Windows:
pixbuf
produceropencv_tracker
filterdynamictext
filterqimage
producer
- Added "meta.media.aspect_ratio" property to the
avformat
producer. - Fixed
distort
property not working inmovit.rect
filter. - Fixed frames dropping or repeating in the
multi
consumer. - Fixed the
dynamic_loudness
filter maximizing audio gain. - Fixed distortion in the
mono
filter. - Also check for
WAYLAND_DISPLAY
to detect a graphical session in theqt
andglaxnimate
modules. - Fixed the
wave
filter distorts ifwave
= 1 with preview scaling. - Added the read-only
meta.media.%u.codec.layout
property toavformat
producer. - Set the
channel_layout
property on the frame for thenoise
andtone
audio producers. - Fixed
outline
maximum for thetext
anddynamictext
filters.
Other
- Fixed crash when using
-chain
frommelt
. - Fixed a small memory leak on Windows
fopen()
.
New Contributors
- @mtasaka made their first contribution in #963
- @emmetoneillpdx made their first contribution in #965
- @hmartinez82 made their first contribution in #974
- @pinotree made their first contribution in #925
Full Changelog: v7.22.0...v7.24.0
v7.22.0
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 oldmlt_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
inMlt::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 indynamictext
filter. - Added
opacity
property to filters that useqtext
:dynamictext
gpstext
qtext
timer
- Added
fade_video
,fade_audio
, andfade_color
properties toautofade
filter. - Added backwards compatibility for changed filter names in frei0r v2.3.1:
frei0r.measure_pr0be
frei0r.measure_pr0file
frei0r.tehroxx0r
frei0r.alpha0ps_alpha0ps
frei0r.alpha0ps_alphagrad
frei0r.alpha0ps_alphaspot
frei0r.denoise_hqdn3d
- Fixed a memory leak in
avformat
producer with consumer deinterlacer=yadif. - Fixed
qimage
producer color if consumer color_range=pc pix_fmt=yuv444p.
Other
- Fixed
ten_bit/ProRes 422
avformat preset produced ProRes 444. - Fixed
YouTube
avformat preset did not output high profile with some hardware encoders.
v7.20.0
Framework
- Fixed "blank" in a playlist does not have audio normalization filters.
- Fixed serializing
mlt_color
transparent black as "#00000000" when the property was set using an integer ormlt_color
. - Fixed
mlt_chain_set_source()
would always fetch a frame from the producer even if it has "meta.media.frame_rate_num" and "meta.media.frame_rate_den" properties making things slow. - Fixed
Mlt::Chain
leaking memory.
Modules
- Added a
blank
producer to thecore
module. - Added keywords to
gpstext
filter:#gps_cadence#
#gps_grade_degrees#
#gps_grade_percentage#
#gps_temperature#
- Added some
color_style
s to thegpsgraphic
filter:- 10 = color by speed (max 100 km/h)
- 11 = color by grade (max 90 degrees)
- 12 = color by grade (max 20 degrees)
- Added more unit formats to
legend_unit
property ofgpsgraphic
filter:mmin
orm/min
ftmin
orft/min
- Added keywords to
dynamictext
filter:#basename#
#filename#
- Fixed installing
filter_audioseam.yml
. - Added an
avlink
link to theavformat
module for FFmpeg filters that can benefit from future frames such asadeclick
. - Added the
preserve_alpha
property to thebox_blur
filter. - Fixed loading service metadata for the
qt6
andglaxnimate-qt6
modules. - Fixed a crash when changing the
rotate
property inavformat
producer with interlace video. - Add
astream
andvstream
properties to avformat producer. Unlikeaudio_index
andvideo_index
are absolute indices across the entire array of streams regardless their type, these new 0-based properties are relative to the type audio or video. For example, astream=1 is the second audio stream. - Fixed a possible crash in the
avformat
producer'smlt_producer_probe
virtual function. - Updated the
glaxnimate
module to version 0.5.4. - Fixed the
sdl2
consumer crashing with the Linux radeonsi_dri driver and showing only all black with the Linuxnvidia
driver.
Other
- Fix compiling on Android (not supported by the core developers).
- Changed the
avformat
consumerFLAC
preset to use theflac
format. - Fixed the
melt
Shift+H and Shift+L keyboard shortcuts when the SDL2 window has focus.
v7.18.0
Framework
- Added
mlt_audio_free_data()
. - Added
meta.playlist.clip_position
andmeta.playlist.clip_length
properties tomlt_playlist
. - Fixed
mlt_frame_get_audio
fails onmlt_audio_none
.
Modules
- Added two audio filters to core module to be used on a playlist/track:
audioseam
autofade
- Fixed a crash in
vidstab
filter on image format change. - Fixed font weight in
qtext
filter on Qt 6. - Fixed yuv420p not working in
rescale
filter. - Fixed text shadow outline in
kdenlivetitle
producer. - Fixed crash when changing the profile with
count
producer. - Fixed constructor corruption in
frei0r
module. - Fixed
deinterlace
link was added to invalid producer inxml
producer. - Fixed producers not indicating progressive scan video:
kdenlivetitle
pango
qimage
qtext
- Fixed video scan mode detection in
avformat
producers that only indicate
on their container format and not on frames such as Ut Video in Matroska. - Fixed very large images in
qimage
producer on Qt 6. - Fixed seeking on clips that use
speed_map
intimeremap
link. - Fixed a color level problem with sRGB inputs in the
movit
module. - Fixed
avformat
producer's deallocation function forAVCodecContext
. - Fixed field order of
qtblend
andfrei0r.cairoblend
transitions. - Changed the
avformat
producerseek_threshold
default to 64. - Updated
ebur128
filter to version 1.2.6.
v7.16.0
Framework
- Added a
chain_normalizers.ini
to the data directory. - Added New C functions to support deinterlacer links:
mlt_deinterlacer_name()
mlt_deinterlacer_id()
mlt_link_filter_init()
mlt_link_filter_metadata()
mlt_cache_put_frame_audio()
mlt_cache_put_frame_image()
mlt_frame_clone_audio()
mlt_frame_clone_image()
- Added support for loading a filter as a link via
mlt_link_filter_init()
. - Added enum
mlt_deinterlacer
with:mlt_deinterlacer_none
mlt_deinterlacer_onefield
mlt_deinterlacer_linearblend
mlt_deinterlacer_weave
mlt_deinterlacer_bob
mlt_deinterlacer_greedy
mlt_deinterlacer_yadif_nospatial
mlt_deinterlacer_yadif
mlt_deinterlacer_bwdif
mlt_deinterlacer_estdif
mlt_deinterlacer_invalid
- Added new 10-bit YUV members to enum
mlt_image_format
:mlt_image_yuv420p10
mlt_image_yuv444p10
- Fixed a deadlock and improved quality of start of playback when
mlt_consumer
propertyprefill
is greater than 1. - Fixed a couple of data races in
mlt_events
andmlt_consumer
. - Fixed a crash in
mlt_frame_clone()
with movit and themask_start
filter.
Modules
- Fixed regressions in version 7.14.0:
- memory and thread count usage in
swresample
andresample
links - automatic profile support in
melt
- crash in
count
producer
- memory and thread count usage in
- Upgraded the
glaxnimate
git submodule to version 0.5.3. - Added avformat/
avdeinterlace
(default) and xine/deinterlace
links. - Fixed deinterlacing in the
multi
andqglsl
consumers. - Added 10-bit video support to
movit.convert
filter. - Several things in the
avformat
producer:- Fixed artifacts decoding raw FLAC audio.
- Fixed a potential crash on
mlt_producer_probe()
. - Fixed seeking on music with album art.
- Fixed possible infinite loop on end-of-file.
- Fixed a potential deadlock.
- Fixed chroma bleeding on interlaced yuv420p.
- Fixed
color_range
orforce_full_range
sometimes not working. - Fixed
autorotate
property not working with a chain. - Added audio caching.
- Deprecated the
mute_on_pause
property.
- Fixed FFmpeg version 6 compilation error.
- Fixed rendering the text outline in
kdenlivetitle
producer. - Fixed
'movit.rect
property animation. - Fixed corrupt video in
crop
filter whenmlt_image_yuv420p
requested. - Fixed possible null pointer crashes in some audio filters:
audiolevel
volume
loudness
- Fixed a possible roi assert crash in
opencv.tracker
filter. - Added support for "Nano"
algo
to theopencv.tracker
filter. - Added the property
fix_background_alpha
to theluma
transition.
Other
- Added
-query links
tomelt
command line. - Added
avformat
consumer presets for 10-bit video:- AV1
- DNxHR-HQ
- FFV1
- ProRes 422
- ProRes 444
- ProRes HQ
- x264-high10
- x265-main10
- Added a
clang-format
target to CMake and reformatted all code. - Added warnings as errors with some exceptions to CMake with
Debug
build type and gcc. - Fixed numerous warnings throughout the code.
v7.14.0
Framework
- Added functions to get detailed info about a producer more directly (without having to get a frame and get its image in the case of
avformat producer, for example):mlt_producer_probe()
Mlt::Producer::probe()
- Added functions to add normalizer links to chains (based on a
chain_loader.ini
configuration data file:mlt_chain_attach_normalizers()
Mlt::Chain::attach_normalizers()
- Changed
locale_t
tomlt_locale_t
to avoid redefinition on some systems (e.g. clang/llvm on win32). - Fixed the value provided with event "consumer-thread-join" to be
mlt_event_data_thread
as documented. - Fixed
mlt_image_format_planes()
formlt_image_yuv420p
.
Modules
- Added a
swresample
link to the avformat module. - Added a
resample
link to the resample module. - Fixed compatibility of avformat module with FFmpeg version 6.
- Fixed
rotoscoping
filter when request image size different than profile. - Fixed
timeremap
link breakingcrop
filter. - Fixed audio/video sync in
avformat
producer when the video start time is not 0. - Improved seeking on a WMA audio file in
avformat
producer. - Optimization to set
AVDISCARD_ALL
on disinterested streams inavformat
producer. - Added separate demuxing thread in
avformat
producer. - Added
filtergraph
property to theavformat
producer. - Fixed filter
movit.convert
's CPU image converter inmlt_tractor
andmlt_frame_clone()
. - Fixed using
movit
module with mlt_chain. - Fixed 10-bit full range YUV color input with Movit.
- Fixed aspect ratio issues in
qtblend
filter transform. - Fixed the
movit.luma
transition. - Changed the
qglsl
consumer to use an OpenGL core profile version 3.2 context to make it compatible with recent Movit versions. - Upgraded
glaxnimate
git submodule to version 0.5.2. - Fixed
xml
producer incorrectly adds a path prefix to aconsumer
producer. - Fixed using
opencv.tracker
filter withmlt_chain
. - Added interlace-aware chroma conversion from mlt_image_yuv422 to yuv420p in the
avformat
consumer. - Added the
speed_map
property to thetimeremap
link. - Fixed the
loader
producer not injecting theconsumer
producer when axml
producer changes the frame rate. - Fixed 'loader' producer corrupts the profile colorspace and description when it injects a
consumer
producer. - Added a
loader-nogl
producer to the core module based onloader
but prevents addingmovit
-based filters. - Changed
count
producer to take an optional string argument with the name of a loader producer. - Fixed
yadif
deinterlace not working in a mlt_chain. - Fixed the bob, weave, greedy, onefield
deinterlace
filter methods on x86-64 architecture.
Other
- Fixed SWIG python shadow functions for mlt7.
- Added CMake build option
MOD_GLAXNIMATE_QT6
.
v7.12.0
This version is released soon after 7.10.0 to fix a couple of major new bugs in the popular qtblend
and frei0r.cairoblend
transitions. It also includes new color animation APIs with sensible interpolation!
Framework
- Added new color animation APIs:
mlt_property_set_color()
mlt_property_get_color()
mlt_property_anim_set_color()
mlt_property_anim_get_color()
mlt_properties_anim_set_color()
mlt_properties_anim_get_color()
Mlt::Properties::anim_get_color(char const*, int, int)
Mlt::Properties::anim_set(char const*, mlt_color, int, int, mlt_keyframe_type)
Modules
- Updated the following services to support animation of color properties:
frei0r
(any color parameter in any frei0r plugin)chroma
chroma_hold
audiolevelgraph
audiospectrum
audiowaveform
gpsgraphic
gpstext
qtcrop
qtext
- Added
discontinuity_reset
property todynamic_loudness
filter. - Fixed
qtblend
transition not blending with an opaque rgba image. - Added support for the "finer" engine in Rubberband version 3.
- Fixed crash in
frei0r.cairoblend
whenthreads
property not set.
Other
- Fixed leaking the xml producer in
melt
when the XML contains aconsumer
element but no profile information. - Fixed symbol not found error in
rtaudio
consumer.
v7.10.0
The highlight of this version is support for Qt 6.
Framework
- Fixed some unguarded null pointers.
- Added
MLT_REPOSITORY_DENY
environment variable to skip loading a module (colon delimited list of file names without extension, for example "libmltqt"). - Fixed frame corruption with one frame transition.
- Changed so-called test-card frame with audio to show a checkerboard:
- Added
mlt_image_fill_checkerboard()
- Added
mlt_image_fill_white()
- Added
- Preserve the producer
creation_time
property when creating a chain. - Added
mlt_image_rgba_opaque()
. - Fixed getting a property as a timecode or clock value with 24 or 23.98 fps in
mlt_property.c
.
Modules
- Added support for Qt 6:
- Added
MOD_QT6
andBUILD_TESTS_WITH_QT6
CMake options. - Allow installing building and installing both Qt 5 & 6 modules.
- Avoid loading both Qt 5 & 6 modules by preferring Qt 5 (use MLT_REPOSITORY_DENY=libmltqt to block Qt 5 and use Qt 6).
- This is limited to the
qt
module for now and notglaxnimate
(still a work-in-progress).
- Added
- Added support for WebP animation to
qimage
producer. - Added
gps_graphic
filter to theqt
module. - Added the
format
property in each producer's get_frame method to indicate the producer's default/preferred mlt_image_format to facilitate an optimization in theqtblend
transition when the B frame is opaque and has the same aspect ratio. - Added property animation to all audio visualization filters in the
qt
module. - Improved TGA format detection in
qimage
filter. - Fixed
qtblend
transition has incorrect scaling with consumer scaling. - Fixed an case of incorrect alpha scaling in
qtblend
transition. - Fixed
luma
transition not updated whenresource
property changes. - Added the
alpha_operation
property to theshape
filter. - Updated the
glaxnimate
git submodule to version 0.5.1. - Fixed
lines
filter inoldfilm
regression in v7.6.0. - Added
dbpeak
property to theaudiolevel
filter in dB. - Fixed memory leak using some frei0r plugins in conjunction with an
affine
that animates therect
property.
Other
- Fixed building for musl.
- Fixed underlinking iconv in
gdk
module on MinGW. - Fixed SWIG CMake options can overwrite each other.
- Fixed SWIG 4 no longer generates a
mlt.php
.