https://bugs.kde.org/show_bug.cgi?id=507849

--- Comment #3 from Jean-Baptiste Mardelle <[email protected]> ---
Ok, so this was an interesting issue! The problem happened when you replaced a
clip with another shorter clip. 
There is an issue in our undo system, because loading a clip (or replacing it)
triggers an asynchronous task (a QRunnable) to load the clip, and that task can
take a few seconds. So when quickly undoing  several operations, we could end
up in a situation where the operation before the clip replacement was performed
before the clip was actually ready, using the previously stored clip leading to
unstable state and crash.

Example:
* Clip A, 600 frames
* Clip B, 300 frames

We have clip A in timeline, without cut.

Replacing clip A with clip B in the project Bin will trigger these operations :

1. Resize timeline clip from 600 to 300 frames
2. Replace timeline producer from clip A to clip B

When quickly undoing the 2 operations, as described it can happen that we try
to perform operation 1 before the replacement of clip B with clip A is
finished. So operation 1 will use clip B and fail because clip B cannot be
resized from 300 to 600.

I have not yet found a good design fix for this, so my current workaround (that
I will probably push today) is to temporarily disable undo, when replacing a
clip. It means that if you try to quickly undo several operations, if there is
a clip replacement operation, all later calls to undo will be ignored and
canceled until the replace operation is completely done.

It can be a bit annoying as you might have pressed the undo shortcut twice and
Kdenlive will only undo one operation, and you need to press undo again after
1-2 seconds, but still better than a crash.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to