Build proxy from meta and image strips used resolution used for display,
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 17 Feb 2012 07:32:18 +0000 (07:32 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 17 Feb 2012 07:32:18 +0000 (07:32 +0000)
not set by building job which leads to unusable proxies.

This change should resolve issues reported in #30229: Sequencer Meta strip Proxy Fails
and probably #30196 will work nicer too.

source/blender/blenkernel/intern/sequencer.c

index 0790896da0db179805e9a87095856eee8a50f733..b2188754503cf036fa9466f0ac83a999459994b5 100644 (file)
@@ -1192,11 +1192,10 @@ static void seq_open_anim_file(Sequence * seq)
 }
 
 
-static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra, char * name)
+static int seq_proxy_get_fname(Sequence * seq, int cfra, int render_size, char * name)
 {
        int frameno;
        char dir[PROXY_MAXFILE];
-       int render_size = context.preview_render_size;
 
        if (!seq->strip->proxy) {
                return FALSE;
@@ -1226,22 +1225,17 @@ static int seq_proxy_get_fname(SeqRenderData context, Sequence * seq, int cfra,
                return TRUE;
        }
 
-       /* dirty hack to distinguish 100% render size from PROXY_100 */
-       if (render_size == 99) {
-               render_size = 100;
-       }
-
        /* generate a separate proxy directory for each preview size */
 
        if (seq->type == SEQ_IMAGE) {
                BLI_snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir,
-                            context.preview_render_size,
+                            render_size,
                             give_stripelem(seq, cfra)->name);
                frameno = 1;
        } else {
                frameno = (int) give_stripelem_index(seq, cfra) + seq->anim_startofs;
                BLI_snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, 
-                            context.preview_render_size);
+                            render_size);
        }
 
        BLI_path_abs(name, G.main->name);
@@ -1258,6 +1252,12 @@ static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int
        IMB_Proxy_Size psize = seq_rendersize_to_proxysize(
                context.preview_render_size);
        int size_flags;
+       int render_size = context.preview_render_size;
+
+       /* dirty hack to distinguish 100% render size from PROXY_100 */
+       if (render_size == 99) {
+               render_size = 100;
+       }
 
        if (!(seq->flag & SEQ_USE_PROXY)) {
                return NULL;
@@ -1273,7 +1273,7 @@ static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int
        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(context, seq, cfra, name)==0) {
+                       if (seq_proxy_get_fname(seq, cfra, render_size, name)==0) {
                                return NULL;
                        }
  
@@ -1292,7 +1292,7 @@ static struct ImBuf * seq_proxy_fetch(SeqRenderData context, Sequence * seq, int
                                         IMB_TC_NONE, IMB_PROXY_NONE);
        }
  
-       if (seq_proxy_get_fname(context, seq, cfra, name) == 0) {
+       if (seq_proxy_get_fname(seq, cfra, render_size, name) == 0) {
                return NULL;
        }
 
@@ -1313,7 +1313,7 @@ static void seq_proxy_build_frame(SeqRenderData context,
        int ok;
        struct ImBuf * ibuf;
 
-       if (!seq_proxy_get_fname(context, seq, cfra, name)) {
+       if (!seq_proxy_get_fname(seq, cfra, proxy_render_size, name)) {
                return;
        }