diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-05 18:50:57 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-05 18:52:36 +0300 |
commit | 08ab09cf04d93520118460b3d1f243313b7892b8 (patch) | |
tree | 71b2852270fb653a041266bf789cee842cd0f461 /source/blender/editors/space_clip/clip_editor.c | |
parent | 3467e40e01fd84c322189329a4f38ac830bc4729 (diff) |
Clip editor: Fixes for prefetch
Seems metadata was never read while prefetching, at least was
never requested to be read.
Also fixed prefetch for multilayer EXR.
Diffstat (limited to 'source/blender/editors/space_clip/clip_editor.c')
-rw-r--r-- | source/blender/editors/space_clip/clip_editor.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/space_clip/clip_editor.c b/source/blender/editors/space_clip/clip_editor.c index 24103ed9054..c8694647d9d 100644 --- a/source/blender/editors/space_clip/clip_editor.c +++ b/source/blender/editors/space_clip/clip_editor.c @@ -773,7 +773,7 @@ static void prefetch_task_func(TaskPool * __restrict pool, void *task_data, int while ((mem = prefetch_thread_next_frame(queue, clip, &size, ¤t_frame))) { ImBuf *ibuf; MovieClipUser user = {0}; - int flag = IB_rect | IB_alphamode_detect; + int flag = IB_rect | IB_multilayer | IB_alphamode_detect | IB_metadata; int result; char *colorspace_name = NULL; const bool use_proxy = (clip->flag & MCLIP_USE_PROXY) && @@ -789,6 +789,10 @@ static void prefetch_task_func(TaskPool * __restrict pool, void *task_data, int } ibuf = IMB_ibImageFromMemory(mem, size, flag, colorspace_name, "prefetch frame"); + if (ibuf == NULL) { + continue; + } + BKE_movieclip_convert_multilayer_ibuf(ibuf); result = BKE_movieclip_put_frame_if_possible(clip, &user, ibuf); |