diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 5ce734f59..7202408ef 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -3578,6 +3578,12 @@ static inline void process_audio_source_tick(obs_source_t *source, { pthread_mutex_lock(&source->audio_buf_mutex); + if (source->audio_input_buf[0].size < size) { + source->audio_pending = true; + pthread_mutex_unlock(&source->audio_buf_mutex); + return; + } + for (size_t ch = 0; ch < channels; ch++) circlebuf_peek_front(&source->audio_input_buf[ch], source->audio_output_buf[0][ch], @@ -3621,7 +3627,7 @@ void obs_source_audio_render(obs_source_t *source, uint32_t mixers, return; } - if (!source->audio_ts || source->audio_input_buf[0].size < size) { + if (!source->audio_ts) { source->audio_pending = true; return; }