Commit Graph

27 Commits

Author SHA1 Message Date
08417318cd Sequencer: invalidate current frame cache on sequence transform 2012-08-21 10:42:21 +00:00
831eaf2d7f Sequencer: fix regression introduced in own previous commit
Invalidate preprocessed cache when when global sequencer cache is
begin invalidated.

This is needed so scene would be rendered with a proper settings,
not taken from preprocess cache.
2012-08-20 15:14:23 +00:00
995a19a983 Sequencer: per-sequence modifier stack for color grading
This implements basic color grading modifiers in sequencer, supporting
color balance, RGB curves and HUE corrections.

Implementation is close to object modifiers, some details are there:

http://wiki.blender.org/index.php/User:Nazg-gul/SequencerModifiers

Modifiers supports multi-threaded calculation, masks and instant
parameter changes.

Also added cache for pre-processed image buffers for current frame,
so changing sequence properties does not require rendering of original
sequence (like rendering scene, loading file from disk and so)
2012-08-19 15:41:56 +00:00
0716a85e53 Fix sequencer crash when invalidating strip when there's nothing cached yet 2012-08-12 09:37:51 +00:00
a0a67d2984 Sequencer: initial support of refreshing only changed sequences
Before this the the whole sequencer cache would be invalidated
when hanging sequence settings.

This was completely annoying because changing color balance
settings would re-load image file for which color balance
is happening on every change,

In fact it's still an issue if color balance is changing for
image strip itself, but if this strip has got effect and
color balance is changing for it file wouldn't be reloaded.
2012-08-08 16:46:40 +00:00
572c82e74e Code cleanup: make some more functions more meaningful name 2012-08-08 11:56:58 +00:00
2fe1f37d3a Style cleanup 2012-08-08 11:52:14 +00:00
1bf893e9c8 Code cleanup: BKE_ prefix for public sequencer functions 2012-08-08 11:15:40 +00:00
1cdc39f49b Code cleanup: mark functions as static, ifdef 0 some unused functions 2012-08-08 11:15:32 +00:00
76ee9783a1 Improved cache management for movie clips from tomato branch
Replace pseudo-LRU approach of determining which buffer
to remove when running out of space allowed for cache
with approach which would remove the frame which is most
far away from newly added frame.

This is still a bit tricky because it's impossible to
distinguish which frame to delete in situation of:

        CCCC...CC
           ^

it's either user wants to extend left segment of cached
frames and buffers from right segment should be removed
or he wants to join this two segments and in that case
buffers from right segment should be removed.

Would need a bit more investigation which situation
is more common in general usecase.

Additional changes:

- Cleanup some memutil files (which are familiar to cache limiter)

- 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.
2012-07-10 14:43:50 +00:00
5534701e5d style cleanup: use capital camel case names for typedef's 2012-06-10 15:20:10 +00:00
d5032657ed style cleanup 2012-06-06 22:38:39 +00:00
69e6894b15 style cleanup: follow style guide for formatting of if/for/while loops, and else if's 2012-03-24 06:18:31 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
bc40f11093 header cleanup (no functional changes) 2011-10-10 09:38:02 +00:00
163dbded30 == Sequencer ==
Fixes Fix for [#25713] VSE shows and renders wrong straight alpha gradient even after convert to pr
(see revision: 34540, fix by Janne)

By not breaking the seqcache interface API.

Added comments to header file, so that it is easier to understand, how the
cache API is supposed to work.
2011-04-17 10:05:27 +00:00
Nathan Letwory
0ff06e21cd doxygen: blender/blenkernel tagged. 2011-02-27 20:40:57 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
0955c664aa fix for warnings from Sparse static source code checker, mostly BKE/BLI and python functions.
- use NULL rather then 0 where possible (makes code & function calls more readable IMHO).
- set static variables and functions (exposed some unused vars/funcs).
- use func(void) rather then func() for definitions.
2011-02-13 10:52:18 +00:00
53b83262c5 Fix for [#25713] VSE shows and renders wrong straight alpha gradient even after convert to premul is checked
* Caching of the start and end stills were just referencing the original imbuf (which got premultiplied after the caching), so as a result most of the time the premul was applied twice.
* Now the start and end stills are stored in the cache as duplicates of the original (non modified) imbuf.
2011-01-28 00:59:42 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
263830f000 Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for 'const char's,.
Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-12-03 17:05:21 +00:00
a0517e6338 == Sequencer ==
* documented and rewrote the render interface of the sequencer.
  (now, the geometry / render_type / etc. settings are stored within a
  seperate structure called SeqRenderData that is passed within the code.)

* that fixes
  * cache problems, since the caching system didn't keep track of
    proxy files vs. final renders.
  * is a necessary step, to bring back frame blending in speed effect
    (the SeqRenderData structure elements are already there)
  * will make motion blur render options available within the sequencer!

* this patch also fixes:
  * "easy retiming" using speed effects. (in Blender 2.49, you could 
    add a speed effect and resize the source track to retime it to that
    length)
  * adds labels for the Original dimensions for Image + Movie tracks
    (worked in 2.49, too)
2010-11-21 20:00:31 +00:00
b6a36a3b89 silance compiler warning. 2010-09-12 14:46:41 +00:00
1e816635b0 Bugfix: Small change to hash algorithm hinted by James Ruan on mailing list to
make hash distribution a little bit better.
2010-07-24 08:47:14 +00:00
c36fcf5116 SVN maintenance. 2010-07-23 19:43:13 +00:00
65fcb0edcf == Sequencer ==
This patch cleans up the sequencer core by replacing the caching system
(TStripElems) with a hash based system, which is:

a) a lot faster
b) a lot more readable
c) a lot more memory conserving

The new caching system is also a good building ground for

a) sub frame precision rendering (even on scene strips)
b) multi core rendering (threaded rendering is still disabled, but can 
   be extended now to arbitrary core numbers)

I tested the code on an extensive editing session today and had no 
crashes during 4 hours of editing. So I consider it very stable.
2010-07-23 16:57:11 +00:00