mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 13:08:50 +02:00
libobs: Insert sources to linked lists after creation
This fixes a race condition where the audio/video backends/threads may start using sources before their obs_source_info::create function has been called.
This commit is contained in:
parent
2557ffce7e
commit
0845844e5d
@ -190,6 +190,12 @@ static bool obs_source_init(struct obs_source *source)
|
||||
source->control->source = source;
|
||||
source->audio_mixers = 0xFF;
|
||||
|
||||
source->private_settings = obs_data_create();
|
||||
return true;
|
||||
}
|
||||
|
||||
static void obs_source_init_finalize(struct obs_source *source)
|
||||
{
|
||||
if (is_audio_source(source)) {
|
||||
pthread_mutex_lock(&obs->data.audio_sources_mutex);
|
||||
|
||||
@ -203,11 +209,8 @@ static bool obs_source_init(struct obs_source *source)
|
||||
pthread_mutex_unlock(&obs->data.audio_sources_mutex);
|
||||
}
|
||||
|
||||
source->private_settings = obs_data_create();
|
||||
|
||||
obs_context_data_insert(&source->context, &obs->data.sources_mutex,
|
||||
&obs->data.first_source);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool obs_source_hotkey_mute(void *data, obs_hotkey_pair_id id,
|
||||
@ -369,6 +372,7 @@ static obs_source_t *obs_source_create_internal(const char *id,
|
||||
obs_source_dosignal(source, "source_create", NULL);
|
||||
}
|
||||
|
||||
obs_source_init_finalize(source);
|
||||
return source;
|
||||
|
||||
fail:
|
||||
|
Loading…
Reference in New Issue
Block a user