Blender Git Commit Log
Git Commits -> Revision 8850a6b
Revision 8850a6b by Richard Antalik March 24, 2021, 16:35 (GMT) |
[WIP]VSE: Allow playback of multiple framerates 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: 8850a6b4897f8068e3056b59b5837ae19c406905
Parent Commit: 715c746
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)
/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)