[Bf-blender-cvs] [0966eab8e94] master: VSE: Clamp sound strip when adding movie strip

Richard Antalik noreply at git.blender.org
Mon Dec 20 01:35:59 CET 2021


Commit: 0966eab8e941e013cd36a5b033ec83a3e5dca901
Author: Richard Antalik
Date:   Mon Dec 20 01:30:19 2021 +0100
Branches: master
https://developer.blender.org/rB0966eab8e941e013cd36a5b033ec83a3e5dca901

VSE: Clamp sound strip when adding movie strip

When adding multiple movie strips and sound stream is longer than video,
this results in gaps between video strips, which is undesirable.

===================================================================

M	source/blender/editors/space_sequencer/sequencer_add.c

===================================================================

diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 616953e720a..9f31e55439d 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -627,6 +627,19 @@ static void seq_build_proxy(bContext *C, Sequence *seq)
   ED_area_tag_redraw(CTX_wm_area(C));
 }
 
+static void sequencer_add_movie_clamp_sound_strip_length(Scene *scene,
+                                                         ListBase *seqbase,
+                                                         Sequence *seq_movie,
+                                                         Sequence *seq_sound)
+{
+  if (ELEM(NULL, seq_movie, seq_sound) || seq_sound->len <= seq_movie->len) {
+    return;
+  }
+
+  SEQ_transform_set_right_handle_frame(seq_sound, SEQ_transform_get_right_handle_frame(seq_movie));
+  SEQ_time_update_sequence(scene, seqbase, seq_sound);
+}
+
 static void sequencer_add_movie_multiple_strips(bContext *C,
                                                 wmOperator *op,
                                                 SeqLoadData *load_data)
@@ -689,6 +702,7 @@ static void sequencer_add_movie_multiple_strips(bContext *C,
       else {
         load_data->start_frame += seq_movie->enddisp - seq_movie->startdisp;
       }
+      sequencer_add_movie_clamp_sound_strip_length(scene, ed->seqbasep, seq_movie, seq_sound);
       seq_load_apply_generic_options(C, op, seq_sound);
       seq_load_apply_generic_options(C, op, seq_movie);
       seq_build_proxy(C, seq_movie);
@@ -740,6 +754,7 @@ static bool sequencer_add_movie_single_strip(bContext *C, wmOperator *op, SeqLoa
     load_data->start_frame += audio_frame_offset;
     seq_sound = SEQ_add_sound_strip(bmain, scene, ed->seqbasep, load_data, audio_skip);
   }
+  sequencer_add_movie_clamp_sound_strip_length(scene, ed->seqbasep, seq_movie, seq_sound);
   seq_load_apply_generic_options(C, op, seq_sound);
   seq_load_apply_generic_options(C, op, seq_movie);
   seq_build_proxy(C, seq_movie);



More information about the Bf-blender-cvs mailing list