소스 검색

libobs: Keep mixer data for placeholder sources

Placeholder sources are created when a plugin providing a source type is
unavailable. Since they're not marked as having audio any audio track
settings for them get lost. With this change we retain mixer information
if the source owns its id to avoid that.
derrod 2 년 전
부모
커밋
a73e13eeeb
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      libobs/obs-source.c

+ 4 - 2
libobs/obs-source.c

@@ -4905,7 +4905,8 @@ void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
 
 	if (!obs_source_valid(source, "obs_source_set_audio_mixers"))
 		return;
-	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
+	if (!source->owns_info_id &&
+	    (source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 		return;
 
 	if (source->audio_mixers == mixers)
@@ -4926,7 +4927,8 @@ uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
 {
 	if (!obs_source_valid(source, "obs_source_get_audio_mixers"))
 		return 0;
-	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
+	if (!source->owns_info_id &&
+	    (source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 		return 0;
 
 	return source->audio_mixers;