Fix(unreported): Crash on prefetching while transforming strip.

While investigating T76274, I found crash scenario when playhead is near end
frame and moving a strip. It is not as easy to reproduce, about 5% success
rate, and it will be even harder after rB4066c921fbe5. Exact cause wasn't
identified yet.

I wanted to disable prefetching during modal operator execution in VSE, but
currently I don't have any signalling method in place. Checking for G.moving
seems to resolve this problem, but it doesn't adress root cause of bug.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7820
This commit is contained in:
Richard Antalik 2020-05-24 20:52:59 +02:00
parent 22462fed00
commit 0d0df683d9
Notes: blender-bot 2023-02-14 08:10:10 +01:00
Referenced by issue #76274, Program crashes when editing a video file, corrupted it.
1 changed files with 2 additions and 2 deletions

View File

@ -536,11 +536,11 @@ void BKE_sequencer_prefetch_start(const SeqRenderData *context, float cfra, floa
/* conditions to start:
* prefetch enabled, prefetch not running, not scrubbing,
* not playing and rendering-expensive footage, cache storage enabled, has strips to render,
* not rendering.
* not rendering, not doing modal transform - important, see D7820.
*/
if ((ed->cache_flag & SEQ_CACHE_PREFETCH_ENABLE) && !running && !scrubbing &&
!(playing && cost > 0.9) && ed->cache_flag & SEQ_CACHE_ALL_TYPES && has_strips &&
!G.is_rendering) {
!G.is_rendering && !G.moving) {
seq_prefetch_start(context, cfra);
}