From e02eeaf888f1b343ab2cb56a6dba25da96d8e91d Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Tue, 19 Dec 2023 17:38:29 +0100 Subject: [PATCH] Fix #115305: Sound equalizer not applied when rendering This was caused by 5c76c7bf84, which only updated sound when tagged by `ID_RECALC_AUDIO`. On undo or rendering, this flag is missing. Update equalizer when recalc is flagged by `ID_RECALC_COPY_ON_WRITE`. Pull Request: https://projects.blender.org/blender/blender/pulls/116282 --- source/blender/sequencer/intern/sequencer.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/blender/sequencer/intern/sequencer.cc b/source/blender/sequencer/intern/sequencer.cc index 88d0e7a96fb..a92210f8dc7 100644 --- a/source/blender/sequencer/intern/sequencer.cc +++ b/source/blender/sequencer/intern/sequencer.cc @@ -927,11 +927,15 @@ static void seq_update_sound_modifiers(Sequence *seq) BKE_sound_update_sequence_handle(seq->scene_sound, sound_handle); } +static bool must_update_strip_sound(Scene *scene, Sequence *seq) +{ + return (scene->id.recalc & ID_RECALC_AUDIO | ID_RECALC_COPY_ON_WRITE) != 0 || + (seq->sound->id.recalc & ID_RECALC_AUDIO | ID_RECALC_COPY_ON_WRITE) != 0; +} + static void seq_update_sound_strips(Scene *scene, Sequence *seq) { - if (seq->sound == nullptr || ((scene->id.recalc & ID_RECALC_AUDIO) == 0 && - (seq->sound->id.recalc & ID_RECALC_AUDIO) == 0)) - { + if (seq->sound == nullptr || !must_update_strip_sound(scene, seq)) { return; } /* Ensure strip is playing correct sound. */