diff --git a/source/blender/sequencer/intern/prefetch.cc b/source/blender/sequencer/intern/prefetch.cc index 7305123c64032dd16c99e444cefcb575c95c3c75..d4aeb8912dbb431a246a6931bb1357775760016b 100644 --- a/source/blender/sequencer/intern/prefetch.cc +++ b/source/blender/sequencer/intern/prefetch.cc @@ -500,6 +500,10 @@ static void *seq_prefetch_frames(void *job) ListBase *channels = SEQ_channels_displayed_get(SEQ_editing_get(pfjob->scene_eval)); if (seq_prefetch_must_skip_frame(pfjob, channels, seqbase)) { pfjob->num_frames_prefetched++; + /* Break instead of keep looping if the job should be terminated. */ + if (!(pfjob->scene->ed->cache_flag & SEQ_CACHE_PREFETCH_ENABLE) || pfjob->stop) { + break; + } continue; }