[Bf-blender-cvs] [647a4ea] master: Fix T47577: Movie clip uses too much memory with still image sequences
Sergey Sharybin
noreply at git.blender.org
Tue Mar 15 11:08:25 CET 2016
Commit: 647a4ea2f7a057159aae29d875e20db2809b563b
Author: Sergey Sharybin
Date: Tue Mar 15 15:07:18 2016 +0500
Branches: master
https://developer.blender.org/rB647a4ea2f7a057159aae29d875e20db2809b563b
Fix T47577: Movie clip uses too much memory with still image sequences
===================================================================
M source/blender/blenkernel/intern/movieclip.c
===================================================================
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index 9b9838a..a8d3c60 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -367,6 +367,8 @@ typedef struct MovieClipCache {
} stabilized;
int sequence_offset;
+
+ bool is_still_sequence;
} MovieClipCache;
typedef struct MovieClipImBufCacheKey {
@@ -465,7 +467,12 @@ static ImBuf *get_imbuf_cache(MovieClip *clip,
if (clip->cache) {
MovieClipImBufCacheKey key;
- key.framenr = user_frame_to_cache_frame(clip, user->framenr);
+ if (!clip->cache->is_still_sequence) {
+ key.framenr = user_frame_to_cache_frame(clip, user->framenr);
+ }
+ else {
+ key.framenr = 1;
+ }
if (flag & MCLIP_USE_PROXY) {
key.proxy = rendersize_to_proxy(user, flag);
@@ -533,9 +540,19 @@ static bool put_imbuf_cache(MovieClip *clip,
clip->cache->moviecache = moviecache;
clip->cache->sequence_offset = -1;
+ if (clip->source == MCLIP_SRC_SEQUENCE) {
+ unsigned short numlen;
+ BLI_stringdec(clip->name, NULL, NULL, &numlen);
+ clip->cache->is_still_sequence = (numlen == 0);
+ }
}
- key.framenr = user_frame_to_cache_frame(clip, user->framenr);
+ if (!clip->cache->is_still_sequence) {
+ key.framenr = user_frame_to_cache_frame(clip, user->framenr);
+ }
+ else {
+ key.framenr = 1;
+ }
if (flag & MCLIP_USE_PROXY) {
key.proxy = rendersize_to_proxy(user, flag);
More information about the Bf-blender-cvs
mailing list