Page MenuHome

Fix T90646: VSE hangs when strips overlap
ClosedPublic

Authored by Richard Antalik (ISS) on Aug 13 2021, 11:54 AM.

Details

Summary

When all strips are selected and overlap is caused, this causes VSE to
hang in infinite loop, because such situation should never happen.

To prevent infinite loop, ensure, that strip overlap is not tested
against single overlapping strip itself.

Prevent overlap that can not be handled because of issue described above
by moving overlapping strip between channels.


Better solution would be to limit transformation of strips if this would cause overlap. Here it seems possible to check strip length, but this is limited internally in sequencer code, so such check is not reliable.
Alternative would be to build list of static points that can limit transformation range (similar to current snapping, but 2D), then check if any strip overlaps with any point and by how much.

Diff Detail

Repository
rB Blender

Event Timeline

Richard Antalik (ISS) requested review of this revision.Aug 13 2021, 11:54 AM
Richard Antalik (ISS) created this revision.

Looks OK, request to make this case more explicit, to make it clear it's exceptional.

Requesting changes but I trust these are straightforward with that an extra review iteration.

source/blender/sequencer/intern/strip_transform.c
319–327

While this is correct, I'd suggest to make this case more explicit.

/* The result of transform is a self-intersecting strip, ideally this would never ... etc ...*/
if (SEQ_collection_has_strip(seq_other, strips_to_shuffle)) {
  CLOG_WARN(... warning ...);
  continue;
}
This revision is now accepted and ready to land.Aug 13 2021, 2:15 PM
Richard Antalik (ISS) marked an inline comment as done.
  • Add warning log.
  • Include unsaved changes...
Campbell Barton (campbellbarton) requested changes to this revision.Aug 16 2021, 7:28 AM
Campbell Barton (campbellbarton) added inline comments.
source/blender/sequencer/intern/strip_transform.c
319–327

Unless I'm mistaken, the exceptional case is SEQ_collection_has_strip, so only that should warn.

This revision now requires changes to proceed.Aug 16 2021, 7:28 AM
Richard Antalik (ISS) marked an inline comment as done.
  • Fix incorrect condition for log message
This revision is now accepted and ready to land.Aug 16 2021, 3:15 PM
This revision was automatically updated to reflect the committed changes.