Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2021-08-24 02:01:48 +0300
committerRichard Antalik <richardantalik@gmail.com>2021-08-24 02:10:12 +0300
commit929d7597b345027b848c2997720e52b89c46a0ff (patch)
treee0882cc98e552a713e1336e07c55159087b7fece /source/blender/sequencer/intern/strip_relations.c
parenta57ba4147f1344e9379a271fc752036969574a2d (diff)
VSE: Cleanup speed effect math
Simplify logic of speed effect frame calculation by using discrete math where possible. Only `SEQ_SPEED_MULTIPLY` mode with animation requires frame map to be built. Frame map building was simplified by removing unused branches. Functional change: Animating strip in negative range will reverse playback. I assume this was limitation of previous system, where each frame map item was limited to be within correct frame range. Now frame map can contain values that point beyond usable range and they are limited by `seq_speed_effect_target_frame_get`. This way it is possible to control playback rate in both directions. Mostly fixes T89120 apart from offset handling. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11939
Diffstat (limited to 'source/blender/sequencer/intern/strip_relations.c')
-rw-r--r--source/blender/sequencer/intern/strip_relations.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/sequencer/intern/strip_relations.c b/source/blender/sequencer/intern/strip_relations.c
index 7c5a3f031db..409b5f6a2e4 100644
--- a/source/blender/sequencer/intern/strip_relations.c
+++ b/source/blender/sequencer/intern/strip_relations.c
@@ -118,7 +118,7 @@ static void sequence_invalidate_cache(Scene *scene,
}
if (seq->effectdata && seq->type == SEQ_TYPE_SPEED) {
- seq_effect_speed_rebuild_map(scene, seq, true);
+ seq_effect_speed_rebuild_map(scene, seq);
}
sequence_do_invalidate_dependent(scene, seq, &ed->seqbase);
@@ -268,7 +268,7 @@ void SEQ_relations_free_imbuf(Scene *scene, ListBase *seqbase, bool for_render)
SEQ_relations_sequence_free_anim(seq);
}
if (seq->type == SEQ_TYPE_SPEED) {
- seq_effect_speed_rebuild_map(scene, seq, true);
+ seq_effect_speed_rebuild_map(scene, seq);
}
}
if (seq->type == SEQ_TYPE_META) {
@@ -325,7 +325,7 @@ static bool update_changed_seq_recurs(
SEQ_relations_sequence_free_anim(seq);
}
else if (seq->type == SEQ_TYPE_SPEED) {
- seq_effect_speed_rebuild_map(scene, seq, true);
+ seq_effect_speed_rebuild_map(scene, seq);
}
}