❌

Lees weergave

Blog: v7.36.0 released

You can download it from GitHub.

This version adds image processing in linear color on the CPU (previously only Movit). Plus, it extends 10-bit video processing on the CPU to many more services.

Framework

  • Added mlt_image_default_colorspace()
  • Added mlt_image_default_trc()
  • Added mlt_image_default_primaries()
  • Added mlt_color_convert_trc()
  • Added the mlt_consumer property mlt_color_trc to drive a new color_transform normalizer filter. This sets the color transfer function to use for image/video effects. It is beneficial and correct to use linear color for any pixel mixing whether for blending or interpolation.
  • Removed atexit(mlt_factory_close) in mlt_factory_init(). Close the factory yourself if you feel the need to (not generally needed when exiting a process).
  • Prevent possible crash in mlt_service_connect_producer().
  • Added mlt_profile_is_valid() and Mlt::Profile::is_valid().
  • Fixed crash on invalid profile (CVE-2025-65834) in:
    • mlt_consumer_start()
    • mlt_factory_producer()
    • xml producer

Modules

  • Drop support for Qt 5.
  • Fixed bad color in luma transition’s dissolve (regression in v7.34.0).
  • Fixed HLG HDR broken in decklink consumer (regression in v7.34.0).
  • Fixed warnings when flushing audio in the avformat consumer.
  • Added support for hwaccel=vulkan to the avformat producer.
  • Added a color_transform normalizer filter to the core module to convert all image/video producers to and from linear color. It is abstract in the core module and drives the following filters:
    • avfilter.zscale
    • sws_colortransform
    • avfilter.scale
  • Added filter sws_colortransform that is more efficient than avfilter.swscale but requires FFmpeg 8.
  • Changed the default property values of the null consumer:
    • real_time: -1
    • terminate_on_pause: 1
  • Changed the luma and movit.luma transitions to progress linearly with linear color_trc.
  • Fixed the alpha channel dropped by the xml-clip producer.
  • Added mlt_image_rgba64 format to:
    • avcolor_space filter
    • avdeinterlace filter
    • affine filter and transition
    • audiolevelgraph filter
    • audiospectrum filter
    • audiowaveform filter
    • autofade filter
    • avformat producer and consumers
    • box_blur filter
    • brightness filter
    • pillar_echo filter
    • color producer
    • dropshadow filter
    • dynamictext filter (when used with qtext)
    • frei0r.alpha0ps filter
    • frei0r.alphagrad filter
    • frei0r.alphaspot filter
    • frei0r.bluescreen0r filter
    • frei0r.select0r filter
    • frei0r.transparency filter
    • gpsgraphic filter
    • gpstext filter
    • gradientmap filter
    • hslprimaries filter
    • hslrange filter
    • kdenlivetitle producer
    • lift_gamma_gain filter
    • lightshow filter
    • mask_apply (when used with qtblend)
    • movit.convert filter
    • outline filter
    • qtblend filter and transition
    • qtcrop filter
    • qtext producer
    • shape filter
    • spot_remover filter
    • strobe filter
    • subtitle filter (when used with qtext)
    • swscale filter
    • text filter (when used with qtext)
    • timeremap link
    • timer filter (when used with qtext)
    • vqm transition
  • Changed the mask_apply filter default transition to qtblend.
  • Removed the maximum for the alpha property on the brightness filter so that you can increase the opacity of an existing alpha channel.
  • Fixed background image scaling in the gpsgraphic filter.
  • Fix audio artifacts with pcm_s24le in mkv in avformat producer.

Other

  • Removed bitrate and quality limits in the vp9 and webm avformat presets.
  • Fixed melt on Windows not reading file path/name with extended characters (regression in v7.34.0).
  • Fixed building the ruby bindings with Ruby 3.0.
  • More fixes for MSVC.
  • Removed win32/strptime.c and replaced with Qt functions.
  • Stop showing melt usage on error exit.
  •  

Blog: v7.34.0 released

You can download it from GitHub.

This versions adds 10-bit video processing on the CPU, but you must ensure you are using compatible filters and transitions.

Framework

  • Added mlt_image_rgba64 format. This change touched core, avformat, and qt modules as well.
  • Added mlt_color_trc, mlt_color_primaries, and more mlt_colorspaces along with functions:
    • mlt_image_color_trc_name
    • mlt_image_color_trc_id
    • mlt_image_colorspace_name
    • mlt_image_colorspace_id
    • mlt_image_color_pri_name
    • mlt_image_color_pri_id
  • Fixed some minor memory leaks with cppcheck.

