Răsfoiți Sursa

libobs: Do not wait for audio of removed sources

Exeldro 2 luni în urmă
părinte
comite
ea9e4ca06e
2 a modificat fișierele cu 9 adăugiri și 0 ștergeri
  1. 6 0
      libobs/obs-source-transition.c
  2. 3 0
      libobs/obs-source.c

+ 6 - 0
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) {

+ 3 - 0
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;
 }