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.
This commit is contained in:
Hector Martin 2020-12-11 14:56:12 +09:00 committed by Jim
parent ead1c63a18
commit 3191f5ddb0

View File

@ -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;
}