libobs: Fix race conditions
Uses obs_source_get_ref on the sources enumerated in the tick_sources function in obs-video.c to ensure a reference has been incremented before calling that source's video_tick, and replaces an obs_source_addref with obs_source_get_ref in the push_audio_tree function in obs-audio.c to ensure that it cannot increment a source that has already decremented its reference to 0.
This commit is contained in:
@@ -31,8 +31,8 @@ static void push_audio_tree(obs_source_t *parent, obs_source_t *source, void *p)
|
||||
struct obs_core_audio *audio = p;
|
||||
|
||||
if (da_find(audio->render_order, &source, 0) == DARRAY_INVALID) {
|
||||
obs_source_addref(source);
|
||||
da_push_back(audio->render_order, &source);
|
||||
obs_source_t *s = obs_source_get_ref(source);
|
||||
if (s) da_push_back(audio->render_order, &s);
|
||||
}
|
||||
|
||||
UNUSED_PARAMETER(parent);
|
||||
|
Reference in New Issue
Block a user