Avoid imbuf loading when getting movie clip size
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 7 Jun 2012 16:15:24 +0000 (16:15 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 7 Jun 2012 16:15:24 +0000 (16:15 +0000)
This prevents high memory usage by non-proxied frames when doing mask parenting.

Description from code:

  Originally was needed to support image sequences with different image dimensions,
  which might be useful for such things as reconstruction of unordered image sequence,
  or painting/rotoscoping of non-equal-sized images, but this ended up in unneeded
  cache lookups and even unwanted non-proxied files loading when doing mask parenting,
  so let's disable this for now and assume image sequence consists of images with equal sizes

source/blender/blenkernel/intern/movieclip.c

index de12926f3ebade1393cc2ac8adb980cc50c67a47..985fc433c13ffbde18c913daddb3373be5b8f1e4 100644 (file)
@@ -916,7 +916,17 @@ int BKE_movieclip_has_frame(MovieClip *clip, MovieClipUser *user)
 
 void BKE_movieclip_get_size(MovieClip *clip, MovieClipUser *user, int *width, int *height)
 {
+#if 0
+       /* originally was needed to support image sequences with different image dimensions,
+        * which might be useful for such things as reconstruction of unordered image sequence,
+        * or painting/rotoscoping of non-equal-sized images, but this ended up in unneeded
+        * cache lookups and even unwanted non-proxied files loading when doing mask parenting,
+        * so let's disable this for now and assume image sequence consists of images with
+        * equal sizes (sergey)
+        */
        if (user->framenr == clip->lastframe) {
+#endif
+       if (clip->lastsize[0] != 0 && clip->lastsize[1] != 0) {
                *width = clip->lastsize[0];
                *height = clip->lastsize[1];
        }