[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31170] trunk/blender/source/blender: == Sequencer ==

Peter Schlaile peter at schlaile.de
Sun Aug 8 15:55:31 CEST 2010


Revision: 31170
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31170
Author:   schlaile
Date:     2010-08-08 15:55:30 +0200 (Sun, 08 Aug 2010)

Log Message:
-----------
== Sequencer ==

This fixes: [#23184] Problems with speed control effect strip in the 
video sequence editor

Also: got rid of tstripdata caches in DNA.

Fixes some potential crashes in SEQ_IMAGE rendering (s_elem wasn't 
checked for NULL).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/seqeffects.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c	2010-08-08 13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c	2010-08-08 13:55:30 UTC (rev 31170)
@@ -2968,22 +2968,11 @@
 
 	fallback_fac = 1.0;
 	
-	/* if there is no IPO, try to make retiming easy by stretching the
+	/* if there is no fcurve, try to make retiming easy by stretching the
 	   strip */
-	// XXX old animation system - seq
 	if (!fcu && seq->seq1->enddisp != seq->seq1->start && seq->seq1->len != 0) {
 		fallback_fac = (float) seq->seq1->len / 
 			(float) (seq->seq1->enddisp - seq->seq1->start);
-		/* FIXME: this strip stretching gets screwed by stripdata
-		   handling one layer up.
-		   
-		   So it currently works by enlarging, never by shrinking!
-
-		   (IPOs still work, if used correctly)
-		*/
-		if (fallback_fac > 1.0) {
-			fallback_fac = 1.0;
-		}
 	}
 
 	if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) {
@@ -3006,8 +2995,8 @@
 
 			cursor += facf;
 
-			if (cursor >= v->length) {
-				v->frameMap[cfra] = v->length - 1;
+			if (cursor >= seq->seq1->len) {
+				v->frameMap[cfra] = seq->seq1->len - 1;
 			} else {
 				v->frameMap[cfra] = cursor;
 				v->lastValidFrame = cfra;
@@ -3033,8 +3022,8 @@
 				facf = (float) cfra * fallback_fac;
 			}
 			facf *= v->globalSpeed;
-			if (facf >= v->length) {
-				facf = v->length - 1;
+			if (facf >= seq->seq1->len) {
+				facf = seq->seq1->len - 1;
 			} else {
 				v->lastValidFrame = cfra;
 			}

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-08-08 13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-08-08 13:55:30 UTC (rev 31170)
@@ -899,7 +899,6 @@
 {
 	float nr;
 
-	if(seq->startdisp >cfra || seq->enddisp <= cfra) return -1;
 	if(seq->len == 0) return -1;
 	if(seq->flag&SEQ_REVERSE_FRAMES) {	
 		/*reverse frame in this sequence */
@@ -1993,7 +1992,7 @@
 	} else if(seq->type == SEQ_IMAGE) {
 		StripElem * s_elem = give_stripelem(seq, cfra);
 
-		if(ibuf == 0) {
+		if(ibuf == 0 && s_elem) {
 			BLI_join_dirfile(name, seq->strip->dir, s_elem->name);
 			BLI_path_abs(name, G.sce);
 
@@ -2004,7 +2003,8 @@
 			ibuf = copy_from_ibuf_still(seq,nr,seqrectx,seqrecty);
 		}
 
-		if (ibuf == 0 && (ibuf=IMB_loadiffname(name, IB_rect))) {
+		if (ibuf == 0 && s_elem && 
+		    (ibuf = IMB_loadiffname(name, IB_rect))) {
 			/* we don't need both (speed reasons)! */
 			if (ibuf->rect_float && ibuf->rect)
 				imb_freerectImBuf(ibuf);
@@ -3541,12 +3541,6 @@
 
 	// XXX: add F-Curve duplication stuff?
 
-	seqn->strip->tstripdata = 0;
-	seqn->strip->tstripdata_startstill = 0;
-	seqn->strip->tstripdata_endstill = 0;
-	seqn->strip->ibuf_startstill = 0;
-	seqn->strip->ibuf_endstill = 0;
-
 	if (seq->strip->crop) {
 		seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
 	}

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-08-08 13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-08-08 13:55:30 UTC (rev 31170)
@@ -4295,11 +4295,6 @@
 			seq->strip= newdataadr(fd, seq->strip);
 			if(seq->strip && seq->strip->done==0) {
 				seq->strip->done= 1;
-				seq->strip->tstripdata = 0;
-				seq->strip->tstripdata_startstill = 0;
-				seq->strip->tstripdata_endstill = 0;
-				seq->strip->ibuf_startstill = 0;
-				seq->strip->ibuf_endstill = 0;
 
 				if(seq->type == SEQ_IMAGE ||
 				   seq->type == SEQ_MOVIE ||

Modified: trunk/blender/source/blender/editors/space_outliner/outliner.c
===================================================================
--- trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-08-08 13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-08-08 13:55:30 UTC (rev 31170)
@@ -983,8 +983,6 @@
 			else {
 				if((seq->strip) && (seq->strip->stripdata))
 					te->name= seq->strip->stripdata->name;
-				else if((seq->strip) && (seq->strip->tstripdata) && (seq->strip->tstripdata->ibuf))
-					te->name= seq->strip->tstripdata->ibuf->name;
 				else
 					te->name= "SQ None";
 			}





More information about the Bf-blender-cvs mailing list