Modules

  • Added rgba and rgba64 formats to the luma transition.
  • Added rgba64 format to affine filter and transition.
  • Added rgba64 format to the qtblend transition.
  • Added support for FFmpeg 8 to the avformat module.
  • Fixed audio panner filter for 5.1 channel layout.
  • Fixed converting 10-bit full to limited range in avformat producer (regression in v7.30.0).
  • Fixed shadow not working for multi-line template titles in kdenlivetitle producer.
  • Fixed mask_apply filter with custom transition.
  • Added input_chmask & output_chmask properties to mono filter.
  • Added channel_mask property to LADSPA/LV2/VST2 filters.
  • Added channel_mask to the volume filter.
  • Added an outline video filter.
  • Fixed a deadlock on image with a % in the name in qimage producer.
  • Added scrubbing to the decklink consumer.
  • Fixed & not decoded to & in the xml producer.
  • Fixed converting BT.709 to BT.2020 in the avformat module.
  • Fixed building a ladspa module without JACK as dependency.
  • Deprecate a JACK Rack XML file in the jackrack and ladspa modules.
  • Added filter qtblend_mode.
  • Fixed incorrect alpha channel breaking optimization of qtblend.
  • Fixed pixel format gbrap (Ut Video with alpha channel) in the avformat producer.
  • Fixed opencv_tracker filter on cut playlist clips.
  • Fixed warning about missing color range for avfilters that use it (e.g. avfilter.colorspace).
  • Added typewriter properties to the qtext filter.
  • Fixed color distortion or a crash if using hwaccel with orientation rotation in avformat producer.

Other

  • Enable Qt 6 and disable Qt 5 modules in CMake by default.
  • Disable the SDL1 module in CMake by default.
  • Changed melt now exits with 1 if the producer is invalid.
  • Various changes to work with MSVC compiler.
  • Changed SVT-AV1 encode presets to VBR for Opus audio.
  • Fixed initializing Qt on the main thread in melt.
  • Documented the -progress2 option for melt.
  • Increased the minimum C++ version to C++20.
  • Converted many modules to use CMake find_package().
  • Added libgen.c and libgen.h for MSVC.
  •  

Blog: v7.32.0 released

You can download it from GitHub.

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

  • Fixed pixel format for VP8/VP9 streams in avformat producer.
  • Fixed 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.
  • Fixed silencing extra audio channel (e.g. 6 => 8) in decklink consumer.
  • Fixed 5.1 C/LFE channels swapped over HDMI in decklink consumer.
  • Fixed text outline had sharp angles in kdenlivetitle producer.
  • Fixed 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).
  • Fixed opencv_tracker filter should require multiple keyframes to be ready.
  • Fixed OpenCV crash on rect <= 1 pixel in opencv_tracker filter.
  • Fixed aspect ratio in qtblend filter and transition.
  • Fixed QT_QPA_PLATFORM=offscreen not working in qt and glaxnimate modules.
  • Improved preview scaling in qtblend filter.
  • Fixed requesting huge images on multiple qtblend filters or transitions.
  • Fixed sdl2 consumer on macOS.
  • Fixed the strobe filter not working with movit.
  • Fixed color and gamma using timeremap link with movit.
  • Fixed consumer properties (e.g. channels) missing on qglsl consumer injected by the xml producer.
  •  

Blog: v7.30.0 released

You can download it from GitHub.

Framework

  • Fixed Mlt::Producer::set_creation_time() not exported on i686.
  • Fixed Mlt::Properties::set(int64_t) symbol version.
  • Fixed 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.
  • Fixed 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.
  • Fixed avfilter audio filters with FFmpeg 7.
  • Fixed incorrect frame rate for AVCHD (and possibly others) in avformat.
  • Fixed window_id property in consumer sdl2 by using SDL_CreateWindowFrom(), especially important for embedding in GTK+ or Qt.
  • Fixed text not rendering in transition vqm since Qt 6.
  • Added decimals keyword to gpstext filter and move RAW keyword check.
  • Fixed time_offset property handling in gpstext filter.
  • Fixed reading and writing SRT files with unicode in the path.
  • Fixed subtitle_feed filter on producers with an in point > 0.
  • Fixed opaque alpha channels become translucent in luma transition.
  • Fixed a crash in the mix transition with consumer producer.
  • Fixed freeze filter freezing too much.
  • Fixed avfilter.fillborders with preview scaling.
  • Fixed non-proportional scaling in qtblend transition and filter.
  • Fixed avfilter color distortion with mlt_image_rgb and mlt_image_rgba.
  • Extended support for colorspace=2020 consumer property and the BT.2020 colorspace in the avformat producer and consumer. This does not imply HDR, which is signaled through a color_trc property.
  • Added support for mlt_image_yuv420p10, mlt_image_yuv444p10, and mlt_image_yuv422p16 in avfilter, swscale, and rescale filters. This facilitates using these pixel formats end-to-end when using only FFmpeg producers, certain avfilters, and avformat consumer. This means it is possible to do 10-bit end-to-end on the CPU when being careful to select compatible components and options to avoid conversions. One can pass-through HDR; however, you must set the color_trc and pix_fmt properties on the avformat consumer (see ffmpeg -h full for these values). The avformat consumer automatically converts MLT colorspace (integer value) to FFmpeg’s colorspace and color_primaries (unless explicit) options.

