[Bf-blender-cvs] [ef8240e64c9] blender-v3.0-release: Fix T91992: Incorrect clip strip image size

Richard Antalik noreply at git.blender.org
Mon Nov 15 20:32:38 CET 2021


Commit: ef8240e64c9f7805ef65d9f7599bfb3eca97566c
Author: Richard Antalik
Date:   Mon Nov 15 20:07:46 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rBef8240e64c9f7805ef65d9f7599bfb3eca97566c

Fix T91992: Incorrect clip strip image size

When proxy size lower than 100% is used, clip strips are rendered with
incorrect image size.

This is because if proxies aren't enabled in movieclip, it automatically
falls back on rendering original media. Sequencer doesn't have knowledge
about this and since 9c99292a16df it assumes that image is proxy,
because it explicitly requested this size.

Check movieclip flag to see if proxies are enabled.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D13080

===================================================================

M	source/blender/blenkernel/BKE_movieclip.h
M	source/blender/blenkernel/intern/movieclip.c
M	source/blender/sequencer/intern/render.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h
index 067dc694109..73c7494b8fa 100644
--- a/source/blender/blenkernel/BKE_movieclip.h
+++ b/source/blender/blenkernel/BKE_movieclip.h
@@ -95,6 +95,7 @@ void BKE_movieclip_build_proxy_frame_for_ibuf(struct MovieClip *clip,
                                               int *build_sizes,
                                               int build_count,
                                               bool undistorted);
+bool BKE_movieclip_proxy_enabled(struct MovieClip *clip);
 
 float BKE_movieclip_remap_scene_to_clip_frame(const struct MovieClip *clip, float framenr);
 float BKE_movieclip_remap_clip_to_scene_frame(const struct MovieClip *clip, float framenr);
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index f4db81fffc5..34fb9f71bd9 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -1925,6 +1925,11 @@ void BKE_movieclip_build_proxy_frame_for_ibuf(MovieClip *clip,
   }
 }
 
+bool BKE_movieclip_proxy_enabled(MovieClip *clip)
+{
+  return clip->flag & MCLIP_USE_PROXY;
+}
+
 float BKE_movieclip_remap_scene_to_clip_frame(const MovieClip *clip, float framenr)
 {
   return framenr - (float)clip->start_frame + 1.0f;
diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c
index 4405253586b..12d97d7e3e3 100644
--- a/source/blender/sequencer/intern/render.c
+++ b/source/blender/sequencer/intern/render.c
@@ -1181,7 +1181,8 @@ static ImBuf *seq_render_movieclip_strip(const SeqRenderData *context,
   /* Try to get a proxy image. */
   ibuf = seq_get_movieclip_ibuf(seq, user);
 
-  if (ibuf != NULL && psize != IMB_PROXY_NONE) {
+  /* If clip doesn't use proxies, it will fallback to full size render of original file. */
+  if (ibuf != NULL && psize != IMB_PROXY_NONE && BKE_movieclip_proxy_enabled(seq->clip)) {
     *r_is_proxy_image = true;
   }



More information about the Bf-blender-cvs mailing list