Skip to content

Commit

Permalink
New keyframe types (#957)
Browse files Browse the repository at this point in the history
* Add more keyframe unit tests

* Create a map of keyframe types and string values

This can be used to easily add more keyframe types

* Add new keyframe types: smooth_natural and smooth_tight

Both new types use centripetal catmull-rom interpolation.
The centripetal method ensures there will be no cusps in the spline.
Additionally, modify the interpolation to avoid overshoot.

These changes ensure that a line will interpolate directly from one
value to another without allowing the interpolated values to reverse
along the way.

The previous "smooth" type is aliased to "smooth_loose" and maintained
for backwards compatibility.

* Target correct MLT version for new functions

* Add multiple easing keyframe types

Easing functions are based on Robert Penner's Easing Functions
http://robertpenner.com/easing/
  • Loading branch information
bmatherly authored Oct 8, 2023
1 parent 09f55bf commit a7597aa
Show file tree
Hide file tree
Showing 6 changed files with 1,280 additions and 55 deletions.
7 changes: 7 additions & 0 deletions src/framework/mlt.vers
Original file line number Diff line number Diff line change
Expand Up @@ -681,3 +681,10 @@ MLT_7.18.0 {
global:
mlt_audio_free_data;
} MLT_7.16.0;

MLT_7.22.0 {
global:
mlt_property_is_color;
mlt_property_is_numeric;
mlt_property_is_rect;
} MLT_7.18.0;
Loading

0 comments on commit a7597aa

Please sign in to comment.