Other

  • Cleaned up the examples in src/swig.
  • Changed the x264-medium preset to a higher quality.
  •  

Blog: v7.28.0 released

You can download it from GitHub.

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

Other fixes and changes:

  • Deprecated the composite transition and the sdl and ndi 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 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.
  •  

Blog: v7.26.0 released

You can download it from GitHub.

This release adds support for subtitles and LV2 & VST2 audio plugins.

Framework

  • Fixed a double-free crash in Mlt::Service::profile().

Modules

  • Fixes and improvements to the avformat producer:
    • Changed to prefer r_frame_rate over avg_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.
  • 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 the qt 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 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.”).
  • Fixed alang in the the avformat consumer.
  • Added #gps_power keyword to the gpstext 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 to melt.
  •  

Blog: v7.24.0 released

You can download it from GitHub.

The highlight of this release is support for FFmpeg 7 and Ambsonic audio.

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 producer
    • opencv_tracker filter
    • dynamictext filter
    • qimage producer
  • Added β€œmeta.media.aspect_ratio” property to the avformat producer.
  • Fixed distort property not working in movit.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 the qt and glaxnimate modules.
  • Fixed 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.
  • Fixed outline maximum for the text and dynamictext filters.

Other

  • Fixed crash when using -chain from melt.
  • Fixed a small memory leak on Windows fopen().
  •  

Blog: v7.22.0 released

You can download it from GitHub.

The highlight of this release is support animation easing functions via new keyframe types. Also, new versions of the smooth keyframe type is added that avoids overshoots and cusps.

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 opacity property to filters that use qtext:
    • dynamictext
    • gpstext
    • qtext
    • timer
  • Added fade_video, fade_audio, and fade_color properties to autofade 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.
  •  

Blog: v7.20.0 released

You can download it from GitHub.

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 or mlt_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 the core module.
  • Added keywords to gpstext filter:
    • #gps_cadence#
    • #gps_grade_degrees#
    • #gps_grade_percentage#
    • #gps_temperature#
  • Added some color_styles to the gpsgraphic 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 of gpsgraphic filter:
    • mmin or m/min
    • ftmin or ft/min
  • Added keywords to dynamictext filter:
    • #basename#
    • #filename#
  • Fixed installing filter_audioseam.yml.
  • Added an avlink link to the avformat module for FFmpeg filters that can benefit from future frames such as adeclick.
  • Added the preserve_alpha property to the box_blur filter.
  • Fixed loading service metadata for the qt6 and glaxnimate-qt6 modules.
  • Fixed a crash when changing the rotate property in avformat producer with interlace video.
  • Add astream and vstream properties to avformat producer. Unlike audio_index and video_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’s mlt_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 Linux nvidia driver.

Other

  • Fix compiling on Android (not supported by the core developers).
  • Changed the avformat consumer FLAC preset to use the flac format.
  • Fixed the melt Shift+H and Shift+L keyboard shortcuts when the SDL2 window has focus.
  •  

Blog: v7.18.0 released

You can download it from GitHub.

Framework

  • Added mlt_audio_free_data().
  • Added meta.playlist.clip_position and meta.playlist.clip_length properties to mlt_playlist.
  • Fixed mlt_frame_get_audio fails on mlt_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 in xml 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 in timeremap link.
  • Fixed a color level problem with sRGB inputs in the movit module.
  • Fixed avformat producer’s deallocation function for AVCodecContext.
  • Fixed field order of qtblend and frei0r.cairoblend transitions.
  • Changed the avformat producer seek_threshold default to 64.
  • Updated ebur128 filter to version 1.2.6.
  •  
❌