Commit patch #8195
New outliner mode: Sequence, it's show all the sequence and strip that
we have in the outliner, split it for type (particle, sound and so on..).
Some notes to take care:
* The strip can be selected with LMB
* The sequence can be deleted with XKEY (all the selected)
* The "Meta" are stored in a single tree (Meta Strip)
with all the sequence.
* Duplicate sequence (with the same name) are store in a single tree
and you can select all the Sequence with LMB in the "root" entry.
* Also show the directory path.
[ As Ton point in the tracker, still need more work (and options, Luca made
a really good list in the tracker), so move to the trunk and start
working here, probably a good topic for next meeting. ]
Fixes: [#17315] Sequencer: after undo there's no active object
closes: [#17357] fix for bug #17315 - Sequencer: after undo there's no active object
(kiemdoder: thanks for the patch, had to do it in a little bit different way,
since sort_seq will kill your sort order idea...)
* [#13394] Sequencer: if internal strips have handles selected, dragging the metastrip changes the meta length
* Extend did not work correctly on metastrips when the nested seq's are out of the meta's frame range, added an argument to seq_tx_get_final_left/right
that returns the frame clipped by metastrip(s) if any.
A lot of fixes for anim_startofs / anim_endofs:
* crashed when striplen was 0 and startstill / endstill still in use
* made it work for Audio (HD and RAM)
* made it work for Image Sequences
* added a new cutting tool, that uses anim_startofs / endofs instead of
startofs / endofs. This is now the default and called "hard cut"
* moved old cutting method to "Shift-K" and renamed it "soft cut"
Fixed a long standing bug in IMB_dupImBuf: refcounter should be better 0
within the duplicated ImBuf...
Finally removed this strange STRIPELEM_META mumbo jumbo.
On a way to asset management: made METAs behave like true input strips:
* proxying should work
* input filter options should work (including transform and color balance :)
* IPOs now work in replace mode
Reworked seq_cut completely. Now it is equivalent to: dup and set startofs /
endofs, which is what most people probably expected...
Fixes:
[#8388] Sequencer Cut on empty meta
[#8546] Sequencer: 2 different problems cutting some metastrips
Fixed a bug with ibuf caching on startstill / endstill.
The new blend modes happened to force start and endstill to be rendered
over and over again. This could get very annoying especially on scene
strips.
We therefore now cache the original start or endstill ibuf seperately
and copy on demand.
Fixes a lot of small things:
* zoom in/out in preview is more fine grained (use SHIFT)
* zebra scopes don't try to draw the border and fail
* lock/unlock now locks/unlocks all selected strips
* fix redraw problems of panel on lock/unlock
* buttons-panel is redrawn on translate, so that position information is shown
* added lock / hide to Strip-Menu
* fixed small drawing problems in header
TODO: find a good key for lock / unlock (Shift-L | Alt-Shift-L isn't that nice
to press...)
This fixes:
[#8335] Sequence Strips Jump to Frame Zero on second drag (if start < 0)
[#8334] Cannot use Negative Values in the New Sequence Buttons Input Panel
[#8333] Cannot add Color Generator in Sequence Editor
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).
Bugfix: clamp color seperated wave form display correctly.
This fixes several crashes with the new tstripdata_start/endstill.
dupli_seq was cleaned up as well as add_scene_strip (moved to a
seperate function)
New features:
* opacity can be used in replace blend mode
* the scene within in a scene track can be changed now within the panel
Also:
* [#7842] Note: setCodec in FormatTab disappeared...
should be fixed by this. (Not a big change, so I just commit and see :)
http://peter.schlaile.de/blender/sequencer/codec_buttons.diff
Removed FTYPE from render output panel - was some old format that did index colors, and wasn't even used anywhere.
Added 2 options to the render output panel that can be used for a really basic local renderfarm (even artists can use it!),
"NoOverwrite" and "Touch"
When both are enabled, rendering 1 scene between many pc's on a fast network will populate the directory with frames.
Also useful to delete frames that have errors and re-render (without manually re-rendering each frame)
drawing strips was setting the depth that would then incorrectly overlap when used with metastrips. - so metastrisp would grow when moved - showed up in peach animatic.
Now metastrips draw display differently- only immediate children are shown on the strip.
Also disabled overlap checking during transform for non zero depth strips since its not 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...
Based on feedback from Ton, I've recoded the way "PoseLibs" are implemented/exposed. Therefore, quite a bit of code has been changed to fit this in better.
Now, ANY ACTION can be a "PoseLib". A set of Markers which belong to the Action (it's taken a year, but they're finally back), are used to tag "poses" in the Action. These markers are shown using diamond-shaped blue icons (designed by Matt Ebb) in three shades - unselected/normal, selected, active.
Notes:
* Each Armature Object has an Action which acts as a PoseLib.
* Improved UI presented in buttons panel for this
-- added proper buttons for action assigning
-- renamed "Validate PoseLib" to "Auto-Sync PoseLib" (this option auto-tags poses based on keyframes found)
Like in the 3d-view, use the hotkeys:
* Shift-L to add a local marker
* Ctrl-Shift-L to rename a local marker
* Alt-L to delete selected local markers
Note: transforms, etc. are not currently available with these markers
== PoseLib Preview ==
Added a few features here:
* Left/Right-Arrow keys now change the poses too (previous and next respectively)
* Up/Down-Arrow keys also change the poses, but "jump" to a pose 5 steps away in their respective directions
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...
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 :)
Planed:
- 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...
[#7861] Sequencer segfaults when trying to add images
Fixed some _really_ stupid bugs in transform_seq, that made it segfault
if one selected 0 images.
- Seperated StripData into
StripData
TStripData
where StripData holds only image-filenames and TStripData holds
the working information needed for ImBuf caching.
=> Large drop in memory usage, if you used a lot of movie and meta strips.
=> Fixed bugs in "duplicate" on the way (imbufs where copied around without
taking reference counting seriously...)
=> Code is much cleaner now
- Added defines for TStripData->ok
Finally figured out, what the magic values ment and named them properly :)
- Got rid of Sequence->curelem.
Reason: very bad idea(tm) for multi threading with more than one render
thread. Still not there, but this was a real show stopper on the way.
* made stamp filename optional
* renamed weightpaint "Filter" to "Blur"
* made the defailt weightpaint opacity 1.0 rather then 0.2 so when you select 1.0 weight you can paint it with without multiple clicks.
added an option to reload selected strip data (Alt+R - same as reloading images in the imaeg
viewer)
made the sequencer max memory limit 16gig for 64bit's.
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.
https://projects.blender.org/tracker/?func=detail&aid=6715&group_id=9&atid=125
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.
Enjoy!