News

v7.22.0 released

Nov 28, 2023

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.

v7.20.0 released

Oct 1, 2023

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.

v7.18.0 released

Jul 28, 2023

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.

v7.16.0 released

May 7, 2023

You can download it from GitHub.

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 property prefill is greater than 1.
  • Fixed a couple of data races in mlt_events and mlt_consumer.
  • Fixed a crash in mlt_frame_clone() with movit and the mask_start filter.

Modules

  • Fixed regressions in version 7.14.0:
    • memory and thread count usage in swresample and resample links
    • automatic profile support in melt
    • crash in count producer
  • Upgraded the glaxnimate git submodule to version 0.5.3.
  • Added avformat/avdeinterlace (default) and xine/deinterlace links.
  • Fixed deinterlacing in the multi and qglsl 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 or force_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 when mlt_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 the opencv.tracker filter.
  • Added the property fix_background_alpha to the luma transition.

Other

  • Added -query links to melt 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 released

Mar 6, 2023

You can download it from GitHub.

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 to mlt_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() for mlt_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 breaking crop 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 in avformat producer.
  • Added separate demuxing thread in avformat producer.
  • Added filtergraph property to the avformat producer.
  • Fixed filter movit.convert’s CPU image converter in mlt_tractor and mlt_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 a consumer producer.
  • Fixed using opencv.tracker filter with mlt_chain.
  • Added interlace-aware chroma conversion from mlt_image_yuv422 to yuv420p in the avformat consumer.
  • Added the speed_map property to the timeremap link.
  • Fixed the loader producer not injecting the consumer producer when a xml 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 on loader but prevents adding movit-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.

Search

Subscribe

Subscribe to News via RSS.

Recent Posts

About

MLT enables you to author, manage, and run multitrack audio/video compositions.
See our Hall of Fame
Copyright © 2008-2018 by Meltytech, LLC.

Social Links