-
Notifications
You must be signed in to change notification settings - Fork 325
/
NEWS
2462 lines (2091 loc) · 100 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
MLT Release Notes
-----------------
Version 7.28.0
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.
Version 7.26.0
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`.
Version 7.24.0
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()`.
Version 7.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 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.
Version 7.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 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_style`s 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` <kbd>Shift+H</kbd> and <kbd>Shift+L</kbd> keyboard
shortcuts when the SDL2 window has focus.
Version 7.18.0
Framework
* Fixed `mlt_frame_get_audio` fails on `mlt_audio_none`.
* Added `mlt_audio_free_data()`.
* Added `meta.playlist.clip_position` and `meta.playlist.clip_length`
properties to `mlt_playlist`.
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.
Version 7.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` 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.
Version 7.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` 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 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.
* Fixed aspect ratio issues in `qtblend` filter transform.
* 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`.
Version 7.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 to `dynamic_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` when `threads` property not set.
Other
* Fixed leaking the xml producer in `melt` when the XML contains a `consumer`
element but no profile information.
* Fixed symbol not found error in `rtaudio` consumer.
Version 7.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()`
* 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` and `BUILD_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 not `glaxnimate` (still
a work-in-progress).
* Added support for WebP animation to `qimage` producer.
* Added `gps_graphic` filter to the `qt` 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 the `qtblend` 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 when `resource` property changes.
* Added the `alpha_operation` property to the `shape` filter.
* Updated the `glaxnimate` git submodule to version 0.5.1.
* Fixed `lines` filter in `oldfilm` regression in v7.6.0.
* Added `dbpeak` property to the `audiolevel` filter in dB.
* Fixed memory leak using some frei0r plugins in conjunction with
an `affine` that animates the `rect` 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`.
Version 7.8.0
This highlight of this version is a new glaxnimate producer to render 2D
vector art and animation.
Framework
* Added `mlt_frame_get_alpha_size()` and refactored code to use it.
* Fixed a possible null pointer crash in `mlt_service_apply_filters()`.
Modules
* Added a `glaxnimate` producer to the glaxnimate module.
* Added new file extensions for `glaxnimate` producer: json, lottie, rawr, tgs.
* Removed Qt4 compatibility from the qt module.
* Added Qt6 compatibility to the qt module.
* Added new file extensions for `qimage` producer: avif, heic, heif, jxl.
* Fixed `color_range` when using the `multi` consumer.
* Fixed reloading updated `results` in the `loudness` filter.
* Fixed `image_mode=blend` in the `timeremap` link.
* Fixed crash regression in `swscale` filter with odd size YUV image.
* Fixed the `choppy` filter may result in black frames with transitions.
* Prevent a crash in `avfilter` producer for a bug in glibc with `_FORTIFY_SOURCE=3`.
Version 7.6.0
This version adds image slice-threading to many filters and full support for
full range color. All inputs are normalized to and processed at
the range specified by the consumer property `color_range` that defaults to
tv/mpeg (limited).
Framework
* Added `Mlt::Animation::next_key()` and `previous_key()` with error checking.
* Fixed the `moduledir` and `mltdatadir` variables in the pkg-config file.
* Removed calling `setlocale()` in `mlt_factory_init()` (moved to `melt`
option `-setlocale`).
* Added `mlt_properties_copy()` and `Mlt::Properties::copy()`.
* Changed some primarily internal property names to consolidate on "consumer."
as a prefix convention for all consumer properties copied to `mlt_frame`s.
* Added consumer property `deinterlacer` to replace deprecated `deinterlace_method`.
* Fixed full range color from producer to consumer.
* Added `mlt_slices_size_slice()` helper function.
* Fixed choppy playback due to large values in `frame_rate_num` or
`frame_rate_den` in `mlt_consumer`.
* Added performance optimization for a single slice in `mlt_slices`.
Modules
* Added `audiolevelgraph` video filter to the `qt` module.
* Added property `segment_gap` to the `audiospectrum` video filter.
* Added `segments` property to the `audiolevelgraph` and `audiospectrum` filters.
* Fixed loading image sequence with extended UTF-8 characters in the
name of a folder for the `qimage` producer.
* Fixed a crash in `avformat` producer if the `rotate` property is set after
the first frame is fetched.
* Added the `invert_mask` property to the `shape` video filter.
* Changed `avformat` producer to normalize frame rates very close to
non-integer broadcast frames 24/1.001, 30/1.001, and 60/1.001.
* Converted the `chroma` and `chroma_hold` filters' `key` property to a proper
color type.
* Added slice threading to:
- `avformat` producer (with FFmpeg v5)
- `swsscale` (with FFmpeg v5)
- `lift_gamma_gain`
- `shape`
- `charcoal`
- `vignette`
- `wave`
- `threshold`
- `tcolor`
- `sepia`
- `mirror`
- `invert`
- `grain`
- `lines`
- `spot_remover`
* Improved the speed of the `oldfilm` filter.
* Added a faster `box_blur` filter to the core module and deprecated the
`boxblur` filter in the kdenlive module.
* Fixed preview scaling for the `avfilter.gblur` filter.
* Fixed incorrect text overlap in `kdenlivetitle` producer.
* Improved audio synchronization in `avformat` when playing in reverse.
* Added much more service metadata (documentation).
* Fixed full range 10-bit video input in `avformat` producer.
* Fixed full range color handling in:
- `avformat` producer
- `avcolor_space`
- `brightness`
- `resize`
- `luma` transition
- `movit.convert`
- `charcoal`
- `invert`
- `shape`
* Fixed identifying unsupported colorspaces in `avformat` producer.
* Fixed preserving the alpha channel in the `avfilter.fspp` filter.
Other
- Some CMake fixes.
- Added `dumb-init` to the docker (no need to remember `docker run --init`).
Version 7.4.0
The main highlight of this version is property animation for avfilter!
Framework
* Added more constructors and assignment operators in C++ wrapper:
- `Mlt::Filter::Filter(Mlt::Filter*)`
- `Mlt::Link::Link(Mlt::Link*)`
- `Mlt::Link::Link(Mlt::Service&)`
- `Mlt::Link::Link(Mlt::Link&)`
- `Mlt::Link::Link(Mlt::Link const&)`
- `Mlt::Link::operator=(Mlt::Link const&)`
- `Mlt::Service::Service(Mlt::Service*)`
* Fixed serialized animation in `mlt_animation_serialize_cut_tf()` and
`mlt_animation_serialize_cut()` to include a trailing keyframe value.
Modules
* Added property animation for `avfilter` filters.
This only works for numeric parameters, but many libavfilter options that
have a type string are actually numeric in nature but accept a string
expression.
* Added `rotate` property to `avformat` producer to override orientation.
* Changed `jackrack` module to silence false LADSPA plugin loading errors.
* Fixed a crash in the `oldfilm` filter when using preview scaling.
* Fixed `timeremap` link distorts audio when speed is zero.
* Added nautical mile and knot units of measure to the `gpstext` filter.
* Fixed full range color handling with embedded tractor (e.g. same track
transition).
* Fixed device capture in `avformat` producer regression in version 7.2.0.
* Fixed a crash in the `matte` transition.
Version 7.2.0
This is the first major maintenance release for the new major version 7
rendering it much more production ready. Plus there are a few nice new features.
Framework
* Added support for `mlt_properties` as a child of `mlt_properties`
including XML (de)serialization:
- `mlt_property_set_properties()`
- `mlt_property_get_properties()`
- `mlt_properties_set_properties()`
- `mlt_properties_get_properties()`
- `mlt_properties_get_properties_at)(`
- `Mlt::Properties::set()`
- `Mlt::Properties::get_props()`
- `Mlt::Properties::get_props_at()`
Applications can use this to store structured data in its own namespace,
for example "shotcut:markers". And modules could use this for hierarchical
parameters.
* Fixed crash in `mlt_transition` upon inserting or removing a track.
* Stopped loading `mlt_profile` until needed in `mlt_chain` creation.
Modules
* Added filter `gpstext` that is similar to `dynamictext` based on data in a
GPX file.
* Added speed parameter to `timer` filter.
* Added WebP presets for `avformat` consumer.
* Added a pixelate option to the `opencv_tracker` filter's `blur` property.
* Fixed `center_bias` of `crop` filter not working with `use_profile`.
* Fixed some missing RGB `mlt_image_format` renames after change in v7.0.0.
This primarily affected presets and service metadata.
* Fixed a crash when changing preview scaling in `timeremap` link.
* Fixes problems due to adding redundant normalize filters upon loading a
producer from XML.
* Ensure filters added by the `loader` producer always come first in list.
* Fixed a crash using `shape` and `affine` filters together on `color` producer.
* Fixed a crash when a `vidstab` file fails to open.
* Changed `vidstab` filter to save its file in ASCII text mode.
* Fixed a clang LTO error in the `decklink` module.
* Fixed a video decoding regression on some videos in the `avformat` producer.
* Fixed a crash in the `audiowaveform` filter.
* Fixed loading a relative filename from XML for `mask_start` with `shape`.
* Fixed "#filedate#" in `dynamictext` filter when used with `timeremap` link.
* Fixed `timer` filter's new `speed` property interaction with `start` delay.
* Fixed a crash with YUYV422 (YUY2) input in `avformat` producer.
* Fixed data race condition in `timeremap` link.
* Fixed compiling `avformat` module with FFmpeg git beyond v4.4 with
many deprecations removed.
* Fixed alpha channel size calculation in `brightness` filter.
* Restore legacy tracker and the new DaSiam tracker for OpenCV >= 4.5.3 in the
`opencv_tracker` filter.
* Fixed a crash in `opencv_tracker` on `shape_width` = 0.
* Fixed incorrect handling of in and out points and duration in the
`opencv_tracker` filter.
* Fixed the `composite` transition leaking left border of an image on the
right side on uneven width.
* Fixed a problem handling some UTF-8 in thhe `typerwriter` filter.
Other
* Added support for the `RELOCATABLE` CMake option for Linux or BSD build.
Version 7.0.1
This version is just build fixes for the most immediate problems with the
somewhat new but exclusive build system in v7.
* Fixed docker image not working.
* Fixed a system-installed build cannot finds its modules and data.
* Fixed the python installation path for binaries.
* Added support for the `DESTDIR` environment variable when creating melt symlink.
* Increased the build constant for the maximum size of a line of a properties file.
* Fixed the vid.stab metadata install path.
Version 7.0.0
This is a major new version that breaks API to add a major new feature to the
framework: retiming. This is accomplished through new classes `mlt_chain` and
`mlt_link`. And since we are breaking API we decided to clean house by
removing deprecations and switching the build system over entirely to CMake.
For more information see our
[migration guide](https://mltframework.org/docs/v7migration/).
Framework
* Added `mlt_chain` and `Mlt::Chain` classes.
* Added `mlt_link` and `Mlt::Link` classes.
* Added a `link` value to service `type` in the service metadata schema.
* Added a boolean `animation` parameter attribute to the service metadata schema.
* Added `mlt_animation_shift_frame()` and `Mlt::Animation::shift_frames()`.
* Added `mlt_animation_get_string()`.
* Fixed using a stale cached property animation string.
* Added `mlt_image` and `Mlt::Image` classes.
* Remove legacy "height + 1" workaround in image allocation.
* Fixed a crash on setting `timewarp` speed higher than 23x.
* Added `mlt_audio_silence()`.
* Removed `mlt_image_opengl`.
* Replaced variadic arguments in `mlt_events` with new `mlt_event_data` APIs.
* Removed `mlt_geometry` APIs.
* Renamed `mlt_image_rgb24a` as `mlt_image_rgba`.
* Renamed `mlt_image_rgb24` to `mlt_image_rgb`.
* Renamed `mlt_image_glsl` to `mlt_image_movit`.
* Renamed `mlt_image_glsl_texture` to `mlt_image_opengl_texture`.
* Removed virtual function `mlt_frame::get_alpha_mask()`.
* Removed `mlt_frame_get_alpha_mask()`.
* Removed deprecated functions:
- `mlt_sample_calculator`
- `mlt_sample_calculator_to_now`
- `mlt_channel_layout_name`
- `mlt_channel_layout_id`
- `mlt_channel_layout_channels`
- `mlt_channel_layout_default`
- `mlt_slices_init`
- `mlt_slices_close`
- `mlt_slices_run`
- `mlt_playlist_move_region`
- `Mlt::Playlist::move_region`
* Fixed a rounding error calculating display aspect ratio in `mlt_profile_from_producer()`.
Modules
* Added a `timeremap` link to the core module with animatable `map` property.
(Speed can increase or decrease between keyframes including reverse.)
* Added `chain` and `link` XML elements to `xml` module.
* Added "meta.media.has_b_frames" property to `avformat` producer.
* Removed deprecated modules:
- `dv`
- `gtk2` (not gdk)
- `kino`
- `linsys`
- `lumas`
- `motion_est`
- `swfdec`
- `videostab`
* Removed the following services:
- `data_feed` filter
- `data_show` filter
- `region` filter and transition
- `sdl_image`
* Converted filters to use new `mlt_image` class:
- `brightness`
- `imageconver`
- `mirror`
- `spot_remover`
* Deprecated the `audiowave` filter.
* Added the ability to build the `jackrack` module without JACK to get only
LADSPA producers and filters.
* Deprecated `start` and `end` properties for the following filters:
- `brightness`
- `panner`
- `boxblur`
- `wave`
- `volume`
* Removed deprecated `font` property from `pango` producer.
* Improved album art (attached pic) detection in `avformat` producer.
* Improved the `resample` filter to have less artifacts and use less memory.
Other
* CMake: nearly complete rewrite.
* Removed the old configure bash scripts and Makefiles.
* Added `-chain` and `-link` options to `melt` command line.
Version 6.26.1
This version fixes a major regression in the avformat producer to read from
network URLs.
Version 6.26.0
This is the last planned release of major version 6. Version 7 will be released
soon and introduce some minor API breakage while removing deprecations.
The main new feature in this version is hardware-accellerated decoding!
However, this is a basic implementation: It always returns the uncompressed
video to the CPU memory with no pipelining to filters. Even when coupled with
hardware encoding in the avformat consumer it must transfer the video. Also,
there is no automatic software/CPU fallback and no resource management.
Modules
* Added support for `hwaccel` query string parameter to the `avformat`
producer. It accepts the following values:
vaapi (Linux/BSD), cuda (Linux), videotoolbox (macOS), d3d11va (Windows), dxva2 (Windows)
* Added support for `hwaccel_device` query string parameter to the `avformat`
producer. This is only used with vaapi (device path) and cuda, d3d11va, or
dxva (number).
* Improved the usage of image slice threading in `frei0r`. This only applies
when `threads`=0 and only works with some frei0r plugins that you must decide
yourself.
* Added an ellipse item to `kdenlivetitle` producer.
* Added support for PNG and GIF as album art in the `avformat` producer.
* Added BT.2020 color space metadata to the `avformat` producer.
* Resolved many FFmpeg deprecations in the `avformat` producer making it possible to support AV1 decoding.
* Added a `strobe` fitler that periodically makes the alpha channel transparent.
* Added a new `typewriter` text filter (currently only works with the
kdenlivetitle producer).
* Improved sound quality for lower pitch shifts in `rbpitch`.
* Fixed speed of trick play in the `jack`, `rtaudio`, `sdl_audio`, and `sdl2_audio` consumers.
* Fixed matrix for independent channels in `swresample` filter.
* Fixed leading zeros for the `timer` filter.
* Fixed flickering using `affine` with a `luma` transition.
* Fixed a crash using RGBA images in the `qimage` producer (regression in v6.22.0).
* Fixed `brightness` filter misbehaves on `alpha` > 1.
* Fixed writing `flac` format file does not set its duration in the `avformat` consumer.
* Fixed an infinite loop in `rbpitch` filter.
* Fixed `ttl` in the `qimage` producer.
* Fixed building with OpenCV 4.5
* Fixed artifacts with multiple HTML `qtext` filters and frame threading.
* Deprecated the `start` and `end` properties on the following (use property
animation instead):
- brightness
- panner
- boxblur
- wave
- volume
* Deprecated the following services:
- data_show
- region
- transition filter
- autotrack_rectangle
- motion_est
- slowmotion
Other
* CMake:
- Fixed building without SWIG.
- Added many "MOD_..." options to explictly disable modules.
- Added src/tests and the option `BUILD_TESTING`, which defaults off.
- All dependency checks moved to top level CMakeLists.txt.
- Install melt man page.
- Install oldfilm SVG files.
- Added src/examples.
- Install framework/metaschema.yaml.
- Fixed `plusgpl` datadir.
- Added all swwig/ languages.
- Increased C++ standard to C++14.
* Added an `AV1` encoding preset.
* Improved documentation of the requirement for C11.
* The minimum version of FFmpeg is v4.0 and Libav is no longer supported.
Version 6.24.0
This version is mostly fixes plus a few new filters.
Framework
* Trigger a `property-changed` event on `mlt_properties_pass_list`.
* Fixed using a video transition with a video clip on an audio track.
* Reduce the amount of service caching to 2X #tracks to reduce memory usage.
Modules
* Added the `pillar_echo` filter to the plus module.
* Added a `qtcrop` filter to the qt module.
* Added `html`, `resource`, `overflow-y`, and `_hide` properties to the `qtext` filter for rich text.
* Added the filter `choppy` to the core module.
* Added slice threading to the `brightness` filter.
* Fixed compiling with OpenCV 4.
* Fixed the colors when using `mlt_image_format=rgb24a` with `avformat` consumer.
* Fixed using WebVfx in a Docker container.
* Fixed a possible crash in the `timewarp` producer on sources with non-integer frame rates.
* Fixed a regression in version 6.22 with multiple affine filters at the same time.
* Fixed possible abort or deadlock on recursive pthread mutexes in `avformat` producer.
* Fixed a crash in `crop` filter with large `center_bias` value when `use_profile` is 1.
* Fixed a white video frame appearing on threaded rendering in `freeze` filter.
* Fixed MLT XML DRD to permit empty playlists, which may occur on empty tracks in a multitrack.
* Fixed initializing QApplication in the `qimage` producer.
* Fixed interpolation when scaling with the `affine` rect and geomety properties.
* Fixed high memory usage with high factors of pitch shifting in the `rbpitch` filter.
* Fixed a crash on files with more than 32 streams in the `avformat` producer.
Other
* Fixed CMake build on MSYS2 and Windows Craft.
* Added the Python binding to the CMake build.
* Added the `sdl` (v1) module to the CMake build.
* Removed minrate and maxrate from the `webm` avformat consumer preset.
Version 6.22.1 - July 30, 2020
This patch version only fixes the version reported in the CMake build.
Version 6.22.0 - July 30, 2020
This version fixes bugs associated with the preview scaling introduced in the
previous version.
Framework
* Added mlt_properties_exists() and Mlt::Properties::property_exists().
* Added mlt_audio C class with:
- mlt_audio_new()
- mlt_audio_close()
- mlt_audio_set_values()
- mlt_audio_get_values()
- mlt_audio_alloc_data()
- mlt_audio_calculate_size()
- mlt_audio_plane_count()
- mlt_audio_plane_size()
- mlt_audio_get_planes()
- mlt_audio_shrink()
- mlt_audio_reverse()
- mlt_audio_copy()
- mlt_audio_calculate_frame_samples()
- mlt_audio_calculate_samples_to_position()
- mlt_audio_channel_layout_name()
- mlt_audio_channel_layout_id()
- mlt_audio_channel_layout_channels()
- mlt_audio_channel_layout_default()
* Added Mlt::Audio C++ class with:
- Mlt::Audio::Audio()
- Mlt::Audio::Audio(mlt_audio_s*)
- Mlt::Audio::~Audio()
- Mlt::Audio::data()
- Mlt::Audio::set_data(void*)
- Mlt::Audio::frequency()
- Mlt::Audio::set_frequency(int)
- Mlt::Audio::format()
- Mlt::Audio::set_format(mlt_audio_format)
- Mlt::Audio::samples()
- Mlt::Audio::set_samples(int)
- Mlt::Audio::channels()
- Mlt::Audio::set_channels(int)
- Mlt::Audio::layout()
- Mlt::Audio::set_layout(mlt_channel_layout)
* Fixed drop-frame timecode for 59.94 fps.
* Fixed crash on null pointer passed to mlt_consumer_stop().
Modules
* Fixed frei0r transitions with preview scaling.
* Fixed affine ox and oy properties incorrect with preview scaling.
* Fixed a crash and incorrect preview scaling with more than one affine
filter active on the same frame.
* Fixed preview scaling for the rotoscoping filter.
* Added the sample_fmt property to the avformat consumer.
* Fixed a possible segfault in the mix transition.
* Removed support for text keyframes to the text and qtext filters
to fix regression on strings containing '='.
* Disable frame-threading with bigsh0t, distort0r, and medians frei0r plugins.
* Added "meta.media.%d.stream.projection" property the avformat producer.
* Fixed a crash with with filters not supporting preview scale in frei0r
transitions.
* Fix artifacts in luma transition and affine filter with frame-threading.
* Stop including 'title="Anonymous Submission"' in xml consumer.
* Fixed a crash in opencv.tracker filter.
* Fixed a crash in composite transition if luma file fails to load.
* Added validations in opengl module to prevent asserts in Movit.
* Fixed building with OpenCV 4.
* Moved some services from gtk2 module to new gdk module:
- gtkrescale filter
- pango producer
- pixbuf producer
* Deprecated the gtk2 module and no longer enabled by default.
* Changed avformat producer to accept a '?' in argument/resource property
by escaping it as '\?'.
* Changed the background property of the affine filter to be mutable.
* Deprecated the linsys (DVEO SDI) module.
* Fixed changing the audio_index property in the avformat producer.
* Changed resample filter to more resiliant to frequency changes.
* Added a video_delay property to the sdl2_audio and rtaudio consumers.
* Add millisecond options to the timer filter.
* Fixed the in point handling for the timewarp producer.
* Fixed some audio gaps and sync issues with the rbpitch filter and timewarp
pitch compensation.
* Fixed a possible crash caused by producer consumer.
* Changed avformat consumer to set AVOption color_primaries based on the
MLT colorspace if not already set as property.
* Fixed crop right on image with odd width skews image in crop filter.
* Fixed incorrect silence value for unsigned 8-bit audio in avformat producer.
* Changed qimage to use Qt's internal orientation detection instead of libexif.