From 6749593aecb7db2219cfac5aac3f92c678733da0 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Fri, 3 Mar 2023 23:00:16 +0100 Subject: [PATCH] Fix mistake in previous commit Fix error in b4100ed377 `seq_retiming_evaluate()` returns range from 0 to 1, to which framerate correction was applied. this is incorrect, and correction should be applied to function input. --- source/blender/sequencer/intern/strip_retiming.cc | 3 +-- source/blender/sequencer/intern/strip_time.c | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/source/blender/sequencer/intern/strip_retiming.cc b/source/blender/sequencer/intern/strip_retiming.cc index 82b024f0164..288054d8fba 100644 --- a/source/blender/sequencer/intern/strip_retiming.cc +++ b/source/blender/sequencer/intern/strip_retiming.cc @@ -144,8 +144,7 @@ float seq_retiming_evaluate(const Scene *scene, const Sequence *seq, const int f const float segment_fac = segment_frame_index / float(segment_length); const float target_diff = next_handle->retiming_factor - previous_handle->retiming_factor; - return previous_handle->retiming_factor + - (target_diff * segment_fac) * seq_time_media_playback_rate_factor_get(scene, seq); + return previous_handle->retiming_factor + (target_diff * segment_fac); } SeqRetimingHandle *SEQ_retiming_add_handle(Scene *scene, Sequence *seq, const int timeline_frame) diff --git a/source/blender/sequencer/intern/strip_time.c b/source/blender/sequencer/intern/strip_time.c index 2da4e05f7b8..f930d5f7ae7 100644 --- a/source/blender/sequencer/intern/strip_time.c +++ b/source/blender/sequencer/intern/strip_time.c @@ -86,13 +86,12 @@ float seq_give_frame_index(const Scene *scene, Sequence *seq, float timeline_fra frame_index = max_ff(frame_index, 0); + frame_index *= seq_time_media_playback_rate_factor_get(scene, seq); + if (SEQ_retiming_is_active(seq)) { const float retiming_factor = seq_retiming_evaluate(scene, seq, frame_index); frame_index = retiming_factor * (length - 1); } - else { - frame_index *= seq_time_media_playback_rate_factor_get(scene, seq); - } /* Clamp frame index to strip content frame range. */ frame_index = clamp_f(frame_index, 0, length);