diff options
Diffstat (limited to 'source/blender/sequencer/intern/proxy.c')
-rw-r--r-- | source/blender/sequencer/intern/proxy.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/source/blender/sequencer/intern/proxy.c b/source/blender/sequencer/intern/proxy.c index 464580f5bed..522c64f7791 100644 --- a/source/blender/sequencer/intern/proxy.c +++ b/source/blender/sequencer/intern/proxy.c @@ -123,7 +123,7 @@ bool seq_proxy_get_custom_file_fname(Sequence *seq, char *name, const int view_i return true; } -static bool seq_proxy_get_fname(Editing *ed, +static bool seq_proxy_get_fname(Scene *scene, Sequence *seq, int timeline_frame, eSpaceSeq_Proxy_RenderSize render_size, @@ -132,6 +132,7 @@ static bool seq_proxy_get_fname(Editing *ed, { char dir[PROXY_MAXFILE]; char suffix[24] = {'\0'}; + Editing *ed = SEQ_editing_get(scene); StripProxy *proxy = seq->strip->proxy; if (proxy == NULL) { @@ -179,7 +180,7 @@ static bool seq_proxy_get_fname(Editing *ed, "%s/images/%d/%s_proxy%s", dir, proxy_size_number, - SEQ_render_give_stripelem(seq, timeline_frame)->name, + SEQ_render_give_stripelem(scene, seq, timeline_frame)->name, suffix); BLI_path_abs(name, BKE_main_blendfile_path_from_global()); strcat(name, ".jpg"); @@ -202,7 +203,6 @@ ImBuf *seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline char name[PROXY_MAXFILE]; StripProxy *proxy = seq->strip->proxy; const eSpaceSeq_Proxy_RenderSize psize = context->preview_render_size; - Editing *ed = context->scene->ed; StripAnim *sanim; /* only use proxies, if they are enabled (even if present!) */ @@ -211,9 +211,11 @@ ImBuf *seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline } if (proxy->storage & SEQ_STORAGE_PROXY_CUSTOM_FILE) { - int frameno = (int)seq_give_frame_index(seq, timeline_frame) + seq->anim_startofs; + int frameno = (int)seq_give_frame_index(context->scene, seq, timeline_frame) + + seq->anim_startofs; if (proxy->anim == NULL) { - if (seq_proxy_get_fname(ed, seq, timeline_frame, psize, name, context->view_id) == 0) { + if (seq_proxy_get_fname( + context->scene, seq, timeline_frame, psize, name, context->view_id) == 0) { return NULL; } @@ -232,7 +234,8 @@ ImBuf *seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline return IMB_anim_absolute(proxy->anim, frameno, IMB_TC_NONE, IMB_PROXY_NONE); } - if (seq_proxy_get_fname(ed, seq, timeline_frame, psize, name, context->view_id) == 0) { + if (seq_proxy_get_fname(context->scene, seq, timeline_frame, psize, name, context->view_id) == + 0) { return NULL; } @@ -260,9 +263,10 @@ static void seq_proxy_build_frame(const SeqRenderData *context, int quality; int rectx, recty; ImBuf *ibuf_tmp, *ibuf; - Editing *ed = context->scene->ed; + Scene *scene = context->scene; - if (!seq_proxy_get_fname(ed, seq, timeline_frame, proxy_render_size, name, context->view_id)) { + if (!seq_proxy_get_fname( + scene, seq, timeline_frame, proxy_render_size, name, context->view_id)) { return; } @@ -524,8 +528,8 @@ void SEQ_proxy_rebuild(SeqIndexBuildContext *context, SeqRenderState state; seq_render_state_init(&state); - for (timeline_frame = SEQ_time_left_handle_frame_get(seq); - timeline_frame < SEQ_time_right_handle_frame_get(seq); + for (timeline_frame = SEQ_time_left_handle_frame_get(scene, seq); + timeline_frame < SEQ_time_right_handle_frame_get(scene, seq); timeline_frame++) { if (context->size_flags & IMB_PROXY_25) { seq_proxy_build_frame(&render_context, &state, seq, timeline_frame, 25, overwrite); @@ -540,8 +544,9 @@ void SEQ_proxy_rebuild(SeqIndexBuildContext *context, seq_proxy_build_frame(&render_context, &state, seq, timeline_frame, 100, overwrite); } - *progress = (float)(timeline_frame - SEQ_time_left_handle_frame_get(seq)) / - (SEQ_time_right_handle_frame_get(seq) - SEQ_time_left_handle_frame_get(seq)); + *progress = (float)(timeline_frame - SEQ_time_left_handle_frame_get(scene, seq)) / + (SEQ_time_right_handle_frame_get(scene, seq) - + SEQ_time_left_handle_frame_get(scene, seq)); *do_update = true; if (*stop || G.is_break) { |