From b5d527ff6c7e01b73c14d8e01b7e33a697d30b12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20M=C3=BCller?= Date: Sat, 22 Oct 2016 15:00:32 +0200 Subject: Fix T49656: Crash when starting playback while using JACK audio with A/V sync When ED_screen_animation_play is called from wm_event_do_handlers,ScrArea *sa = CTX_wm_area(C); is NULL in ED_screen_animation_timer. Informing the audio system in CTX_data_main_set, that a new Main has been set. --- source/blender/blenkernel/intern/context.c | 2 ++ source/blender/editors/screen/screen_edit.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 926ca8da192..4c01bfd35f2 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -49,6 +49,7 @@ #include "BKE_context.h" #include "BKE_main.h" #include "BKE_screen.h" +#include "BKE_sound.h" #include "RNA_access.h" @@ -882,6 +883,7 @@ Main *CTX_data_main(const bContext *C) void CTX_data_main_set(bContext *C, Main *bmain) { C->data.main = bmain; + BKE_sound_init_main(bmain); } Scene *CTX_data_scene(const bContext *C) diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 677a6472c72..5cd0d33c365 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -2076,7 +2076,13 @@ void ED_screen_animation_timer(bContext *C, int redraws, int refresh, int sync, sad->flag |= (sync == 0) ? ANIMPLAY_FLAG_NO_SYNC : (sync == 1) ? ANIMPLAY_FLAG_SYNC : 0; ScrArea *sa = CTX_wm_area(C); - sad->from_anim_edit = (ELEM(sa->spacetype, SPACE_IPO, SPACE_ACTION, SPACE_NLA, SPACE_TIME)); + + char spacetype = -1; + + if (sa) + spacetype = sa->spacetype; + + sad->from_anim_edit = (ELEM(spacetype, SPACE_IPO, SPACE_ACTION, SPACE_NLA, SPACE_TIME)); screen->animtimer->customdata = sad; -- cgit v1.2.3