Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2021-03-16 19:59:30 +0300
committerRichard Antalik <richardantalik@gmail.com>2021-03-16 20:50:32 +0300
commit91561629cd0bd622c9d1722701ab88c9e77be660 (patch)
tree30a312001766759166fa8fa25e18334d917500f3 /source/blender/sequencer
parent0449da54602b2e9a1ea58d336f190c3919f3f27a (diff)
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
Diffstat (limited to 'source/blender/sequencer')
-rw-r--r--source/blender/sequencer/SEQ_proxy.h3
-rw-r--r--source/blender/sequencer/SEQ_render.h1
-rw-r--r--source/blender/sequencer/intern/proxy.c7
-rw-r--r--source/blender/sequencer/intern/render.c5
4 files changed, 10 insertions, 6 deletions
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);
}