diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/movieclip.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_draw.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index a53714c8a98..c23110b4703 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -1609,8 +1609,10 @@ void BKE_movieclip_get_cache_segments(MovieClip *clip, if (clip->cache) { int proxy = rendersize_to_proxy(user, clip->flag); + BLI_thread_lock(LOCK_MOVIECLIP); IMB_moviecache_get_cache_segments( clip->cache->moviecache, proxy, user->render_flag, r_totseg, r_points); + BLI_thread_unlock(LOCK_MOVIECLIP); } } diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c index cc86852e0d1..342f2df0020 100644 --- a/source/blender/editors/space_image/image_draw.c +++ b/source/blender/editors/space_image/image_draw.c @@ -541,7 +541,10 @@ void draw_image_cache(const bContext *C, ARegion *region) int num_segments = 0; int *points = NULL; + BLI_mutex_lock(image->runtime.cache_mutex); IMB_moviecache_get_cache_segments(image->cache, IMB_PROXY_NONE, 0, &num_segments, &points); + BLI_mutex_unlock(image->runtime.cache_mutex); + ED_region_cache_draw_cached_segments( region, num_segments, points, sfra + sima->iuser.offset, efra + sima->iuser.offset); } |