Actually, it's NULL-pointer dereference in rna_Sequence_update caused by RNA cache.
Discussed with Joshua and he thought it's acceptable for now to add
extra NULL-check here.
This patch adds:
* support for proxy building again (missing feature from Blender 2.49)
additionally to the way, Blender 2.49 worked, you can select several
strips at once and make Blender build proxies in the background (using
the job system)
Also a new thing: movie proxies are now build into AVI files, and
the proxy system is moved into ImBuf-library, so that other parts
of blender can also benefit from it.
* Timecode support: to fix seeking issues with files, that have
a) varying frame rates
b) very large GOP lengths
c) are broken inbetween
d) use different time code tracks
the proxy builder can now also build timecode indices, which are
used (optionally) for seeking.
For the first time, it is possible, to do frame exact seeking on
all file types.
* Support for different video-streams in one video file (can be
selected in sequencer, other parts of blender can also use it,
but UI has to be added accordingly)
* IMPORTANT: this patch *requires* ffmpeg 0.7 or newer, since
older versions don't support the pkt_pts field, that is essential
for building timecode indices.
Windows and Mac libs are already updated, Linux-users have to build
their own ffmpeg verions until distros keep up.
Final GSoC commit.
* Bugfix: Negative frames crashed
* Bugfix: JOS sample buffer size prediction error (wasted memory)
* Optimisation: for JOS upsampling (around 12 % difference measured here)
* Optimisation: Better filter for JOS resampling
* Bugfix: Error in relative 3D audio code.
* Removed Attenuation
* Bugfix: Multiple scenes in BGE lead to errors, BGE audio now all relative, to support multiple scenes.
Improved waveform drawing in the sequencer.
* Drawing the waveform of a sequencer strip is now independent from whether the sound is cached or not.
* Improved drawing of the waveform in the sequencer (especially speed!).
* Making it possible to vertically zoom more in the sequencer to better see the waveform for lipsync.
* Fixed a bug which crashed blender on loading a sound file via ffmpeg.
* Pepper depends on ffmpeg 0.7.1 or higher now, windows and mac build systems set to ffmpeg-0.8
* Fixed orientation retrieval in OpenAL device code.
* Added stopAll() method to AUD_IDevice (also for Python) and call it on BGE exit
* Changed BGE to use audaspace via native C++ instead over the C API.
* Made AUD_SequencerFactory and AUD_SequencerEntry thread safe.
* Changed sound caching into a flag which fixes problems on file loading, especially with undo.
* Removed unused parameter from sound_mute_scene_sound
* Fixed bug: changing FPS didn't update the sequencer sound positions.
* Fixed bug: Properties of sequencer strips weren't set correctly.
* Minor warning fixes.
Implemented basic audio animation.
* AnimatableProperty: Propper cache writing and spline interpolation for reading (the solution for stair steps in audio animation)
* Animatable properties so far are: volume, pitch, panning
* Users note: Changing the pitch of a sound results in wrong seeking, due to the resulting playback length difference.
* Users note: Panning only works for mono sources, values are in the range [-2..2], this basically controls the angle of the sound, 0 is front, -1 left, 1 right and 2 and -2 are back. Typical stereo panning only supports [-1..1].
* Disabled animation of audio related ffmpeg output parameters.
* Scene Audio Panel: 3D Listener settings also for Renderer, new Volume property (animatable!), Update/Bake buttons for animation problems, moved sampling rate and channel count here
Main: Complete rewrite of the sequencer related audio code to support 3D Audio objects later and especially adressing the animation system problems (see mailing list if interested).
Note: Animation is not working yet, so with this commit volume animation doesn't work anymore, that's the next step.
Minor things:
* Changed AUD_Reference behaviour a little to be more usage safe.
* Fixed bug in AUD_I3DHandle: Missing virtual destructor
* Fixed enmus in AUD_Space.h
* Fixed a warning in rna_scene.c
* Removed an unneeded call in rna_sound.c
This commit adds an experimental effect strip to the sequencer: "Title
Card".
This is useful for adding simple one-line text section headers or
"title cards" (i.e. title + author/contact details) to video clips,
which is often seen in demo videos accompanying papers and/or
animation tests.
See http://aligorith.blogspot.com/2011/06/gsoc11-simple-title-
cards.html for some more details on usage.
Code notes:
- There are a few things I've done here which will probably need
cleaning up. For instance, the hacks to get threadsafe fonts for
rendering, and also the way I've tried to piggyback the backdrop
drawing on top of the Solid Colour strips (this method was used to
keep changes here minimal, but is quite fragile if things change).
When trimmed the seq->len was being reduced from the offsets (initial and final). This was the length passed to the elements.
This had two problems:
1) it would not allow you to change the elements not visible (although you likely want to change them as well).
2) the element[0] was always the seq->strips[0].stripdata[0], regardless of the initial trim.
Anyhoo it's all working now.
Thanks Campbell for helping out with this one.
This patch adds adjustment layer tracks to the sequencer and does some cleaning
up of the code.
What's an adjustment layer?
Think of it as an effect track, which takes no explicit input, but alters
the output of everything down the layer stack.
So: you can add several stages of color correction with it.
And: you can even use it with metastrips to group several adjustments together.
It seems that rna_def_effect() is missing a rna_def_input(), resulting
in:
rna_uiItemR: property not found:
EffectSequence.animation_offset_start
rna_uiItemR: property not found: EffectSequence.animation_offset_end
in the console. I'm not sure whether these settings are used for
"effect" strips or not, but I'll leave that to sequencer guys to
figure out if/when they get a report about this.
This fixes Orig Dimension display (mostly).
* orx, ory both didn't get calculated, if dimension already matched
* putting them into Strip instead of StripData ment, that using images
of different dimensions in one strip could lead to incorrect results
Still TODO: on file open, timeline display happens before preview
display which means: orig_width and height are calculated after the
first draw of N-keys dialog. You have to hit refresh (or scrub one
frame) to get the right values displayed.
* documented and rewrote the render interface of the sequencer.
(now, the geometry / render_type / etc. settings are stored within a
seperate structure called SeqRenderData that is passed within the code.)
* that fixes
* cache problems, since the caching system didn't keep track of
proxy files vs. final renders.
* is a necessary step, to bring back frame blending in speed effect
(the SeqRenderData structure elements are already there)
* will make motion blur render options available within the sequencer!
* this patch also fixes:
* "easy retiming" using speed effects. (in Blender 2.49, you could
add a speed effect and resize the source track to retime it to that
length)
* adds labels for the Original dimensions for Image + Movie tracks
(worked in 2.49, too)
* No way currently to know the order of effect inputs, so I added a swap operator for the inputs.
* Also added the effect inputs to the strip property panel (weren't even in rna before). These are not yet editable, but can be very helpful in determining what the inputs are if the strip is too short to see the name in the timeline.
* Sequence speed effect was functional in theory, but very difficult to actually use.
* Now the effect works as follows:
- "Speed Factor" (formerly "speed fade") controls the current speed of the sequence (can be animated).
- "Use as speed" (formerly "f-curve velocity") is now the default behavior so that the "speed effect" by default changes the "speed" of the sequence.
- "Multiply Speed" (formerly "global speed") is a scale factor that's applied to the calculated frame (can't be animated).
- Without animation "Speed Factor" and "Multiply Speed" work exactly the same (in this case "multiply speed" could perhaps be disabled in ui, but currently there's no easy way to check this).
- If "Use as speed" is not checked the effect simply remaps the current frame to the given "Frame Number" (can be animated).
- "Scale to length" (formerly "f-curve compress y")scales "Frame numbers" from 0.0-1.0 to the length of the target strip to allow easy animation.
* Tooltips added for all values and options.
* Code for frame blending was nowhere to be seen, so I commented the option out from ui.
* This should fix at least bugs #20979 and #21309.
- user input gets non utf8 chars stripped all text input other then file paths.
- python has the same limitations, it will raise an error on non utf8 strings except for paths use unicode escape literals so its possible to deal with saving to these file paths from python.
- new string functions
BLI_utf8_invalid_byte(str, len) returns the first invalid utf8 byte or -1 on on success.
BLI_utf8_invalid_strip(str, len) strips non utf-8 chars.
nothing
This fixes Crop and Transform the same hacky way like Color Balance.
Will do a real fix, if I find a clever way. (Those structures must
provide a Sequence struct backpointer!!)
Cheers,
Peter