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
This commit is contained in:
parent
8b3f5f755e
commit
c81dfa2426
Notes:
blender-bot
2023-06-21 19:23:24 +02:00
Referenced by issue #85824, Sequencer : Cross Fade between adjustement layer strips not working since 2.9
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue