[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