Commit: 547efb6b1e3414f1b696fb1975e0c49742a264dc
Author: Richard Antalik
Date:   Thu Jun 30 15:27:49 2022 +0200
Branches: master
https://developer.blender.org/rB547efb6b1e3414f1b696fb1975e0c49742a264dc

Fix T99133:animating multiply factor on video strips crashes blender

Crash caused by `effect_seq->len` being 0, so frame map was not built.

Get length in timeline using handle positions.

===================================================================

M       source/blender/sequencer/intern/effects.c

===================================================================

diff --git a/source/blender/sequencer/intern/effects.c 
b/source/blender/sequencer/intern/effects.c
index 368c00534be..4aec4916f7b 100644
--- a/source/blender/sequencer/intern/effects.c
+++ b/source/blender/sequencer/intern/effects.c
@@ -2600,7 +2600,10 @@ static FCurve 
*seq_effect_speed_speed_factor_curve_get(Scene *scene, Sequence *s
 
 void seq_effect_speed_rebuild_map(Scene *scene, Sequence *seq)
 {
-  if ((seq->seq1 == NULL) || (seq->len < 1)) {
+  const int effect_strip_length = SEQ_time_right_handle_frame_get(scene, seq) -
+                                  SEQ_time_left_handle_frame_get(scene, seq);
+
+  if ((seq->seq1 == NULL) || (effect_strip_length < 1)) {
     return; /* Make coverity happy and check for (CID 598) input strip... */
   }
 
@@ -2614,15 +2617,13 @@ void seq_effect_speed_rebuild_map(Scene *scene, 
Sequence *seq)
     MEM_freeN(v->frameMap);
   }
 
-  const int effect_strip_length = SEQ_time_right_handle_frame_get(scene, seq) -
-                                  SEQ_time_left_handle_frame_get(scene, seq);
   v->frameMap = MEM_mallocN(sizeof(float) * effect_strip_length, __func__);
   v->frameMap[0] = 0.0f;
 
   float target_frame = 0;
   for (int frame_index = 1; frame_index < effect_strip_length; frame_index++) {
     target_frame += evaluate_fcurve(fcu, SEQ_time_left_handle_frame_get(scene, 
seq) + frame_index);
-    CLAMP(target_frame, 0, seq->seq1->len);
+    CLAMP(target_frame, 0, SEQ_time_strip_length_get(seq->seq1));
     v->frameMap[frame_index] = target_frame;
   }
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to