diff --git a/libobs/obs-source-transition.c b/libobs/obs-source-transition.c index 92b5d107b..22f8f1973 100644 --- a/libobs/obs-source-transition.c +++ b/libobs/obs-source-transition.c @@ -928,6 +928,12 @@ bool obs_transition_audio_render(obs_source_t *transition, uint64_t *ts_out, str sources[0] = transition->transition_sources[0]; sources[1] = transition->transition_sources[1]; + if (sources[0] && obs_source_removed(sources[0])) + sources[0] = NULL; + + if (sources[1] && obs_source_removed(sources[1])) + sources[1] = NULL; + min_ts = calc_min_ts(sources); if (min_ts) { diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 533b91a5b..d7ef0bafb 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -5420,6 +5420,9 @@ bool obs_source_audio_pending(const obs_source_t *source) if (!obs_source_valid(source, "obs_source_audio_pending")) return true; + if (obs_source_removed(source)) + return true; + return (is_composite_source(source) || is_audio_source(source)) ? source->audio_pending : true; }