テンプレート:Release Notes/2.46/Sequencer

提供: wiki
移動先: 案内検索


This adds "[#6766] Transform Sequencer effect" by damiles.

  • Configurable interpolation: no, linear, bicubic
  • Makes it possible to specify coordinates in units of pixels or by percent
 of the picture size

It makes the code a lot more clean, since new imbuf functions are used.

This patch also fixes [#6829] Limit on VSE Transform Effect


This patch adds prefetch buffering to the sequencer (see the tracker for additional details:

https://projects.blender.org/tracker/?func=detail&aid=7307&group_id=9&atid=127 )

We create seperate render threads (currently one, because of the fact, that sequence rendering modifies global structures...), that render up to the defined userpref value "Prefetch frames" in advance. (Pressing Alt-A will _first_ fill the buffer and then start playing.)

Bassam and I did some extensive testing, so it should work.

If you don't configure your number of prefetch frames, prefetching is disabled! (Sane defaults... :)

Also: if the machine is definitely too slow and runs out of the prefetch area, prefetching is disabled automatically and we are back to good old frame skipping mode.

My Dual Athlon is able to handle 4 parallel DV streams at once (sometimes a little bit choppy, but prefetching is never disabled!)

I fixed also a long standing bug in the audio code, that made playback run backwards at the beginning...


This adds fractional FPS support to blender and should finally make NTSC work correctly.

NTSC has an FPS of 30.0/1.001 which is approximately 29.97 FPS. Therefore, it is not enough to simply make frs_sec a float, since you can't represent this accurately enough. I added a seperate variable frs_sec_base and FPS is now frs_sec / frs_sec_base.

I changed all the places, where frs_sec was used to my best knowledge.

For convenience sake, I added several macros, that should make life easier in the future:

FRA2TIME(a) : convert frame number to a double precision time in seconds TIME2FRA(a) : the same in the opposite direction FPS  : return current FPS as a double precision number

             (last resort)

This closes bug #6715 Standard framerates not supported / breaks sync -- 23.967 29.967 etc.


Please give this heavy testing with NTSC files, quicktime in/export and the python interface. Errors are most probably only spotted on longer timelines, so that is also important.

The patch was tested by Troy Sobotka and me, so it most probably should work out of the box, but wider testing is important, since errors are very subtle.


Peach request: display last mapped frame in status bar of speed control effect. (To come: auto-resize based on this information)

Sequencer (Peach request)

Make the "Sync" button work when sound is disabled, Animators use this as a way to play animations at the right speed, could be renamed to "Drop Frames" and work even when blender built without audio enabled.

(do not forget to give credit to me :)

Playback (peach request)

Correct playback frames per second when "Play" is pressed. (Play spawns a new instance of blender, it could pass an argument that sets the frames per second)

(double credit :)

Sequencer (includes a little bit of Peach :)

Reworked image / movie loading, to add the following features:

- Mute strip - Lock strip (peach request :) - Crop / Translate _before_ image rescaling - N-keys editing of start, startofs, endofs, startstill, endstill

Added (currently disabled) data structures for

- proxy support - strip blend modes (currently only "REPLACE" works, which always did :)


- automatic FPS rescaling - command keys to lock/mute a bunch of selected strips

 (which would complete the peach request to lock tracks)

Caveats: now the N-keys dialog is four-tabbed. I think, we should move those tabs into the panels dialog in the future...


  • Make Lock flag work for metastrips


Moved N-keys dialog into panel (sub panel of "Scene") _much_ better :)

Since UI-code isn't directly my main field of coding, please check thoroughly...


Moved status info bar into panels. It was always shown on the wrong place... Added anim-startofs and anim-endofs, so that one can specify the range of _input_ that should be used.

There is a subtle difference to start-ofs and end-ofs, which will show, when you use "Reverse Frames" or "Speed Control". Both effects operate on the input-range and _not_ on the display range! Now you can control both in a comfortable way. Only thing missing: a button to copy start-ofs and end-ofs to anim-startofs and anim-endofs. (Andy: that was the feature you missed, when storyboarding with the sequencer and the speed control effect :)

Also: added File-Name and Dir-Name to redirect input as needed.


Attention! Rather large sequencer rewrite:

  • Implemented layer blending using implicit effects. (works like layers
 in "The Gimp" or Photoshop.)
  • Fixed Space-Bar start-stop in preview windows.
 You can start playback using spacebar within a preview-window and it _works_!
  • Fixed Flip Y (didn't work for float)
  • Fixed premul (didn't work for float)
  • Added IPOs to _all_ tracks. In blend-mode REPLACE it drives the
 "mul"-parameter in all other blend modes it drives the effect.
  • you can meta single tracks.
  • moved "mute track" from "M" to "Shift-M"
  • added "Shift-L" for "lock track"
  • changed inner workings for Metas. Now all ImBufs have to use the
 reference counting mechanism. (Only interesting for coders :)

!!! Really important change, that affects current files!

Since you can mute tracks and now there is real layer blending capabilities in place, I changed the silly behaviour that chose the output track.

Old behaviour: if we have an effect track visible, use the uppermost effect track. If there is _no_ effect track visible, use the lowest input track.

New behaviour: always use the uppermost track. With blend modes active: work our way down starting from the uppermost track to the first "replace"-mode track. This is the way the gimp, photoshop, basically _all_ other applications work...

So if this change ruins your day: please try to fix your files using "mute". If this doesn't work out, I can still restore the old behaviour, but I really hope, that this is _not_ necessary!

Rational: most people won't get affected by this change, since you can't really do anything usefull with the (old) sequencer without at least one effect track and then you are on the safe side...

New features:

  • opacity can be used in replace blend mode
  • the scene within in a scene track can be changed now within the panel


  • [#7842] Note: setCodec in FormatTab disappeared...
 should be fixed by this. (Not a big change, so I just commit and see :)

Sequencer / Imbuf

Added a faster linear interpolation scaler to IMB_scaleImBuf. Only handles common cases when we either

enlarge both, width and height or shrink both, width and height

but that is pretty fast:

  • does only blit once instead of two passes like the old code
 (fewer cache misses)
  • uses fixed point integer arithmetic for byte buffers
  • doesn't branch in tight loops
 Should be comparable in speed to the ImBuf ..._fast functions at least 
 for byte-buffers.

For the rather seldom situations that e.g. width is enlarged and height is shrunken, the old code is still in use.


Show input geometry also on MOVIE and SCENE-strips.


Updated image preview a lot:

  • Added a histogram-scope
  • Added optional title-safe margins
  • Re-arranged header, so that only usefull buttons are shown in image
 preview mode
  • Added zebra-mode for visual feedback of over-exposure regions
 (helps in before and especially after color correction :)
  • Added color-seperation-mode for waveform-display
  • Show 10%, 70% and 90% hints in waveform-display


New feature: color balance aka 3-way-color-correction aka lift/gamma/gain on input (folded into byte -> float conversion, so _very_ fast in that case). Interface is inspired from Rebel CC (but not as complete yet, you can't choose white and black points right now).


This adds low resolution proxy support to the blender sequencer, so that even HD editing should be possible on slower machines.

The proxies are stored as directories of JPEG-files and are only activated, if you use preview-resolution rendering.

For your final render, just switch back to full resolution and the original files are used again.

It enables even proxying of whole effect pipelines and scene-strips (but you have to your own custom directory for file storage then, since blender has no filename, which could be taken as a sensible default directory reference)

Make glow effect ipo driven