* This fix is really only a bandage, as the underlying issue is that sequencer preview render doesn't yet use the job system.
* The sequencer preview can start a full render of the scene, and this can collide with other preview/actual renders in many cases.
* Drawing the sequencer preview is now disabled when an other render is in progress, but the sequence preview rendering could have already been started before the other render, so this doesn't really fix anything.
* For now only OpenGL rendering can be used for the sequencer preview reliably until it's reimplemented using the job system.
* Using the job system in the future can handle the clashes between different renders properly and will give users a nice progress bar to indicate something is happening while the preview is recalculated.
Both stored the filename of the blend file, but G.sce stored the last opened file.
This will make blender act differently in some cases since a relative path to the last opened file will no longer resolve (which is correct IMHO since that file isnt open and the path might not even be valid anymore).
Tested linking with durian files and rendering to relative paths when no files is loaded however we may need to have some operators give an error if they are used on the default startup.blend.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
* Override the default render name in the case of the sequence renderer scene being included as a strip in the sequencer.
* Somebody with deeper insight to the rendering pipeline should probably check if this is the best way to handle this.
This fixes: [#23184] Problems with speed control effect strip in the
video sequence editor
Also: got rid of tstripdata caches in DNA.
Fixes some potential crashes in SEQ_IMAGE rendering (s_elem wasn't
checked for NULL).
Some cleanup on effects:
- converted interface to float cfra
- made effects return their own ImBufs, which has the following
advantages:
* code in sequencer.c is a lot more readable.
* multicam saves one memcpy of an image
* prepares things for GPU-rendering
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.
animation. Only allow this from main thread, opengl can't be called from
render threads. It was already disabled in background mode.
For now I'm going to consider this a limitation.
Cutting effect strips (esp multicam) didn't free endstill tstripdata.
Doesn't sound like much of a problem, but those can get big on large
timelines. So every cut eating 3 MB of memory doesn't leave much room
for editing decisions :)
Bugfix: free_imbuf_seq() was closing IMB anim handles on nearly every
change of RNA variables. This can be *very* slow, if you twiddle with
parameters during playback. Especially multicam editing...
Now: we close IMB anim handles only on refresh_all() and filepath
changes.
Bugfix for [#22284] Blender cursor gets stuck in the timeline when scrubbing (jack transport).
Dirty hack fix for:
* [#22366] Cutting audio and meta strips with audio does not actually cut audio
* [#22639] Audio not clipped to meta bounds
Also fixed a seemingly symptomless bug in sequencer_edit.c
Use: 1 + ((lift-1) * (lift-1)) so 2.0 is still a full lift but 1.x isnt so strong.
Changed color picker to give more precission, we were having to edit the buttons to see what the numbers were.
- python change, dont import 'bpy' by default, initially I thaught this would make scripting easier but it ends up being annoying when you want to register a script or if you want to import it. (more trouble then its worth to save 1 line, also not very pythonic).
- Okey sets the border in the display.
- Okey resets the frame offset in the sequencer timeline.
- ghost icon in the header can enable/disable.
- frame offset can be relative or absolute (lock icon)
Not very happy that this commit adds a call to BKE_animsys_evaluate_animdata(scene, ...) in do_build_seq_array_recursively()
without this the offset frames dont have fcurves applied.
Though we will need something like this for prefetch frames to work too.
- In my changes lift was acting like a second gamma.
- In blender 2.4x it was being added which gave ugly clipping.
- in Magic Bullet Looks it scales the color about 1.0: (col - 1 * (2-lift)) + 1
Did more testing and made sure the order of applying lift/gamma/gain works the same as MagicBulletLooks (tested on Collin's mac laptop).
- color_balance_float_float wasnt using the new calculation method
- moved calculation into an inline function color_balance_fl() & made the lift adjustments less confusing.
Fairly closely match some mac application colin has called 'Looks', to give better results.
- lift is now applied non linear (was being added to the color)
- change the color wheel to preserve the luminance of the gamma and gain values, this stops the color from being set too dark (option for the color wheel template).
- sub-pixel precission for the color wheel since the white area at the center can make a lot of difference with a very small change.
This change will make existing node and sequencer setups lift render slighly differently however discussed this with Ton and he's ok with it.
- effects strips now add directly above the strips they operate on (almost always what you want)
- blend mode for new image/movie/scene/color strips is now cross: without this adjusting alpha will fade to black rather then the strip below.
- SEQ_HAS_PATH macro didnt include sound-ram or sound-hd
- meta drawing code has misleading variable names (from own commit).
This fixes:
[#22722] Removing a sequence strip doesnt remove assosiated fcurves
by using the same hack that is used for moving curve-data along with the
strips on grab.
Should be cleaned up (both functions!) by making sequencer-strips
finally true IDs.
Until that happens, there is only an more or less ugly way of doing
that.
- bugfix for copying a scene with FFMPEG properties set (wasnt copying the ID properties, could crash blender)
- relative path option for adding sequence strips and replaceing images.
- Remove SEQ_DESEL, better not have a flag which includes ~, use ~SEQ_ALLSEL instead.
- Rename recurs_dupli_seq -> seqbase_dupli_recursive
- Rename deep_dupli_seq -> seq_dupli_recursive