[Bf-blender-cvs] [c81dfa24260] master: Fix T85824: Transition between adjustment regression

Richard Antalik noreply at git.blender.org
Sat Mar 20 01:42:03 CET 2021


Commit: c81dfa2426084ab9e580047f568e4066cac34f2d
Author: Richard Antalik
Date:   Sat Mar 20 01:33:15 2021 +0100
Branches: master
https://developer.blender.org/rBc81dfa2426084ab9e580047f568e4066cac34f2d

Fix T85824: Transition between adjustment regression

When transition effect is placed between 2 adjustment layer strips,
only first adjustment layer was rendered by effect.

Limit timeline_frame range to adjustment strip frame range.

This timeline configuration is technically invalid, because strips
should overlap when using transition effect. This was never restricted
and instead of producing no image, transition effect used first and
last frame of source strip. Many users got used to this "feature" so
I think it make sense to fix this case so it behaves like other strip
types.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D10562

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

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

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

diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c
index 7b030d6408b..cdb7f5de627 100644
--- a/source/blender/sequencer/intern/effects.c
+++ b/source/blender/sequencer/intern/effects.c
@@ -3024,6 +3024,11 @@ static ImBuf *do_adjustment_impl(const SeqRenderData *context, Sequence *seq, fl
 
   seqbasep = SEQ_get_seqbase_by_seq(&ed->seqbase, seq);
 
+  /* Clamp timeline_frame to strip range so it behaves as if it had "still frame" offset (last
+   * frame is static after end of strip). This is how most strips behave. This way transition
+   * effects that doesn't overlap or speed effect can't fail rendering outside of strip range. */
+  timeline_frame = clamp_i(timeline_frame, seq->startdisp, seq->enddisp - 1);
+
   if (seq->machine > 1) {
     i = seq_render_give_ibuf_seqbase(context, timeline_frame, seq->machine - 1, seqbasep);
   }



More information about the Bf-blender-cvs mailing list