Browse Source

libobs: transition: ignore sources with ts=0

This is a safety against sources which somehow end up with
audio_pending=false but ts=0. Other codepaths guard against this too.
Hector Martin 4 years ago
parent
commit
3191f5ddb0
1 changed files with 3 additions and 2 deletions
  1. 3 2
      libobs/obs-source-transition.c

+ 3 - 2
libobs/obs-source-transition.c

@@ -889,7 +889,7 @@ static void process_audio(obs_source_t *transition, obs_source_t *child,
 			  uint32_t mixers, size_t channels, size_t sample_rate,
 			  obs_transition_audio_mix_callback_t mix)
 {
-	bool valid = child && !child->audio_pending;
+	bool valid = child && !child->audio_pending && child->audio_ts;
 	struct obs_source_audio_mix child_audio;
 	uint64_t ts;
 	size_t pos;
@@ -927,7 +927,8 @@ static inline uint64_t calc_min_ts(obs_source_t *sources[2])
 	uint64_t min_ts = 0;
 
 	for (size_t i = 0; i < 2; i++) {
-		if (sources[i] && !sources[i]->audio_pending) {
+		if (sources[i] && !sources[i]->audio_pending &&
+		    sources[i]->audio_ts) {
 			if (!min_ts || sources[i]->audio_ts < min_ts)
 				min_ts = sources[i]->audio_ts;
 		}