Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions libobs/obs-audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,18 +493,15 @@ static inline void release_audio_sources(struct obs_core_audio *audio)
static inline void execute_audio_tasks(void)
{
struct obs_core_audio *audio = &obs->audio;
bool tasks_remaining = true;

while (tasks_remaining) {
pthread_mutex_lock(&audio->task_mutex);
if (audio->tasks.size) {
struct obs_task_info info;
deque_pop_front(&audio->tasks, &info, sizeof(info));
info.task(info.param);
}
tasks_remaining = !!audio->tasks.size;
pthread_mutex_lock(&audio->task_mutex);
while (audio->tasks.size) {
struct obs_task_info info;
deque_pop_front(&audio->tasks, &info, sizeof(info));
pthread_mutex_unlock(&audio->task_mutex);
info.task(info.param);
pthread_mutex_lock(&audio->task_mutex);
}
pthread_mutex_unlock(&audio->task_mutex);
}

/* In case monitoring and an 'Audio Output Capture' source have the same device, one silences all the monitored
Expand Down
17 changes: 7 additions & 10 deletions libobs/obs-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -957,18 +957,15 @@ extern THREAD_LOCAL bool is_graphics_thread;
static void execute_graphics_tasks(void)
{
struct obs_core_video *video = &obs->video;
bool tasks_remaining = true;

while (tasks_remaining) {
pthread_mutex_lock(&video->task_mutex);
if (video->tasks.size) {
struct obs_task_info info;
deque_pop_front(&video->tasks, &info, sizeof(info));
info.task(info.param);
}
tasks_remaining = !!video->tasks.size;
pthread_mutex_lock(&video->task_mutex);
while (video->tasks.size) {
struct obs_task_info info;
deque_pop_front(&video->tasks, &info, sizeof(info));
pthread_mutex_unlock(&video->task_mutex);
info.task(info.param);
pthread_mutex_lock(&video->task_mutex);
}
pthread_mutex_unlock(&video->task_mutex);
}

#ifdef _WIN32
Expand Down
Loading