diff options
Diffstat (limited to 'source/blender/sequencer/intern/sound.c')
-rw-r--r-- | source/blender/sequencer/intern/sound.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/source/blender/sequencer/intern/sound.c b/source/blender/sequencer/intern/sound.c index 8076c600560..c4992848cb5 100644 --- a/source/blender/sequencer/intern/sound.c +++ b/source/blender/sequencer/intern/sound.c @@ -23,6 +23,7 @@ #include "SEQ_sound.h" #include "SEQ_time.h" +#include "sequencer.h" #include "strip_time.h" /* Unlike _update_sound_ funcs, these ones take info from audaspace to update sequence length! */ @@ -35,7 +36,6 @@ static bool sequencer_refresh_sound_length_recursive(Main *bmain, Scene *scene, for (seq = seqbase->first; seq; seq = seq->next) { if (seq->type == SEQ_TYPE_META) { if (sequencer_refresh_sound_length_recursive(bmain, scene, &seq->seqbase)) { - SEQ_time_update_sequence(scene, seqbase, seq); changed = true; } } @@ -55,7 +55,6 @@ static bool sequencer_refresh_sound_length_recursive(Main *bmain, Scene *scene, seq->endofs *= fac; seq->start += (old - seq->startofs); /* So that visual/"real" start frame does not change! */ - SEQ_time_update_sequence(scene, seqbase, seq); changed = true; } } @@ -99,8 +98,12 @@ void SEQ_sound_update_bounds(Scene *scene, Sequence *seq) /* We have to take into account start frame of the sequence's scene! */ int startofs = seq->startofs + seq->anim_startofs + seq->scene->r.sfra; - BKE_sound_move_scene_sound( - scene, seq->scene_sound, seq->startdisp, seq->enddisp, startofs, 0.0); + BKE_sound_move_scene_sound(scene, + seq->scene_sound, + SEQ_time_left_handle_frame_get(scene, seq), + SEQ_time_right_handle_frame_get(scene, seq), + startofs, + 0.0); } } else { @@ -131,3 +134,12 @@ void SEQ_sound_update(Scene *scene, bSound *sound) seq_update_sound_recursive(scene, &scene->ed->seqbase, sound); } } + +float SEQ_sound_pitch_get(const Scene *scene, const Sequence *seq) +{ + Sequence *meta_parent = seq_sequence_lookup_meta_by_seq(scene, seq); + if (meta_parent != NULL) { + return seq->speed_factor * SEQ_sound_pitch_get(scene, meta_parent); + } + return seq->speed_factor; +} |