Просмотр исходного кода

obs-webrtc: Only advertise relevant codecs for a or v-only outputs

A video-only output should not advertise any audio codecs.
tt2468 1 год назад
Родитель
Сommit
09be4f9aed
1 измененных файлов с 12 добавлено и 6 удалено
  1. 12 6
      plugins/obs-webrtc/whip-output.cpp

+ 12 - 6
plugins/obs-webrtc/whip-output.cpp

@@ -598,6 +598,13 @@ void register_whip_output()
 {
 	const uint32_t base_flags = OBS_OUTPUT_ENCODED | OBS_OUTPUT_SERVICE;
 
+	const char *audio_codecs = "opus";
+#ifdef ENABLE_HEVC
+	const char *video_codecs = "h264;hevc;av1";
+#else
+	const char *video_codecs = "h264;av1";
+#endif
+
 	struct obs_output_info info = {};
 	info.id = "whip_output";
 	info.flags = OBS_OUTPUT_AV | base_flags;
@@ -632,21 +639,20 @@ void register_whip_output()
 	info.get_connect_time_ms = [](void *priv_data) -> int {
 		return static_cast<WHIPOutput *>(priv_data)->GetConnectTime();
 	};
-#ifdef ENABLE_HEVC
-	info.encoded_video_codecs = "h264;hevc;av1";
-#else
-	info.encoded_video_codecs = "h264;av1";
-#endif
-	info.encoded_audio_codecs = "opus";
+	info.encoded_video_codecs = video_codecs;
+	info.encoded_audio_codecs = audio_codecs;
 	info.protocols = "WHIP";
 
 	obs_register_output(&info);
 
 	info.id = "whip_output_video";
 	info.flags = OBS_OUTPUT_VIDEO | base_flags;
+	info.encoded_audio_codecs = nullptr;
 	obs_register_output(&info);
 
 	info.id = "whip_output_audio";
 	info.flags = OBS_OUTPUT_AUDIO | base_flags;
+	info.encoded_video_codecs = nullptr;
+	info.encoded_audio_codecs = audio_codecs;
 	obs_register_output(&info);
 }