[Bf-committers] Large sequencer cleanup

Peter Schlaile peter at schlaile.de
Thu Jul 22 16:29:13 CEST 2010


the last three days, I cleaned up / rewrote large parts of the sequencer 
code, to accomplish the following things:

* make cfra a float internally to enable sub-frame precision rendering
   with speed effects and make the code a lot clearer
* remove the whole TStripelem mumbo jumbo (is necessary, since cfra is a
   float now, right?)
* replacing it with a hashtable based caching system
* thereby dropping memory usage of the sequencer to a fraction of it's
   current usage (80 MB without using any caches to approximately 5 MB on
   a 3 hour timeline)
* thereby making the cache limitor drop the full imbufs (no more clicking
   on refresh from time to time anymore)
* thereby make cutting a lot snappier, since freeing up the imbufs is just
   about dropping the contents of the current hashtable and not traversing
   really large arrays of null pointers...
* prepare the code for multi-core usage (threaded rendering is disabled
   right now, but the old code was limited to two cores anyways, because of
   this TStripElem hell)
* and: make the code so easy to understand, that your grandma will get
   hold of it (hopefully)

I did some test editing, nothing crashes, no memory leaks, everything 
seems happy, but: can I commit or should I wait some days to let Blender 
2.53 settle?

Patch is here for reference:

Only thing missing is frame blending in Movie and Image strips on speed 
effect input (which is still largely broken, so most people won't really 

This will come back shortly as an option for Movie and Image strips. 
(Which will be able to adapt to different frame rates directly for free 
on the way, since, cfra is now a float :) ...)


Peter Schlaile

More information about the Bf-committers mailing list