From 91561629cd0bd622c9d1722701ab88c9e77be660 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Tue, 16 Mar 2021 17:59:30 +0100 Subject: VSE: Simplify proxy settings - Remove Full Render size from VSE preview size. Use just 100% instead. - Add Use Proxies checkbox to control whether proxies are used globally - Move preview size to top so it is most prominent - Set default to 100% preview size and use proxies Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D10362 --- source/blender/sequencer/SEQ_proxy.h | 3 ++- source/blender/sequencer/SEQ_render.h | 1 + source/blender/sequencer/intern/proxy.c | 7 ++++--- source/blender/sequencer/intern/render.c | 5 +++-- 4 files changed, 10 insertions(+), 6 deletions(-) (limited to 'source/blender/sequencer') diff --git a/source/blender/sequencer/SEQ_proxy.h b/source/blender/sequencer/SEQ_proxy.h index 6934215839f..859eac90609 100644 --- a/source/blender/sequencer/SEQ_proxy.h +++ b/source/blender/sequencer/SEQ_proxy.h @@ -35,6 +35,7 @@ struct Main; struct Scene; struct SeqIndexBuildContext; struct Sequence; +struct SeqRenderData; bool SEQ_proxy_rebuild_context(struct Main *bmain, struct Depsgraph *depsgraph, @@ -48,7 +49,7 @@ void SEQ_proxy_rebuild(struct SeqIndexBuildContext *context, float *progress); void SEQ_proxy_rebuild_finish(struct SeqIndexBuildContext *context, bool stop); void SEQ_proxy_set(struct Sequence *seq, bool value); -bool SEQ_can_use_proxy(struct Sequence *seq, int psize); +bool SEQ_can_use_proxy(const struct SeqRenderData *context, struct Sequence *seq, int psize); int SEQ_rendersize_to_proxysize(int render_size); double SEQ_rendersize_to_scale_factor(int size); diff --git a/source/blender/sequencer/SEQ_render.h b/source/blender/sequencer/SEQ_render.h index 54584824da8..c138daf1318 100644 --- a/source/blender/sequencer/SEQ_render.h +++ b/source/blender/sequencer/SEQ_render.h @@ -44,6 +44,7 @@ typedef struct SeqRenderData { int rectx; int recty; int preview_render_size; + bool use_proxies; int for_render; int motion_blur_samples; float motion_blur_shutter; diff --git a/source/blender/sequencer/intern/proxy.c b/source/blender/sequencer/intern/proxy.c index 22d8daba696..562cd07ddee 100644 --- a/source/blender/sequencer/intern/proxy.c +++ b/source/blender/sequencer/intern/proxy.c @@ -199,11 +199,12 @@ static bool seq_proxy_get_fname(Editing *ed, return true; } -bool SEQ_can_use_proxy(Sequence *seq, int psize) +bool SEQ_can_use_proxy(const struct SeqRenderData *context, Sequence *seq, int psize) { - if (seq->strip->proxy == NULL) { + if (seq->strip->proxy == NULL || !context->use_proxies) { return false; } + short size_flags = seq->strip->proxy->build_size_flags; return (seq->flag & SEQ_USE_PROXY) != 0 && psize != IMB_PROXY_NONE && (size_flags & psize) != 0; } @@ -217,7 +218,7 @@ ImBuf *seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline StripAnim *sanim; /* only use proxies, if they are enabled (even if present!) */ - if (!SEQ_can_use_proxy(seq, SEQ_rendersize_to_proxysize(psize))) { + if (!SEQ_can_use_proxy(context, seq, SEQ_rendersize_to_proxysize(psize))) { return NULL; } diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c index cf07fc7bc19..73d12bfd6b6 100644 --- a/source/blender/sequencer/intern/render.c +++ b/source/blender/sequencer/intern/render.c @@ -1121,7 +1121,7 @@ static ImBuf *seq_render_movie_strip_view(const SeqRenderData *context, IMB_anim_set_preseek(sanim->anim, seq->anim_preseek); - if (SEQ_can_use_proxy(seq, psize)) { + if (SEQ_can_use_proxy(context, seq, psize)) { /* Try to get a proxy image. * Movie proxies are handled by ImBuf module with exception of `custom file` setting. */ if (context->scene->ed->proxy_storage != SEQ_EDIT_PROXY_DIR_STORAGE && @@ -1793,7 +1793,8 @@ ImBuf *seq_render_strip(const SeqRenderData *context, } /* Proxies are not stored in cache. */ - if (!SEQ_can_use_proxy(seq, SEQ_rendersize_to_proxysize(context->preview_render_size))) { + if (!SEQ_can_use_proxy( + context, seq, SEQ_rendersize_to_proxysize(context->preview_render_size))) { ibuf = seq_cache_get(context, seq, timeline_frame, SEQ_CACHE_STORE_RAW); } -- cgit v1.2.3