libobs: Don't return/set 0 mixers for non-audio sources
Fixes a bug where if an audio source's implementation disappears (i.e. a plugin vanishes or is removed), it would turn all mixing channels off, effectively muting the sourcemaster
parent
669a615983
commit
1df2789978
|
@ -4231,19 +4231,19 @@ void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
|
||||||
|
|
||||||
if (!obs_source_valid(source, "obs_source_set_audio_mixers"))
|
if (!obs_source_valid(source, "obs_source_set_audio_mixers"))
|
||||||
return;
|
return;
|
||||||
if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (source->audio_mixers == mixers)
|
if (source->audio_mixers == mixers)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
calldata_init_fixed(&data, stack, sizeof(stack));
|
if ((source->info.output_flags & OBS_SOURCE_AUDIO) != 0) {
|
||||||
calldata_set_ptr(&data, "source", source);
|
calldata_init_fixed(&data, stack, sizeof(stack));
|
||||||
calldata_set_int(&data, "mixers", mixers);
|
calldata_set_ptr(&data, "source", source);
|
||||||
|
calldata_set_int(&data, "mixers", mixers);
|
||||||
|
|
||||||
signal_handler_signal(source->context.signals, "audio_mixers", &data);
|
signal_handler_signal(source->context.signals, "audio_mixers",
|
||||||
|
&data);
|
||||||
|
|
||||||
mixers = (uint32_t)calldata_int(&data, "mixers");
|
mixers = (uint32_t)calldata_int(&data, "mixers");
|
||||||
|
}
|
||||||
|
|
||||||
source->audio_mixers = mixers;
|
source->audio_mixers = mixers;
|
||||||
}
|
}
|
||||||
|
@ -4252,8 +4252,6 @@ uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
|
||||||
{
|
{
|
||||||
if (!obs_source_valid(source, "obs_source_get_audio_mixers"))
|
if (!obs_source_valid(source, "obs_source_get_audio_mixers"))
|
||||||
return 0;
|
return 0;
|
||||||
if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return source->audio_mixers;
|
return source->audio_mixers;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue