Blender Git Loki

Git Commits -> Revision dc450a9

March 29, 2021, 06:09 (GMT)
[WIP]VSE: Allow playback of multiple framerates

WARNING: Need to update FFmpeg tests

Store playback rate in `Sequence` and use it to calculate length
and to convert timeline frame to frame index.

Playback rate is stored as absolute value which allows easy update on
framechange. This means that scene framerate has to be available, so
a lot of functions had to be supplied with pointer to scene.

With relative value, scene frame rate properties would need `_set`
accessor function that would first go over all strips to update
framerate value, then scene framerate and finally update strip offsets.
There is also risk of precision loss for playback rate when doing these
calculations.

-----

I am undecided whether to keep this property for users to utilize for
other purposes (it could possibly replace speed effect). See for
example D4067, which is attempt for more advanced version of this
feature.

Right now property is exposed in time panel (it's badly aligned...)
It has no effect on effect strips, only movie, image, scene and similar strips.

Problem with speed effect is, that it is more difficult to work with
because whole effect chain has to be cut and time related issues and
inconsistencies do require special treatment.

On the other hand this approach does not work well with animation -
retiming strip won' t move keyframes.

So either this feature will work only for movie (and scene) strips
and will be hidden under the hood
Or it could replace speed effect completely.

Perhaps it would be better to first make this feature invisible and catch bugs, because I am quite sure there will be some.

Differential Revision: https://developer.blender.org/D10807

Commit Details:

Full Hash: dc450a9dfe39fbe8bae06c463f8f547b7c7a76d4
Parent Commit: 1614795
Lines Changed: +321, -192

27 Modified Paths:

/release/scripts/startup/bl_ui/space_sequencer.py (+5, -0) (Diff)
/source/blender/blenloader/intern/versioning_290.c (+9, -7) (Diff)
/source/blender/editors/space_sequencer/sequencer_add.c (+9, -5) (Diff)
/source/blender/editors/space_sequencer/sequencer_draw.c (+17, -8) (Diff)
/source/blender/editors/space_sequencer/sequencer_edit.c (+11, -10) (Diff)
/source/blender/editors/transform/transform_convert_sequencer.c (+23, -16) (Diff)
/source/blender/makesdna/DNA_sequence_types.h (+4, -0) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+1, -0) (Diff)
/source/blender/makesrna/intern/rna_sequencer.c (+28, -9) (Diff)
/source/blender/makesrna/intern/rna_sequencer_api.c (+14, -5) (Diff)
/source/blender/sequencer/intern/effects.c (+23, -17) (Diff)
/source/blender/sequencer/intern/image_cache.c (+10, -5) (Diff)
/source/blender/sequencer/intern/proxy.c (+12, -8) (Diff)
/source/blender/sequencer/intern/render.c (+7, -6) (Diff)
/source/blender/sequencer/intern/strip_add.c (+17, -6) (Diff)
/source/blender/sequencer/intern/strip_edit.c (+26, -24) (Diff)
/source/blender/sequencer/intern/strip_relations.c (+20, -0) (Diff)
/source/blender/sequencer/intern/strip_time.c (+21, -21) (Diff)
/source/blender/sequencer/intern/strip_time.h (+2, -1) (Diff)
/source/blender/sequencer/intern/strip_transform.c (+32, -32) (Diff)
/source/blender/sequencer/SEQ_add.h (+4, -1) (Diff)
/source/blender/sequencer/SEQ_edit.h (+1, -1) (Diff)
/source/blender/sequencer/SEQ_effects.h (+7, -2) (Diff)
/source/blender/sequencer/SEQ_relations.h (+4, -0) (Diff)
/source/blender/sequencer/SEQ_render.h (+3, -1) (Diff)
/source/blender/sequencer/SEQ_time.h (+1, -1) (Diff)
/source/blender/sequencer/SEQ_transform.h (+10, -6) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021