diff options
author | Richard Antalik <richardantalik@gmail.com> | 2022-06-29 13:45:59 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2022-06-29 13:48:34 +0300 |
commit | 302b04a5a3fc0e767ac784424f78ce2edf5d2844 (patch) | |
tree | def4de621fbb0a194b350da781f054c6aefbab35 /source/blender/sequencer/SEQ_iterator.h | |
parent | c51b8ec86364585c4088837c603b39752065bc34 (diff) |
VSE: Improved Retiming system
Patch implements better way to control playback speed than it is
possible to do with speed effect. Speed factor property can be set in
Time panel.
There are 2 layers of control:
Option to retime movie to match scene FPS rate.
Custom speed factor to control playback rate.
Since playback rate is strip property, it is now possible to manipulate
strip as normal one even if it is retimed.
To facilitate manipulation, some functions need to consider speed factor
and apply necessary corrections to strip offset or strip start. These
corrections may need to be float numbers, so start and offsets must be
float as well.
Sound strips now use speed factor instead of pitch. This means, that
strips will change length to match usable length. In addition, it is
possible to group movie and sound strip and change speed of meta strip.
Diffstat (limited to 'source/blender/sequencer/SEQ_iterator.h')
-rw-r--r-- | source/blender/sequencer/SEQ_iterator.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/sequencer/SEQ_iterator.h b/source/blender/sequencer/SEQ_iterator.h index 1f94574513c..e5adb2a33b1 100644 --- a/source/blender/sequencer/SEQ_iterator.h +++ b/source/blender/sequencer/SEQ_iterator.h @@ -157,9 +157,11 @@ void SEQ_collection_exclude(SeqCollection *collection, SeqCollection *exclude_el * \param collection: SeqCollection to be expanded * \param seq_query_func: query function callback */ -void SEQ_collection_expand(struct ListBase *seqbase, +void SEQ_collection_expand(const struct Scene *scene, + struct ListBase *seqbase, SeqCollection *collection, - void seq_query_func(struct Sequence *seq_reference, + void seq_query_func(const struct Scene *scene, + struct Sequence *seq_reference, struct ListBase *seqbase, SeqCollection *collection)); /** @@ -171,8 +173,10 @@ void SEQ_collection_expand(struct ListBase *seqbase, * \return strip collection */ SeqCollection *SEQ_query_by_reference(struct Sequence *seq_reference, + const struct Scene *scene, struct ListBase *seqbase, - void seq_query_func(struct Sequence *seq_reference, + void seq_query_func(const struct Scene *scene, + struct Sequence *seq_reference, struct ListBase *seqbase, SeqCollection *collection)); /** @@ -211,7 +215,8 @@ SeqCollection *SEQ_query_all_strips_recursive(ListBase *seqbase); * \param displayed_channel: viewed channel. when set to 0, no channel filter is applied * \return strip collection */ -SeqCollection *SEQ_query_rendered_strips(ListBase *channels, +SeqCollection *SEQ_query_rendered_strips(const struct Scene *scene, + ListBase *channels, ListBase *seqbase, int timeline_frame, int displayed_channel); @@ -224,7 +229,8 @@ SeqCollection *SEQ_query_rendered_strips(ListBase *channels, * \param seqbase: ListBase in which strips are queried * \param collection: collection to be filled */ -void SEQ_query_strip_effect_chain(struct Sequence *seq_reference, +void SEQ_query_strip_effect_chain(const struct Scene *scene, + struct Sequence *seq_reference, struct ListBase *seqbase, SeqCollection *collection); void SEQ_filter_selected_strips(SeqCollection *collection); |