[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32816] trunk/blender/source/blender/ blenkernel: Sequencer: fix for the fix of: #23318
Peter Schlaile
peter at schlaile.de
Mon Nov 1 19:55:18 CET 2010
Revision: 32816
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32816
Author: schlaile
Date: 2010-11-01 19:55:12 +0100 (Mon, 01 Nov 2010)
Log Message:
-----------
Sequencer: fix for the fix of: #23318
also known as: broken multicam strip caused by other fix.
Calculated render_size where it belongs (within the glow effect) and
restored old functionality.
also: renamed render_size to preview_render_size at all relevant places,
where the naming wasn't used correctly.
Hopefully it's now a little bit more clear.
render_size := render size from scene (just rescales width/height)
preview_render_size := preview render size from sequencer preview,
controls the resolution and the use of sequencer proxy sources
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-01 18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-01 18:55:12 UTC (rev 32816)
@@ -153,10 +153,10 @@
void seq_free_clipboard(void);
struct Editing *seq_give_editing(struct Scene *scene, int alloc);
char *give_seqname(struct Sequence *seq);
-struct ImBuf *give_ibuf_seq(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_threaded(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_direct(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int render_size, struct Sequence *seq);
-struct ImBuf *give_ibuf_seqbase(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chan_shown, int render_size, struct ListBase *seqbasep);
+struct ImBuf *give_ibuf_seq(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int preview_render_size);
+struct ImBuf *give_ibuf_seq_threaded(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int preview_render_size);
+struct ImBuf *give_ibuf_seq_direct(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int preview_render_size, struct Sequence *seq);
+struct ImBuf *give_ibuf_seqbase(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chan_shown, int preview_render_size, struct ListBase *seqbasep);
void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, int render_size);
void calc_sequence(struct Scene *scene, struct Sequence *seq);
void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);
Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-11-01 18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-11-01 18:55:12 UTC (rev 32816)
@@ -2660,14 +2660,16 @@
}
static struct ImBuf * do_glow_effect(
- Main *UNUSED(bmain), Scene *UNUSED(scene), Sequence *seq, float UNUSED(cfra),
+ Main *UNUSED(bmain), Scene * scene, Sequence *seq, float UNUSED(cfra),
float facf0, float facf1, int x, int y,
- int render_size,
+ int UNUSED(preview_render_size),
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
struct ImBuf *ibuf3)
{
struct ImBuf * out = prepare_effect_imbufs(x, y, ibuf1, ibuf2, ibuf3);
+ int render_size = 100*x/scene->r.xsch;
+
if (out->rect_float) {
do_glow_effect_float(seq, render_size,
facf0, facf1, x, y,
Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-11-01 18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-11-01 18:55:12 UTC (rev 32816)
@@ -1022,7 +1022,7 @@
#define PROXY_MAXFILE (2*FILE_MAXDIR+FILE_MAXFILE)
-static int seq_proxy_get_fname(Scene *UNUSED(scene), Sequence * seq, int cfra, char * name, int render_size)
+static int seq_proxy_get_fname(Scene *UNUSED(scene), Sequence * seq, int cfra, char * name, int preview_render_size)
{
int frameno;
char dir[FILE_MAXDIR];
@@ -1053,17 +1053,17 @@
switch(seq->type) {
case SEQ_IMAGE:
snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir,
- render_size, give_stripelem(seq, cfra)->name);
+ preview_render_size, give_stripelem(seq, cfra)->name);
frameno = 1;
break;
case SEQ_MOVIE:
frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs;
snprintf(name, PROXY_MAXFILE, "%s/%s/%d/####", dir,
- seq->strip->stripdata->name, render_size);
+ seq->strip->stripdata->name, preview_render_size);
break;
default:
frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs;
- snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, render_size);
+ snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, preview_render_size);
}
BLI_path_abs(name, G.main->name);
@@ -1074,7 +1074,7 @@
return TRUE;
}
-static struct ImBuf * seq_proxy_fetch(Scene *scene, Sequence * seq, int cfra, int render_size)
+static struct ImBuf * seq_proxy_fetch(Scene *scene, Sequence * seq, int cfra, int preview_render_size)
{
char name[PROXY_MAXFILE];
@@ -1083,14 +1083,14 @@
}
/* rendering at 100% ? No real sense in proxy-ing, right? */
- if (render_size == 100) {
+ if (preview_render_size == 100) {
return 0;
}
if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) {
int frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs;
if (seq->strip->proxy->anim == NULL) {
- if (seq_proxy_get_fname(scene, seq, cfra, name, render_size)==0) {
+ if (seq_proxy_get_fname(scene, seq, cfra, name, preview_render_size)==0) {
return 0;
}
@@ -1103,7 +1103,7 @@
return IMB_anim_absolute(seq->strip->proxy->anim, frameno);
}
- if (seq_proxy_get_fname(scene, seq, cfra, name, render_size)==0) {
+ if (seq_proxy_get_fname(scene, seq, cfra, name, preview_render_size)==0) {
return 0;
}
@@ -1116,9 +1116,9 @@
#if 0
static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra,
- int build_proxy_run, int render_size);
+ int build_proxy_run, int preview_render_size);
-static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int render_size, int seqrectx, int seqrecty)
+static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int preview_render_size, int seqrectx, int seqrecty)
{
char name[PROXY_MAXFILE];
int quality;
@@ -1132,7 +1132,7 @@
}
/* rendering at 100% ? No real sense in proxy-ing, right? */
- if (render_size == 100) {
+ if (preview_render_size == 100) {
return;
}
@@ -1141,7 +1141,7 @@
return;
}
- if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) {
+ if (!seq_proxy_get_fname(scene, seq, cfra, name, preview_render_size)) {
return;
}
@@ -1155,15 +1155,15 @@
se->ibuf = 0;
}
- do_build_seq_ibuf(scene, seq, se, cfra, TRUE, render_size,
+ do_build_seq_ibuf(scene, seq, se, cfra, TRUE, preview_render_size,
seqrectx, seqrecty);
if (!se->ibuf) {
return;
}
- rectx= (render_size*scene->r.xsch)/100;
- recty= (render_size*scene->r.ysch)/100;
+ rectx= (preview_render_size*scene->r.xsch)/100;
+ recty= (preview_render_size*scene->r.ysch)/100;
ibuf = se->ibuf;
@@ -1629,14 +1629,14 @@
********************************************************************** */
static ImBuf* seq_render_strip_stack( Main *bmain, Scene *scene, ListBase *seqbasep,
- float cfra, int chanshown, int render_size, int seqrectx, int seqrecty);
+ float cfra, int chanshown, int preview_render_size, int seqrectx, int seqrecty);
static ImBuf * seq_render_strip(Main *bmain, Scene *scene, Sequence * seq, float cfra,
- int render_size, int seqrectx, int seqrecty);
+ int preview_render_size, int seqrectx, int seqrecty);
static ImBuf* seq_render_effect_strip_impl(Main *bmain, Scene *scene, float cfra,
- Sequence *seq, int render_size, int seqrectx, int seqrecty)
+ Sequence *seq, int preview_render_size, int seqrectx, int seqrecty)
{
float fac, facf;
int early_out;
@@ -1656,15 +1656,6 @@
return out;
}
- /* Override render size here, effects need to get the actual
- * ratio so they can scale appropriately. This whole business
- * with render size, proxy size, and seqrectx, etc. is a bit
- * complicated and should probably be cleaned up and handled
- * properly way before we get to this point. -jahka
- * (fix for bug #23318)
- */
- render_size = 100*seqrectx/scene->r.xsch;
-
if (seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) {
sh.get_default_fac(seq, cfra, &fac, &facf);
@@ -1688,23 +1679,23 @@
switch (early_out) {
case EARLY_NO_INPUT:
out = sh.execute(bmain, scene, seq, cfra, fac, facf,
- seqrectx, seqrecty, render_size, NULL, NULL, NULL);
+ seqrectx, seqrecty, preview_render_size, NULL, NULL, NULL);
case EARLY_DO_EFFECT:
for(i=0; i<3; i++) {
if(input[i])
ibuf[i] = seq_render_strip(bmain, scene, input[i], cfra,
- render_size, seqrectx, seqrecty);
+ preview_render_size, seqrectx, seqrecty);
}
if (ibuf[0] && ibuf[1]) {
out = sh.execute(bmain, scene, seq, cfra, fac, facf, seqrectx, seqrecty,
- render_size, ibuf[0], ibuf[1], ibuf[2]);
+ preview_render_size, ibuf[0], ibuf[1], ibuf[2]);
}
break;
case EARLY_USE_INPUT_1:
if (input[0]) {
ibuf[0] = seq_render_strip(bmain, scene, input[0], cfra,
- render_size, seqrectx, seqrecty);
+ preview_render_size, seqrectx, seqrecty);
}
if (ibuf[0]) {
if (input_have_to_preprocess(scene, seq, cfra, seqrectx, seqrecty)) {
@@ -1718,7 +1709,7 @@
case EARLY_USE_INPUT_2:
if (input[1]) {
ibuf[1] = seq_render_strip(bmain, scene, input[1], cfra,
- render_size, seqrectx, seqrecty);
+ preview_render_size, seqrectx, seqrecty);
}
if (ibuf[1]) {
if (input_have_to_preprocess(scene, seq, cfra, seqrectx, seqrecty)) {
@@ -1880,7 +1871,7 @@
}
static ImBuf * seq_render_strip(Main *bmain, Scene *scene, Sequence * seq, float cfra,
- int render_size, int seqrectx, int seqrecty)
+ int preview_render_size, int seqrectx, int seqrecty)
{
ImBuf * ibuf = NULL;
char name[FILE_MAXDIR+FILE_MAXFILE];
@@ -1899,7 +1890,7 @@
use_preprocess = FALSE;
if (ibuf == NULL)
- ibuf = seq_proxy_fetch(scene, seq, cfra, render_size);
+ ibuf = seq_proxy_fetch(scene, seq, cfra, preview_render_size);
if(ibuf == NULL) switch(type) {
case SEQ_META:
@@ -1908,7 +1899,7 @@
if(seq->seqbase.first)
meta_ibuf = seq_render_strip_stack(bmain, scene, &seq->seqbase,
- seq->start + nr, 0, render_size, seqrectx, seqrecty);
+ seq->start + nr, 0, preview_render_size, seqrectx, seqrecty);
if(meta_ibuf) {
ibuf = meta_ibuf;
@@ -1934,7 +1925,7 @@
/* weeek! */
f_cfra = seq->start + s->frameMap[(int) nr];
- child_ibuf = seq_render_strip(bmain, scene, seq->seq1, f_cfra, render_size,
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list