diff options
author | Richard Antalik <richardantalik@gmail.com> | 2020-05-01 22:28:55 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2020-05-01 22:28:55 +0300 |
commit | 87602d886f70a38a20e5738709dd971744a27516 (patch) | |
tree | d1800954dd2ff507a7a20fe085a0aee822921d37 /source/blender/blenkernel/intern/seqprefetch.c | |
parent | 9ca78c9bcc4211abf8a83abd86f457c34e725303 (diff) | |
parent | 98990f6ba439b496e8680d5043ebb18365b9e054 (diff) |
Merge branch 'blender-v2.83-release'
Diffstat (limited to 'source/blender/blenkernel/intern/seqprefetch.c')
-rw-r--r-- | source/blender/blenkernel/intern/seqprefetch.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/seqprefetch.c b/source/blender/blenkernel/intern/seqprefetch.c index bba829529a3..1425bff48a8 100644 --- a/source/blender/blenkernel/intern/seqprefetch.c +++ b/source/blender/blenkernel/intern/seqprefetch.c @@ -134,19 +134,29 @@ static bool seq_prefetch_job_is_waiting(Scene *scene) return pfjob->waiting; } -/* for cache context swapping */ -Sequence *BKE_sequencer_prefetch_get_original_sequence(Sequence *seq, Scene *scene) +static Sequence *sequencer_prefetch_get_original_sequence(Sequence *seq, ListBase *seqbase) { - Editing *ed = scene->ed; - ListBase *seqbase = &ed->seqbase; - Sequence *seq_orig = NULL; - - for (seq_orig = (Sequence *)seqbase->first; seq_orig; seq_orig = seq_orig->next) { + LISTBASE_FOREACH (Sequence *, seq_orig, seqbase) { if (strcmp(seq->name, seq_orig->name) == 0) { - break; + return seq_orig; + } + + if (seq_orig->type == SEQ_TYPE_META) { + Sequence *match = sequencer_prefetch_get_original_sequence(seq, &seq_orig->seqbase); + if (match != NULL) { + return match; + } } } - return seq_orig; + + return NULL; +} + +/* for cache context swapping */ +Sequence *BKE_sequencer_prefetch_get_original_sequence(Sequence *seq, Scene *scene) +{ + Editing *ed = scene->ed; + return sequencer_prefetch_get_original_sequence(seq, &ed->seqbase); } /* for cache context swapping */ |