Color management: refactor of cache to deal better with movie clip cache
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 5 Jul 2012 09:41:00 +0000 (09:41 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 5 Jul 2012 09:41:00 +0000 (09:41 +0000)
commit83758c41544df1bb6093327330edeff2707c83e2
tree91bd194598b8619409db4977dc5f0dd1e5c29f0e
parent60113a4b63b768e67ca62b4da93770404fc8fd45
Color management: refactor of cache to deal better with movie clip cache

There were some crashes discovered in some circumstances of using
color management within the clip editor which ended up some refactoring
of color management cache.

Switch from global movie cache instance to per-image buffer instances

This only means keys for color managed buffers could be much simpier
and that look up would happen much faster in there're lots of frames
cached. Memory limiter stuff is still global for all color management
and in fact it's also shared with movie clip cache .

This allowed to get rid of original image buffer stored in cache
key and allowed to easily remove all display buffers when source
image buffer is being freed. This was main culptrit leading to
crashes.

Additional changes:

- Add option to make moviecache verbose. If DEBUG_MESSAGES is
  defined in moviecache.c detailed logs would be printed to the
  console.

- Movie caches are now named which helps reading debug messages.

- Improved a bit behavior of cache element removing when buffer
  overflows on adding new display buffer and there're frames from
  movie clip.
intern/memutil/MEM_CacheLimiter.h
source/blender/blenkernel/intern/movieclip.c
source/blender/blenkernel/intern/seqcache.c
source/blender/imbuf/IMB_colormanagement.h
source/blender/imbuf/IMB_imbuf_types.h
source/blender/imbuf/IMB_moviecache.h
source/blender/imbuf/intern/allocimbuf.c
source/blender/imbuf/intern/colormanagement.c
source/blender/imbuf/intern/moviecache.c