Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2020-02-17 18:13:03 +0300
committerRichard Antalik <richardantalik@gmail.com>2020-02-17 18:46:59 +0300
commit1fcca29b472bcdf2ef2e6e193f7b72172f28e7f6 (patch)
tree79a12d7f00bc8e0f835e8866d2158081c9e6ea0d /source/blender/blenkernel/intern/sequencer.c
parent18b693bdbd6bac7c381e46aa4b95c3e81494855e (diff)
VSE: Remove atomized image duplication for preprocessing stage
Each image that goes through preprocessing is already duplicated in `input_preprocess()` Reviewed By: brecht Differential Revision: https://developer.blender.org/D6790
Diffstat (limited to 'source/blender/blenkernel/intern/sequencer.c')
-rw-r--r--source/blender/blenkernel/intern/sequencer.c61
1 files changed, 8 insertions, 53 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 0908fb7eeb8..0713d08e2d9 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -2980,30 +2980,12 @@ static ImBuf *seq_render_effect_strip_impl(const SeqRenderData *context,
break;
case EARLY_USE_INPUT_1:
if (input[0]) {
- ibuf[0] = seq_render_strip(context, state, input[0], cfra);
- }
- if (ibuf[0]) {
- if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
- out = IMB_dupImBuf(ibuf[0]);
- }
- else {
- out = ibuf[0];
- IMB_refImBuf(out);
- }
+ out = seq_render_strip(context, state, input[0], cfra);
}
break;
case EARLY_USE_INPUT_2:
if (input[1]) {
- ibuf[1] = seq_render_strip(context, state, input[1], cfra);
- }
- if (ibuf[1]) {
- if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
- out = IMB_dupImBuf(ibuf[1]);
- }
- else {
- out = ibuf[1];
- IMB_refImBuf(out);
- }
+ out = seq_render_strip(context, state, input[1], cfra);
}
break;
}
@@ -3659,10 +3641,9 @@ finally:
static ImBuf *do_render_strip_seqbase(const SeqRenderData *context,
SeqRenderState *state,
Sequence *seq,
- float nr,
- bool use_preprocess)
+ float nr)
{
- ImBuf *meta_ibuf = NULL, *ibuf = NULL;
+ ImBuf *ibuf = NULL;
ListBase *seqbase = NULL;
int offset;
@@ -3675,7 +3656,7 @@ static ImBuf *do_render_strip_seqbase(const SeqRenderData *context,
context->bmain, context->depsgraph, seq->scene, nr + offset);
}
- meta_ibuf = seq_render_strip_stack(context,
+ ibuf = seq_render_strip_stack(context,
state,
seqbase,
/* scene strips don't have their start taken into account */
@@ -3683,17 +3664,6 @@ static ImBuf *do_render_strip_seqbase(const SeqRenderData *context,
0);
}
- if (meta_ibuf) {
- ibuf = meta_ibuf;
- if (ibuf && use_preprocess) {
- ImBuf *i = IMB_dupImBuf(ibuf);
-
- IMB_freeImBuf(ibuf);
-
- ibuf = i;
- }
- }
-
return ibuf;
}
@@ -3706,11 +3676,9 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
float nr = give_stripelem_index(seq, cfra);
int type = (seq->type & SEQ_TYPE_EFFECT && seq->type != SEQ_TYPE_SPEED) ? SEQ_TYPE_EFFECT :
seq->type;
- bool use_preprocess = BKE_sequencer_input_have_to_preprocess(context, seq, cfra);
-
switch (type) {
case SEQ_TYPE_META: {
- ibuf = do_render_strip_seqbase(context, state, seq, nr, use_preprocess);
+ ibuf = do_render_strip_seqbase(context, state, seq, nr);
break;
}
@@ -3735,7 +3703,7 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
local_context.scene = seq->scene;
local_context.skip_cache = true;
- ibuf = do_render_strip_seqbase(&local_context, state, seq, nr, use_preprocess);
+ ibuf = do_render_strip_seqbase(&local_context, state, seq, nr);
/* step back in the list */
state->scene_parents = state->scene_parents->next;
@@ -3750,8 +3718,6 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
}
case SEQ_TYPE_SPEED: {
- ImBuf *child_ibuf = NULL;
-
float f_cfra;
SpeedControlVars *s = (SpeedControlVars *)seq->effectdata;
@@ -3759,19 +3725,8 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
/* weeek! */
f_cfra = seq->start + s->frameMap[(int)nr];
+ ibuf = seq_render_strip(context, state, seq->seq1, f_cfra);
- child_ibuf = seq_render_strip(context, state, seq->seq1, f_cfra);
-
- if (child_ibuf) {
- ibuf = child_ibuf;
- if (ibuf && use_preprocess) {
- ImBuf *i = IMB_dupImBuf(ibuf);
-
- IMB_freeImBuf(ibuf);
-
- ibuf = i;
- }
- }
break;
}