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
This commit is contained in:
Richard Antalik 2023-12-19 17:38:29 +01:00 committed by Richard Antalik
parent a2317726ca
commit e02eeaf888
1 changed files with 7 additions and 3 deletions

View File

@ -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. */