Age | Commit message (Collapse) | Author |
|
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.
|
|
the sequencer. This time, actually apply patch to the file before submmiting.
|
|
the sequencer.
|
|
added checks for a camera
Also added an error ob bake if there are no active objects.
|
|
Since mul changed into master gain slider, slightly raised limit, so that
color balance doesn't get too dark.
Fixed crash in float->float color balance.
|
|
Fixes [8222] Sequencer crash
Scene didn't work without a proxy anymore... :)
|
|
popdown when sync selection is enabled.
|
|
|
|
Silently destroyed a null check in free_sequence in last commit,
getting old... :)
|
|
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)
|
|
C90 compliant. Also fix warning about pointer parameter mismatch.
|
|
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.
|
|
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.
-------
Also small fix in sequencer: free float buffers on read now.
|
|
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
|
|
Fixed two issues with the sequencer:
* using blend modes with startstill / endstill in combination with IPOs
failed, since there was no room to store the composited result.
(It was stored into the same TStripElem thereby effectively disabling the
effect of the IPO)
If you have no idea, what this is all about:
A common case was: use a single PNG as a title, extrude and try to fade
in / out using IPOs.
* startstill / endstill are always displayed, so that one can change them
also on movie-strips and scene-strips.
|
|
Fixed crash with metastrips where ibufs where null...
|
|
forgot to swap input on "Over drop".
|
|
Fixed:
* crash with gamma tabs and blend modes
* crash on rect -> rect_float blend mode input
* alpha over and under have now input swapped
|
|
Bugfix: fixes crash if lowest strip was in blend mode "ALPHA OVER" (combined
with other blends above)
|
|
Added some additional NULL-checks. (se->ibuf can be null, shame on me :)
|
|
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...
|
|
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.
|
|
* Make Lock flag work for metastrips
* Fixes: flags are cleared on exit of metastrips
* Fixes (hopefully): red picture on big endian
|
|
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...
|
|
Fixed IPO calculation for threaded prefetch rendering. (do_seq_ipo used
global CFRA tststs...)
|
|
Added malloc mutex handling. (Sorry, had to patch threads.c a bit,
since otherwise scene tracks will completely screw things up...)
|
|
- 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.
|
|
around)
|
|
new option for the image sequencer's image strips, flip x/y, (useful when making animatics to test the direction characters walk across the screen)
added IMB_flipy was alredy there, needed to add IMB_flipx.
|
|
Added include compiler switches for windows to make pthread.h accessible
and reverted Joshua's patch.
(Joshua: the prefetch buffering has _nothing_ to do with FFMPEG!)
If this still does not fix the problem, please send an email to me!
I also fixed
source\blender\src\sequence.c(1405) : error C2275: 'PrefetchThread'
GCC is way to gracefully in latest versions... :)
|
|
When compiling Blender without FMMPEG here, compiling broke on this file after the prefetch buffering commit. I've added some #ifdefs to fix this in the meantime, but Peter should check.
|
|
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 fixes [#6996] Sequence Nesting and enables sequence nesting for the
first time :)
The old hack done by Ton prevented eternal loops by preventing Sequence
tracks being added to Sequence scenes.
We now disable "Do sequence" temporarily for the _current_ scene, which
has the same effect but leaves the possibility of sequence nesting
untouched.
Also fixes a warning in editseq (uninitialized variable).
|
|
Bugfixes:
- Effect dependencies sometimes went wrong. seq3 was always calculated,
even if the effect already told the upper layer, that there is an early
out available...
- On render, only free _all_ buffers, if memory usage is above the memcache
limit. This made my render times drop from 17 hours to only 4 hours on
a 2 hour movie.
Ton: I don't want to start an edit war at this point, but if you really
need the old behaviour, just use a very low, non-zero memcache limit in the
preferences. (In most cases, the default of 32 Mb _is_ very low ;-)
|
|
doesn't make the feature peter added (to set last-seq based on selection)
work... I'll ask him to review code.
|
|
Fixes Bug #5239 reported by Anders Gudmundson:
- Sequencer eats memory like popcorn with metastrips
- Crash on gaps in metastrips
Both were introduces by my last patch that added "Speed Control".
I also forgot to add "Speed Control" and "Color" to the "Add"-menu.
(Simply haven't noticed, I use the spacebar all the time...)
|
|
|
|
Major sequencer rewrite to add Speed Control effect.
Changes:
- Cleaned up large parts of sequence.c removing a lot of unnecessary code.
(We first built old seqar array to decide, what is visible, then build
dependencies with new code, then used old code to iterate through the
strips and deciding using new code what is used and so forth and so on...)
Should be much faster now.
- Now we build the strips recursively thereby elemenating the need of a
seperate dependency calculation.
- Added a Speed-Control effect to change strip speed afterwards.
(Offers global speed as well as IPO-controlled speed.
There are several modes to play with:
- Control by velocity (IPO = velocity where 1.0 is normal speed)
- Control by frame number (IPO = target frame)
- IPO-Value can be rescaled to frame-value, to make frame exact matching
possible. (Matching video tracks to audio tracks with IPOs ;-)
Demo-Blend file is here http://peter.schlaile.de/blender/sequencer/speedcontroltest.blend
Since this was also a Plumiferos request I hope to be mentioned in the
credits ;-)
Enjoy! And please test the new sequencer thoroughly. It is really more like
a rewrite this time.
|
|
This adds support for "generator effect strips", which don't need necessarily
an input strip and my version of Matt Ebb's [ #5035 ] 'Solid Color'
sequence strip.
TODO: With a little bit more tweaking it will be possible to make animated
effect plugins and my still unfinished "Bake"-Strip.
For the 'Solid Color'-Effect, to quote Matt:
This is nice and simple, just provides a solid colour that's set in a colour picker in the properties popup. This is something we've needed for a long time, and I got totally sick of having to make 'black.png' and 'white.png' just to do fades, so I coded this.
|
|
Added enhancements by blendix (Patch #4919: Insert sequence effect between)
It adds the following things:
- You can add a sequence strip afterwards in the middle of an effect chain
(you have to move strips around before, so that there is "room" for it.
Blender will ask you then, if you want to add in between or after the
selected strips)
- In the case you messed it up and want your effect strips to be reassigned in
a different way, there is the new "R"-key. Just select three arbitrary
strips and press "R". If you don't create a cycle, those will be connected
to a new effect chain.
- Fixed freeing of imbufs on changes to properly take into account dependencies. An example of a simple case that went wrong is one image strip with two
glow effects, changing the parameters of the first glow strip will not
result in any updates. Basically only direct dependencies were taken into
account, which resulted in the image preview not being updated in some cases.
- Let the sequencer detect an active sequence strip if none is defined, to
get rid of annoying error messages when trying to add an effect to a
selected sequence strip right after loading a file.
- Delete is less destructive. If you delete somewhere between other strips,
Blender now tries to relink in a reasonable way.
- The active sequence strip is now displayed with a light instead of a dark
outline, which makes it easier to spot, and is especially useful for the
tools using the active sequence strip.
- Ability to view the final result when editing inside meta strip.
The channel button was modified to also allow negative numbers,
where -n is n levels up the meta stack. There is probably a nicer way to
specify this, instead of (ab)using the channel button, but this seems to
work quite efficient.
- Also a small bugfix: don't crash on loading files from newer versions with
an unknown effect strip.
|
|
- Removed obsolete IRIZ image support from menus.
This was a Blender-only version of SGI Iris images, used internally in
the nineties because it was the only format supporting Z easily
A much better Z exporting - and industry compliant - is via OpenEXR
- Scene strips in Sequencer now get Z buffers as well. This is only in
float format, containing actual distances from the camera.
|
|
When a sequencer has mixed use of 32 bits and float images (note, Scene
strip returns float image too), the old 32 bits image should be freed,
otherwise it keeps saving that image.
|
|
When a Sequence setup had a gap, it returned default black frames. However,
this black frame was overriding the float buffer when a new strip started
to render again, so the Sequencer kept saving black.
Also: added extra info print for Scene strip, this didn't tell yet what the
start/end frame of Scene was, and what current frame was.
|
|
Sequence renders, calling scenes with compositing, didn't execute composite
correctly. Confusement caused by the rule that a "Render" handle has same
name as Scene, which gives conflict for the case when a Scene has
sequencing with Scene strips with its own scene in it.
The previous solution for that conflict caused composite not to work. This
commit solves that, but it is still hackish. Main reason is the still
bad global G.scene, in use by compositor.
|
|
- when renderwin exists, but not used for render, the ESC timer check still
could return ESC event, due to missing flag clearing.
(For example in sequencer, a scene strip did not update on frame advance)
- option 'single layer' set in combination with render "Do Sequence" didn't
free the pushed layers.
|
|
Sequencer:
Removing feature that allowed live updates of render progress while using
scene strips. In 2.41 and older this also happens invisible, and ESC from
it works now anyway.
Two reasons:
- it is quite annoying, especially on quit renders
- new 'render to window' conflicts too much with the sequencer window
option that shows previews (in code as well as functional!)
|
|
Sequence render: when a Scene strip renders from within the UI (because
the sequencer preview option demands so), the render-result for this
rendering was not stored or accessible for redraws in render window.
|
|
Sequencer render bug: if you use the same Scene as current Scene as a strip
(yes yes!) then ANIM didn't work. Render single frame worked.
|
|
ESC wasn't supported for sequence-based rendering yet.
Solved it with correctly initializing the sequence render with all
render callbacks, including render updates (which it didn't do yet).
Cleanup:
- Bug in ghostwinlay code: the get_mbut() function reads from the window
struct if a mouse is pressed. However, when you press the mouse in the
sequencer, which causes a render, this value was hanging because then
the active window was a render window.
- The new render display options (image window) didn't work for sequence
render OK. There was a recursion even, because a sequence draw command
calls a render, which in turn now calls redraws.
|
|
ANIM render with "Do Sequence" set, without sequence strips, crashed.
Addded empty black image allocation.
|