From 5c76c7bf8427aa07035cdfeda57f3dc616247733 Mon Sep 17 00:00:00 2001 From: Marcos Perez Date: Tue, 3 Oct 2023 18:13:24 +0200 Subject: [PATCH] Fix: #113084 VSE equalizer stutters when any strip is animated Only update equalizer data, when sound is tagged to be recalculated. Co-authored-by: menda Pull Request: https://projects.blender.org/blender/blender/pulls/113156 --- source/blender/sequencer/intern/sequencer.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/blender/sequencer/intern/sequencer.cc b/source/blender/sequencer/intern/sequencer.cc index be0f8c14482..8c1f6df6432 100644 --- a/source/blender/sequencer/intern/sequencer.cc +++ b/source/blender/sequencer/intern/sequencer.cc @@ -917,16 +917,15 @@ static bool seq_update_seq_cb(Sequence *seq, void *user_data) if (seq->sound != nullptr) { if (scene->id.recalc & ID_RECALC_AUDIO || seq->sound->id.recalc & ID_RECALC_AUDIO) { BKE_sound_update_scene_sound(seq->scene_sound, seq->sound); - } + void *sound = seq->sound->playback_handle; - void *sound = seq->sound->playback_handle; - - if (!BLI_listbase_is_empty(&seq->modifiers)) { - LISTBASE_FOREACH (SequenceModifierData *, smd, &seq->modifiers) { - sound = SEQ_sound_modifier_recreator(seq, smd, sound); + if (!BLI_listbase_is_empty(&seq->modifiers)) { + LISTBASE_FOREACH (SequenceModifierData *, smd, &seq->modifiers) { + sound = SEQ_sound_modifier_recreator(seq, smd, sound); + } } + BKE_sound_update_sequence_handle(seq->scene_sound, sound); } - BKE_sound_update_sequence_handle(seq->scene_sound, sound); } BKE_sound_set_scene_sound_volume( seq->scene_sound, seq->volume, (seq->flag & SEQ_AUDIO_VOLUME_ANIMATED) != 0);