forked from mltframework/mlt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
1771 lines (1483 loc) · 71.6 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.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.
* Reduced clicks in mix transition by silencing buffers on discontinuity.
* Improved A/V synchronization in (sw)resample filters - also reduces audio clicks.
* Improved speed of the qimage producer.
* Fixed incorrect color using libx264rgb in avformat consumer.
* Fixed relative paths for avfilters that have the "filename" option.
* Fixed some avfilters dropping the alpha channel: smartblur, vaguedenoiser.
* Improved performance of the resize filter.
* Fixed an affine filter inside a transition was always nearest neighbor
interpolation.
* Changed the lift_gamma_gain filter to use round values up.
Other
* Fixed melt option "-group" applies to an implicit consumer.
* Added "-quiet" option to melt (implies -silent but more so).
* CMake build improvments adding modules:
- gdk
- jackrack
- lumas
- resample
- sox
- vorbis
* Added avformat consumer presets:
- Slide-Deck-H264
- Slide-Deck-HEVC
* Removed intra=1 from some avformat presets (use g=1 for intra only):
- intermediate/MPEG-2
- intermediate/MPEG-4
- lossless/H.264
* Fixed using Qt, Movit, and WebVfx in the official docker image:
https://hub.docker.com/repository/docker/mltframework/melt
IMPORTANT: it now requires `docker run` with the `--init` option.
Version 6.20.0 - February 15, 2020
This version adds support for low resolution preview scaling and adds a
module based on librubberband for audio pitch-shifting.
An official docker image is now available at
https://hub.docker.com/repository/docker/mltframework/melt
Framework
* Added consumer scaling:
- mlt_profile_scale_width()
- mlt_profile_scale_height()
- Mlt::Profile::scale_width()
- Mlt::Profile::scale_height()
- support for a double "scale" property to melt and the xml producer
* Fixed mlt_properties_set() with an invalid expression.
* Added new functions that do not evaluate expressions:
- mlt_properties_set_string()
- Mlt::Properties::set_string()
* Improved the service-caching heuristic in mlt_multitrack.
* Fixed possible crashes in mlt_playlist get_frame() and mlt_filter_process().
Modules
* Added the rubberband module with a rbpitch filter.
* Added pitch compensation to timewarp producer.
* Added the invert_scale property to the affine filter and transition.
* Added the reverse property to shape filter.
* Added support for text keyframes to the text and qtext filters.
* Added support for the CSRT and MOSSE algorithms in opencv.tracker filter.
* Fixed a crash on empty algo property in the opencv.tracker filter.
* Changed vorbis module to no longer be deprecated.
* Improved colorspace conversions in the avformat module.
* Fixed audio artifacts on initial seek to in point in avformat producer.
* Fixed the colorspace of the cached image in avformat producer.
* Fixed white video flashes on property changes in the qtext filter.
* Fixed a crash in the rotoscoping filter with large spline deviations.
* Fixed a crash in the sdi consumer if the driver is not loaded.
* Improved support for a video clip as luma producer to the luma transition.
* Fixed a crash in the matte transition.
* Fixed a crash when using invert property =1 in the composite transition.
Other
* Added a Dockerfile and integrated docker build into Travis CI.
* Added more avformat consumer presets:
- intermediate/DNxHR-HQ
- intermediate/ProRes HQ
- ALAC
- FLAC
* Fixed some parameters in the XDCAM and D10 avformat presets.
* Fixed link failure on some CPU architectures.
Version 6.18.0 - November 11, 2019
This version is a general maintenance release with a bunch of fixes,
improvements, and additions.
Framework
* Fixed some data races in mlt_consumer, mlt_deque, and mlt_property.
* Fixed the mlt_events listener incorrect owner argument.
* Added support for the LC_ALL environmant variable on Windows.
* Fixed the argument to mlt_factory_init() not working on Windows.
* Fixed mlt_service_identify() not reliable in some use cases.
* Added some default and copy constructors and assignment operators to mlt++
- Filter()
- Filter( const Filter &filter )
- Filter& operator=( const Filter &filter )
- Producer( const Producer &producer )
- Producer& operator=( const Producer &producer )
- Properties( const Properties &properties )
- Properties& operator=( const Properties &properties )
- Service( const Service &service )
- Service& operator=( const Service &service )
- Transition()
- Transition( const Transition &transition )
- Transition& operator=( const Transition &transition )
* Added mlt_luma_map:
- mlt_luma_map_init
- mlt_luma_map_new
- mlt_luma_map_render
- mlt_luma_map_from_pgm
- mlt_luma_map_from_yuv422
* Fixed preset overrides depend on the XML attribute order.
* Fixed serializing an animated property with a new length.
Modules
* Fixed interpolation in rotoscoping filter.
* Fixed crop filter not working with color producer.
* Fixed some data races in the sdl and sdl2 consumers.
* Fixed some data races in the avformat producer.
* Added a movit.flip filter to the opengl module.
* Fixed using filters on frei0r producers.
* Added support for in and out attributes on the "consumer" xml element.
* Fixed using an in point with the multi consumer.
* Fixed avfilter fails if the image size changes.
* Fixed showing superfluous decimals for seconds in the timer filter.
* Stop serializing an invalid producer as an "INVALID" text producer in xml.
* Fixed an access violation crash in wave filter.
* Added the meta.media.color_range property to the avformat producer.
* Fixed full range yuv422p not converted correctly in the avformat producer.
* Fixed the text filter not working with pango.
* Fixed a regression using dynamictext with pango.
* Added a position property to avfilter for filters that need position info.
* Fixed avfilter.subtitles not using the source position.
* Added an analyze property to vidstab filter. When set, analysis only starts
and the results file written if true.
* Fixed crash combining affine the affine filter with the shape filter.
* Added interlace detection from AVCodecContext.field_order.
* Changed the avformat producer to not use the rescale.interp frame property.
Previously, when interp == nearest, it would relax seeking. Now, seek
accuracy is reduced during trick play (rewind or fast forward).
* Fixed sws flags for auto-inserted scalers in avfilter.
* Fixed a double free crash in ladspa filter on channel count mismatch.
* Refactored the composite and luma transitions to use mlt_luma_map.
* Refactored the pgm producer and shape filter to use mlt_luma_map.
* Refactored the lumas module to use mlt_luma_map.
* The lumas module is now disabled by default and must be explicitly enabled.
* Added property animation to the threshold filter.
* Added a cairoblend_mode filter to the frei0r module to affect a
frei0r.cairoblend transition used to composite/blend tracks.
* Added support for new vaapi options to the avformat consumer:
- connection_type: x11 or drm
- driver
- kernel_driver
* Fixed the timewarp producer with a colon in the filename.
* Fixed a relative file name with a colon in it in the xml producer.
* Fixed defaulting to album or poster art if there is another video stream.
* Fixed parameter animation in frei0r plugins when using frame threads.
This change also enables frame-threading for more plugins.
* Improved the qtblend filter to not process alpha if no transparency.
* Added a background_color property to the qtblend filter.
* Fixed the opencv.tracker incorrect behavior on cut clips.
* Changed opencv.tracker to store absolute frame numbers.
* Fixed incorrect frame offset on render in opencv.tracker.
* Add an alpha_over property to luma transition. This addresses a behavior
regression in version 6.14.0.
* Fixed noimagecache not working in the avformat producer.
Other
* Mlt++ now requires C11 compiler support.
* Fixed closing melt SDL2 window from window manager (i.e. close button).
* Added -repository option to the melt command.
* Added unit tests for Mlt::Event.
* Fixed returning image data for Python 3.
* Switch to python3 by default.
* Updated the prores encoding presets to set vendor ID and colr atom.
* Added a CMake build system. This is not yet prefered over the existing
configure script and Makefiles and has less flexibility. It is a start and
has limited support.
Version 6.16.0 - May 7, 2019
This version is released to facilitate packaging the latest version of Shotcut,
which is using new APIs.
Framework
Added functions to get/set a creation date to a producer:
- mlt_producer_get_creation_time()
- mlt_producer_set_creation_time()
- Mlt::Producer::set_creation_time()
- Mlt::Producer::get_creation_time()
Modules
* Fixed dance filter not showing when lower track is transparent.
* Refactored dynamictext filter to use mlt_producer_get_creation_time().
* Marked frei0r rgsplit0r plugin version < 1.1 as not thread-safe.
* Fixed possible null pointer crash in mlt_properties_serialise_yaml.
Version 6.14.0 - March 30, 2019
This version is mostly fixes plus a few API additions and filters.
Framework
* Added mlt_profile_lumas_dir().
* Added mlt_frame_get_unique_properties().
* Added mlt_playlist_reorder() and Mlt::Playlist::reorder().
* Added some new convenience constructors to mlt++
- Producer(mlt_profile profile, const char *id, const char *service = NULL)
- Consumer(mlt_profile profile, const char *id , const char *service = NULL)
- Transition(mlt_profile profile, const char *id, const char *arg = NULL)
- Filter(mlt_profile profile, const char *id, const char *service = NULL)
- Tractor(mlt_profile profile, char *id, char *arg = NULL)
* Added Mlt::Transition::connect(Service&).
* Added unit tests for mlt_playlist.
* Fixed a crash on invalid transition track values in mlt_transition.
* Fixed a deadlock regression in v6.12.0 of mlt_consumer when starting from
a paused state (producer speed=0).
Modules
* The avformat module now requires at least FFmpeg v2.4 or Libav 12.
* Added mask_start and mask_apply filters to the core module.
* Added qtext filter to qt module.
* Changed dynamictext and timer filters to use qtext.
* Fixed number of digits for seconds in timer filter.
* Added mlt_image_format property to color producer.
* Improved color accuracy of libswscale RGB->YUV conversion.
* Fixed frei0r producer not working with tractor.
* Fixed decklink consumer stalling on dropped frames.
* Generate lumas for 16:9, 9:16 (vertical), and square aspect ratios.
* Fixed crash in qimage when alpha_size is zero.
* Fixed the mlt_consumer channels property not being passed to multi consumer.
* Fixed the shape filter for full range color and crashes.
* Converted the shape filter to use mlt_animation.
* Added a use_mix property to the shape filter.
* Fixed invert=1 and mix=100 gives wrong image in shape filter.
* Fixed a possible free null pointer in the linsys sdi consumer.
* Fixed using destroyed temporary object in qimage.
* Fixed a possible null pointer dereference in the spot_remover filter.
* Fixed memory leak on swr_convert() failure in swresample filter.
* Fixed possible null pointer dereference in affine when not using rect.
* Fixed loading image sequence on Windows in qimage.
* Fixed some null pointer crashes using Movit opengl services.
* Fixed sdl2 consumer crashes during initialization on Linux or BSD.
* Fixed distorted image using melt_file.
* Fixed qimage build on Qt version < 5.5.
* Added offset property to the timer filter.
* Changed the boxblur hori & vert properties' minimum to 0.
* Fixed crash in duplicate frame on rotated videos.
* Added automatic scaling and padding to avfilter.
* Fixed field order when encoding progressive as interlace.
* Fixed frei0r plugins to use the number of slices from the threads property.
* Fixed over compositing with transparent clips in luma transition.
* Added sliced processing to dissolve-with-alpha using the threads property.
* Added createdate keyword to dynamictext filter.
* Fixed possible crash changing audio_index in avformat producer.
* Fixed small memory leaks in xml consumer, jackrack, and timewarp producer.
* Fixed compiling opencv module with OpenCV > 3.
Other
* Added vertical video profiles:
- vertical_hd_30
- vertical_hd_60
* Mlt++ now requires C++11 compiler support.
* Added --disable-windeploy to configure to keep bin & lib folders on Windows.
* Added support for consumer in & out to melt.
* Fixed color accuracy of lossless/Ut Video preset and use pix_fmt yuv422p.
* Fixed x264 lossless preset to use crf=0.
* Fixed compiling with mingw32.
* Fixed build with Python 3.
Version 6.12.0 - November 26, 2018
This version has many important fixes plus a few new filters and support for
encoding using VA-API.
Framework
* Changed buffer property to be mutable and adaptive to speed property in
mlt_consumer.
* Changed macOS RELOCATABLE build to use standard app bundle layout:
- lib/mlt -> ../PlugIns/mlt
- lib/frei0r-1 -> ../PlugIns/frei0r-1
- lib/ladspa -> ../PlugIns/ladspa
- share/mlt -> ../Resources/mlt
- share/movit -> ../Resources/movit
* Fixed a_track of transitions matching deleted track in
mlt_tractor_remove_track().
* Fixed multi-thread race crash in mlt_properties_clear().
* Fixed possiblle null pointer crash in mlt_property_get_rect() and
mlt_property_get_time().
* Fixed non-animated strings containing ';' or '=' in mlt_animation_parse().
* Fixed crash in clear_property() with mlt_animation.
Modules
* Added a generic text filter to the plus module.
* Added a timer filter to the plus module.
* Added audio timeout handling to sdl2 consumers.
* Added spot_remove filter to the plus module.
* Added dds, ico, and webp filename extensions for qimage producer.
* Added support for color_range property in avformat consumer:
"pc" or "jpeg" for full range, otherwise limited range.
* Added a window property to the audiowaveform filter.
* Added MM:SS.SS to the timer filter.
* Added query string param "multi" to the xml producer to force using the
multi consumer.
* Improved WebP image support in avformat producer.
* Integrated hwupload filter in avformat consumer if using VAAPI codec.
* Changed count producer to use pango if qtext not available.
* Changed qt moduled to not call XInitThreads()
* Changed color producer to only set alpha on frame if rgb24a requested or
not opaque.
* Changed the xml producer to pass quality and performance parameters to the
multi consumer.
* Fixed sdl2_audio distortion (regression in v6.10.0).
* Fixed dynamictext filter to not error on empty text.
* Fixed dynamictext aliased (regression in v6.10.0).
* Fixed qimage outputs premultiplied if scaled internally.
* Fixed crash in cbrts consumer if running property was never set.
* Fixed rendering edges of some typefaces in qtext producer.
* Fixed qimage fails to load with wrong filename extension.
* Fixed affine dark right and bottom edge artifacts regression in (v6.10.0).
* Fixed support for vp8 and vp9 with alpha channel in avformat producer.
* Fixed interpolation mode selection in qimage producer.
* Fixed crash in qimage with alpha channel.
* Fixed some AAC MP4 files start playing from middle in avformat producer.
* Fixed crash in avfilter if initialization fails.
* Fixed crash in mix when frame rate is very low.
* Fixed crash on missing luma file in composite transition.
* Fixed A/V sync on some files in avformat producer.
* Fixed seeking on audio filter with album art in avformat producer.
* Fixed colorspace conversion in avformat consumer.
Other
* Added more avformat consumer presets:
- alpha/Quicktime Animation
- alpha/vp8
- alpha/vp9
- alpha/Ut Video
- lossless/Ut Video
* Added square video profiles:
- square_1080p_30
- square_1080p_60
* Added support for nodejs to the swig bindings.
* Changed configure script to require opencv module be explicitly enabled.
* Numerous spelling fixes in source code and comments thanks to codespell.
Version 6.10.0 - July 2, 2018
This version fixes bugs and supports serializing animation keyframes with a
specified time format (previously only frame number).
Framework
* Reverted mlt_pool change in v6.8.0 pending further testing.
(USE_MLT_POOL compiler define is now a 0/1 boolean, defaults to 1.)
* Fixed crash regression in v6.8.0 "parsing non-animated string as an animation."
* Added pointer checks to mlt_animation.
* Changed producer cache size heuristic in mlt_multitrack to be more liberal.
* Fixed handling reserved characters in names for YAML in mlt_properties.
* Added clamping to prevent computing negative in and out points to mlt_producer.
* Added functions to serialize animation with a time format:
- mlt_animation_serialize_cut_tf()
- mlt_animation_serialize_tf()
- mlt_property_get_string_tf()
- mlt_property_get_string_l_tf()
- mlt_properties_get_value_tf()
- Mlt::Properties::get(int, mlt_time_format)
- Mlt::Animation::serialize_cut(mlt_time_format, int, int)
* Added functions to clear a property to mlt_properties:
- mlt_property_clear()
- mlt_properties_clear()
- Mlt::Properties::clear()
Modules
* Fixed enabling sliced pix_fmt conversion in avformat producer.
* Fixed incorrect seek and sync on audio files with discard packets.
* Added support for avcodec_send_frame() API to avformat consumer.
* Fixed compile errors with Libav master.
* Fixed a crash in affine transition.
* Fixed a crash in ladspa filters when consumer frame rate is low (e.g. <= 8).
* Fixed a crash in boxblur filter.
* Added animation support to boxblur hori and vert properties.
* Fixed a crash in movit.convert.
* Fixed incorrect alpha in affine transition blending routine.
* Converted frei0r from deprecated mlt_geometry to mlt_animation API.
* Fixed tilde in text string for pango producer.
* Fixed using more than one channelcopy filter.
* Fixed the mono filter reducing volume level.
* Fixed degraded audio scrubbing in sdl2_audio consumer.
* Converted dynamictext filter to use affine transition for more correct
alpha compositing and sub-pixel positioning.
* Added time format support for animation keyframes to the xml consumer.
* Added animation support to more affine transition properties:
- fix_rotate_x
- fix_rotate_y
- fix_rotate_z
- fix_shear_x
- fix_shear_y
- fix_shear_z
- ox
- oy
- scale_x
- scale_y
* Fixed gaps in text when characters overlap in qtext and kdenlive producers.
* Fixed a crash in pixbuf producer with multiple render threads.
* Converted the oldfilm vignette filter from mlt_geometry to mlt_animation.
Other
* Numerous updates to mlt-xml.dtd.
* Categorized many of the encode presets (using meta.preset.name).
Version 6.8.0 - May 10, 2018
This version improves support for multi-channel audio and adds some new
manipulation functions to the mlt_animation API.
Framework
* Added support for musl C library.
* Added functions for audio channel layouts:
- mlt_channel_layout_name()
- mlt_channel_layout_id()
- mlt_channel_layout_channels()
- mlt_channel_layout_default()
* Added channel_layout property to mlt_consumer.
* Added mlt_channel_layout enum.
* Disabled memory pooling by default and require compile macro USE_MLT_POOL
to re-enable it.
* Fixed reliability of keyframed properties serializing properly.
* Fixed parsing non-animated string as an animation.
* Added more functions to mlt_animation:
- mlt_animation_key_set_type()
- mlt_animation_key_set_frame()
- Mlt::Animation::key_set_type()
- Mlt::Animation::key_set_frame()
Modules
* Fixed some crashes in qimage producer especially with alpha channel.
* Fixed >2 channel audio output in the SDL consumers.
* Fixed >2 channel audio output in the rtaudio consumer on Windows.
* Fixed vorbis encoding with FFmpeg v3.4+.
* qimage and qtext are now higher priority than gtk2 pixbuf and pango by the
loader producer.
* Added support for more channel counts to decklink consumer.
* Added swresample filter based on libswresample from FFmpeg. This is now
the preferred channel count normalizing filter used by the loader producer.
* Fixed the strange "Undefined constant" and "Unable to parse option value"
log messages in the the avformat consumer.
* Fixed GIF and DPX writing in avformat consumer.
* Reduced the memory usage of the affine transition and filters.
* Fixed a crash in kdenlivetitle producer.
* Fixed a crash in the rotoscoping filter.
* Fixed frame rate reported in Matroska and WebM files produced by the
avformat consumer.
* Added sdl2_audio consumer.
* Fixed alpha channel support for more pixel formats in the avformat producer.
* Converted the affine transition to use mlt_rect and mlt_animation.
* Fixed LADSPA plugins with mono channel audio.
Other
* Fixed a melt command line parsing bug when argument supplied to -transition.
* Fixed melt with SDL2 on Windows not using stdio and stderr.
* Improved speed of the vp9 avformat consumer preset.
Version 6.6.0 - January 22, 2018
This version builds upon the previous release with performance improvements
using the sliced image processing framework. It also improves compatibility
with dependencies (FFmpeg, Qt 5, SDL 2, NDI, OpenCV, libebur128).
Framework
* Added a thread pool to mlt_slices:
- mlt_slices_run_normal()
- mlt_slices_run_rr()
- mlt_slices_run_fifo()
- mlt_slices_count_normal()
- mlt_slices_count_rr()
- mlt_slices_count_fifo()
- MLT_SLICES_COUNT environment variable
* Added mlt_log_timings_now() to mlt_log.
* Added mlt_image_yuv422p16 image format.
* Added mlt_image_format_planes() and mlt_image_format_id() to mlt_frame.
* Added mlt_service_disconnect_all_producers() and
Mlt::Service::disconnect_all_producers()
* Fixed accuracy of mlt_time_format conversions.
* Fixed mlt_filter_get_progress() never reaching 1.0.
* Fixed divide by zero in mlt_filter_get_progress().
Modules
* Added sdl2 module!
* Added sum property to mix transition for simple mixing without dynamics.
* Added TLD and KCF tracking modes to opencv module.
* Added CSV (comma-separated values) simple slideshow to pixbuf producer.
* Added jack filter to jackrack module.
* Added sliced processing to frei0r.
* Added sliced processing to composite transition.
* Added sliced processing to avformat producer pixel format conversion.
* Added sliced processing to affine transition and filter.
* Converted volume and pan filters to floating point.
* Added rotate_center property to qtblend transition and filters.
* Added meta.media.variable_frame_rate (VFR detection) to avformat producer.
* Added support for external libebur128.
* Updated internal libebur128 to latest.
* Added 10-bit capture to decklink producer.
* Added mlt_image_yuv422p16 to fieldorder filter, avcolour_space filter, and
avformat consumer.
* Added no_profile property to xml consumer.
* Various ndi module fixes and improvements.
* Fixed setting color_trc in multi consumer.
* Fixed kdenlive title transparency.
* Fixed incorrect alpha channel breaking freeze filter with qtblend transition.
* Fixed transparency of pixbuf images with qtblend transition.
* Fixed some crashes in new qtblend transition.
* Fixed building qt module with C++11 for Qt 5.7+.
* Fixed reporting accurage length for image sequences in qimage and pixbuf.
* Fixed extra audio samples added to end of file in avformat consumer.
* Fixed rawvideo export in avformat consumer.
* Fixed multi-threading with FFmpeg 3.2+ in avformat module.
* Fixed JPEG album art in avformat producer.
* Removed filter_avresample (dropped by FFmpeg).
* Stop flushing audio buffer in decklink consumer.
* Fixed field order handling in decklink consumer.
* Make composite transition field order aware.
* Fixed nesting mlt_tractor with opengl module.
* Fixed kdenlive titler crash on resized frame.
Other
* Various memory leak fixes.
* Fixed opening files with extended chars on Windows (framework and modules).
Version 6.4.1 - November 15, 2016
Hot fix for new C++ symbol Mlt::Profile::is_valid() not declare const in
symbol versioning. This was breaking script bindings.
Version 6.4.0 - November 11, 2016
This is both a bugfix and enhancement release:
Framework
* Added functions for multi-threaded slice-based image processing:
mlt_slices_init, mlt_slices_close, and mlt_slices_run.
* Added Mlt::Profile::is_valid().
* Added MLT_DIRLIST_DELIMITER to mlt_types.h.
* Renamed mlt++/config.h to mlt++/MltConfig.h.
* Fixed mlt_properties_set_lcnumeric() on macOS.
* Fixed address of Free Software Foundation in comment headers.
Modules
* Added crop_to_fill property to composite transition.
* Added sliced_composite property to composite transition.
* Added peak and true peak properties to loudness_meter filter.
* Added qtblend transition and filter to qt module.
* Added ndi (NewTek NDI) module with producer and consumer.
* Added opencv module with opencv_tracker filter.
* Added line_spacing, stretch, wrap_width, and wrap_type properties to
pango producer.
* Added oblique value for style property to pango producer.
* Added fontmap-reload event to pango producer.
* Added support for pkg-config to sdl module.
* Added .kra (Krita Image) file name extension to loader.dict.
* Improved performance of kdenlivetitle producer.
* Improved decklink producer and consumer.
* Improved accuracy of seeking on lossy compressed audio in
avformat producer.
* Improved mix transition using 32-bit floating point.
* Fixed avfilter when image format changes.
* Fixed loading relative file name in vidstab filter.
* Fixed crash on Windows with avfilter.
* Fixed parsing LADSPA_PATH with semi-colon delimiter on Windows.
* Fixed parsing FREI0R_PATH with semi-colon delimiter on Windows.
* Fixed reading relative path with backslash (Windows) in xml producer.
* Fixed loading relative file name for av.file (avfilter).
* Fixed loading multiple LADSPA plugins on some systems.
* Fixed compile error when not configured with --enable-gpl.
* Fixed loading in avfilter.lut3d in locales with comma decimal point.
* Fixed a possible crash in resample filter.
* Fixed alpha channel in kdenlivetitle producer.
* Fixed possible crash in pixbuf and qimage producers.
* Fixed count when counting down in count producer.
Other
* Moved some avformat presets from lossless to new intermediate folder.
* Added a YouTube avformat consumer preset.
* Changed metadata.rb metadata publisher to output Markdown.
Version 6.2.0 - April 20, 2016
There are no framework changes in this release. The major announcement is the
introduction of support for libavfilter! This is still a work-in-progress.
It is limited to FFmpeg 2.3 and up, and there are a number of filters that
are black-listed because they are known to not integrate with MLT, which is
not a full libav* environment or simple wrapper for it. There are likey
avfilters that are not yet black-listed but might not work because they
have not been completely tested. Also, they do not support MLT's keyframable
property animation nor its frame-threaded parallelism due to architectural
or integration limitations. However, some avfilters are slice-threaded
(internal parallelism), and that works. Finally, libavfilter filtergraph
syntax is not supported either.
All of the supported libavfilters are exposed as MLT filters beginning with
the prefix "avfilter." All of the avfilter parameters are exposed as MLT
properties with the "av." prefix to prevent clashes with MLT properties.
You can run `melt -query filters` to see the new avfilters, and
`melt -query filter=avfilter.rotate`, for example, to view generated
documentation for an individual filter.
Here is a list of notable fixes and enhancements in this release:
* Added support for libavfilter to avformat module.
* Added auto-rotate support to avformat producer.
* Added animated GIF preset for avformat consumer.
* Prevent serializing and deserializing mlt_type property to xml module.
* Fixed relative paths for WebVfx "plain:" resources in xml module.
* Updated libebur128 to v1.1.0 in plus module.
* Added dynamic_loudness filter to plus module.
* Added loudness_meter filter to plus module.
* Qt 5 fixes for kdenlivetitle producer.
* Added gradients and text shadows to kdenlivetitle producer.
* Added support for building rtaudio against external build of lib.
* Upgraded bundled RtAudio to v4.1.2.
* Added status parameters to ladspa producer and filters.
* Added 5.1 surround to stereo downmix to audiochannels filter in core module.
* Fixed compiling SWIG bindings for Ruby 2.0.
Version 6.0.0 - February 17, 2016
This is a bugfix and minor enhancement release. Note that our release
versioning scheme has changed. We were approaching 1.0 but decided to
synchronize release version with the C library ABI version, which is currently
at v6. Here are some of the notable changes and enhancements:
Framework
* Added unit tests for tractor, multitrack, and field.
* Deprecate mlt_frame_get_alpha_mask().
* Added drop_count readable property to mlt_consumer.
* Added mlt_factory_repository().
* Added mlt_properties_to_utf8().
* Define MIN, MAX, CLAMP in mlt_types.h in not already defined.
* Switched to __APPLE__ and _WIN32 defines throughout codebase.
Modules
* Added UDP and SMPTE 2022-2 support to cbrts consumer.
* Fixed build against latest FFmpeg versions - now requires v1.1 and up.
* Added audiospectrum filter to qt module.
* Added meta.media.0.codec.rotate property to avformat producer to let apps
and other services get the media orientation.
* Make the avformat producer handle animated images.
* Added style property to dynamictext filter.
* Added timewarp producer to core module.
* Fixed slowly accumulating A/V sync drift in mix audio transition.
* Added width_crop and width_fit properties to pango producer.
Melt
* Added -abort option to simply exit without full cleanup.
* Fix key-press handling on Windows.
Version 0.9.8 - July 29, 2015
Here is a list of the enhancements included in this release. There are many API
additions to support the ability for apps to add and remove tracks and represent
and manipulate property animations. There are still many services, however, that
need updating to support animated properties.
Framework
* Added mlt_service_disconnect_producer() and Mlt::Service::disconnect_producer().
* Added mlt_multitrack_disconnect() and Mlt::Multitrack::disconnect().
* Added mlt_tractor_remove_track() and Mlt::Tractor::remove_track().
* Added mlt_service_insert_producer() and Mlt::Service::insert_producer().
* Added mlt_multitrack_insert() and Mlt::Multitrack::insert().
* Added mlt_tractor_insert_track() and Mlt::Tractor::insert_track().
* Added mlt_transition_set_tracks() and Mlt::Transition::set_tracks().
* Added Mlt::Properties::get_animation().
* Added Mlt::Properties::get_anim().
* Added Mlt:Animation class with methods:
- length()
- is_key()
- keyframe_type()
- get_item()
- next_key()
- previous_key()
- set_length()