Fix T70845: Crash when switching scene of scene strip.

Crash on assert in `sound_verify_evaluated_id()`

Reviewed By: sergey

Maniphest Tasks: T70845

Differential Revision: https://developer.blender.org/D6104
This commit is contained in:
Richard Antalik 2019-10-22 17:30:43 -07:00 committed by Richard Antalik
parent ac18c3c28d
commit 15d27c1ae5
Notes: blender-bot 2023-02-14 07:31:34 +01:00
Referenced by issue #70845, Blender VSE with a Scene Strip Crash
3 changed files with 12 additions and 2 deletions

@ -1 +1 @@
Subproject commit 69bcc72f1ec4df73265ce35851658ef184b9d0f9
Subproject commit d9ed9d4d064c74c86e2767cd4be32d602a0ee317

View File

@ -677,6 +677,9 @@ void BKE_sound_set_cfra(int cfra)
void BKE_sound_set_scene_volume(Scene *scene, float volume)
{
sound_verify_evaluated_id(&scene->id);
if (scene->sound_scene == NULL) {
return;
}
AUD_Sequence_setAnimationData(scene->sound_scene,
AUD_AP_VOLUME,
CFRA,

View File

@ -157,6 +157,13 @@ static void rna_Sequence_invalidate_composite_update(Main *UNUSED(bmain),
}
}
static void rna_Sequence_scene_switch_update(Main *bmain, Scene *scene, PointerRNA *ptr)
{
rna_Sequence_invalidate_raw_update(bmain, scene, ptr);
DEG_id_tag_update(&scene->id, ID_RECALC_AUDIO | ID_RECALC_SEQUENCER_STRIPS);
DEG_relations_tag_update(bmain);
}
static void rna_Sequence_use_sequence(Main *bmain, Scene *scene, PointerRNA *ptr)
{
/* General update callback. */
@ -2227,7 +2234,7 @@ static void rna_def_scene(BlenderRNA *brna)
prop = RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_scene_switch_update");
prop = RNA_def_property(srna, "scene_camera", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);