[Bf-blender-cvs] [93055b1] master: Fix metadata display in sequencer lost after doing a preprocess transform.

Antony Riakiotakis noreply at git.blender.org
Mon May 4 12:53:26 CEST 2015


Commit: 93055b1c2293ca0e4db35641193b778f48d7aff5
Author: Antony Riakiotakis
Date:   Mon May 4 12:52:58 2015 +0200
Branches: master
https://developer.blender.org/rB93055b1c2293ca0e4db35641193b778f48d7aff5

Fix metadata display in sequencer lost after doing a preprocess
transform.

IMB_makeSingleUser makes a copy and destroys metadata. I am not sure if
this is the safest way to make a single user ImBuf (setting the refcount
to 0 is simpler and there's less, but no zero, risk of dangling
pointers) but I will leave this as is for now in case there is an actual
need for a copy here. The alternative approach should be tested at some
point.

===================================================================

M	source/blender/blenkernel/intern/sequencer.c
M	source/blender/imbuf/intern/allocimbuf.c

===================================================================

diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index f31d30b..bb48023 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -3588,6 +3588,8 @@ static ImBuf *seq_render_strip_stack(const SeqRenderData *context, ListBase *seq
 
 					out = seq_render_strip_stack_apply_effect(context, seq, cfra, ibuf1, ibuf2);
 
+					IMB_metadata_copy(out, ibuf2);
+
 					IMB_freeImBuf(ibuf1);
 					IMB_freeImBuf(ibuf2);
 				}
diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c
index 18c3aeb..79f8699 100644
--- a/source/blender/imbuf/intern/allocimbuf.c
+++ b/source/blender/imbuf/intern/allocimbuf.c
@@ -210,6 +210,8 @@ ImBuf *IMB_makeSingleUser(ImBuf *ibuf)
 
 	rval = IMB_dupImBuf(ibuf);
 
+	IMB_metadata_copy(rval, ibuf);
+
 	IMB_freeImBuf(ibuf);
 
 	return rval;




More information about the Bf-blender-cvs mailing list