diff options
-rw-r--r-- | source/blender/blenkernel/intern/seqcache.c | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/seqcache.c b/source/blender/blenkernel/intern/seqcache.c index 122e186bcd7..78cd4bb51fe 100644 --- a/source/blender/blenkernel/intern/seqcache.c +++ b/source/blender/blenkernel/intern/seqcache.c @@ -232,8 +232,9 @@ void seq_stripelem_cache_put( key->cfra = cfra - seq->start; key->type = type; - /* we want our own version */ - IMB_refImBuf(i); + /* Normally we want our own version, but start and end stills are duplicates of the original. */ + if(ELEM(type, SEQ_STRIPELEM_IBUF_STARTSTILL, SEQ_STRIPELEM_IBUF_ENDSTILL)==0) + IMB_refImBuf(i); e = (seqCacheEntry*) BLI_mempool_alloc(entrypool); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 9ffc04c5191..973f14d690c 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -1705,13 +1705,13 @@ static void copy_to_ibuf_still(SeqRenderData context, Sequence * seq, float nr, if (nr == 0) { seq_stripelem_cache_put( context, seq, seq->start, - SEQ_STRIPELEM_IBUF_STARTSTILL, ibuf); + SEQ_STRIPELEM_IBUF_STARTSTILL, IMB_dupImBuf(ibuf)); } if (nr == seq->len - 1) { seq_stripelem_cache_put( context, seq, seq->start, - SEQ_STRIPELEM_IBUF_ENDSTILL, ibuf); + SEQ_STRIPELEM_IBUF_ENDSTILL, IMB_dupImBuf(ibuf)); } } |