Bläddra i källkod

frontend: Enable multitrack RTMP option for custom RTMP services

This removes the need to provide an undocumented launch argument to
enable custom RTMP service configurations to use multitrack encoding
and also provide a custom configuration.
PatTheMav 3 veckor sedan
förälder
incheckning
e35b16cba9

+ 4 - 15
frontend/settings/OBSBasicSettings.cpp

@@ -5591,8 +5591,6 @@ void OBSBasicSettings::UpdateAdvNetworkGroup()
 #endif
 #endif
 }
 }
 
 
-extern bool MultitrackVideoDeveloperModeEnabled();
-
 void OBSBasicSettings::UpdateMultitrackVideo()
 void OBSBasicSettings::UpdateMultitrackVideo()
 {
 {
 	// Technically, it should currently be safe to toggle multitrackVideo
 	// Technically, it should currently be safe to toggle multitrackVideo
@@ -5615,15 +5613,6 @@ void OBSBasicSettings::UpdateMultitrackVideo()
 			ui->enableMultitrackVideo->setChecked(false);
 			ui->enableMultitrackVideo->setChecked(false);
 	}
 	}
 
 
-	// Enhanced Broadcasting works on Windows, Apple Silicon Macs, and Linux.
-	// For other OS variants, only enable the GUI controls if developer mode was invoked.
-#if !defined(_WIN32) && !(defined(__APPLE__) && defined(__aarch64__)) && !defined(__linux__)
-	available = available && MultitrackVideoDeveloperModeEnabled();
-#endif
-
-	if (IsCustomService())
-		available = available && MultitrackVideoDeveloperModeEnabled();
-
 	ui->multitrackVideoGroupBox->setVisible(available);
 	ui->multitrackVideoGroupBox->setVisible(available);
 
 
 	ui->enableMultitrackVideo->setEnabled(toggle_available);
 	ui->enableMultitrackVideo->setEnabled(toggle_available);
@@ -5644,10 +5633,10 @@ void OBSBasicSettings::UpdateMultitrackVideo()
 							  !ui->multitrackVideoMaximumVideoTracksAuto->isChecked());
 							  !ui->multitrackVideoMaximumVideoTracksAuto->isChecked());
 	ui->multitrackVideoAdditionalCanvas->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
 	ui->multitrackVideoAdditionalCanvas->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
 
 
-	ui->multitrackVideoStreamDumpEnable->setVisible(available && MultitrackVideoDeveloperModeEnabled());
-	ui->multitrackVideoConfigOverrideEnable->setVisible(available && MultitrackVideoDeveloperModeEnabled());
-	ui->multitrackVideoConfigOverrideLabel->setVisible(available && MultitrackVideoDeveloperModeEnabled());
-	ui->multitrackVideoConfigOverride->setVisible(available && MultitrackVideoDeveloperModeEnabled());
+	ui->multitrackVideoStreamDumpEnable->setVisible(available && IsCustomService());
+	ui->multitrackVideoConfigOverrideEnable->setVisible(available && IsCustomService());
+	ui->multitrackVideoConfigOverrideLabel->setVisible(available && IsCustomService());
+	ui->multitrackVideoConfigOverride->setVisible(available && IsCustomService());
 
 
 	ui->multitrackVideoStreamDumpEnable->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
 	ui->multitrackVideoStreamDumpEnable->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
 	ui->multitrackVideoConfigOverrideEnable->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
 	ui->multitrackVideoConfigOverrideEnable->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());

+ 2 - 1
frontend/utility/BasicOutputHandler.cpp

@@ -231,7 +231,8 @@ BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_)
 	auto service = main_->GetService();
 	auto service = main_->GetService();
 	OBSDataAutoRelease settings = obs_service_get_settings(service);
 	OBSDataAutoRelease settings = obs_service_get_settings(service);
 	auto multitrack_enabled = config_get_bool(main->Config(), "Stream1", "EnableMultitrackVideo") &&
 	auto multitrack_enabled = config_get_bool(main->Config(), "Stream1", "EnableMultitrackVideo") &&
-				  obs_data_has_user_value(settings, "multitrack_video_configuration_url");
+				  (obs_data_has_user_value(settings, "multitrack_video_configuration_url") ||
+				   strcmp(obs_service_get_id(service), "rtmp_custom") == 0);
 
 
 	if (multitrack_enabled)
 	if (multitrack_enabled)
 		multitrackVideo = make_unique<MultitrackVideoOutput>();
 		multitrackVideo = make_unique<MultitrackVideoOutput>();

+ 1 - 2
frontend/utility/MultitrackVideoOutput.cpp

@@ -410,8 +410,7 @@ void MultitrackVideoOutput::PrepareStreaming(
 	     rtmp_url.has_value() ? rtmp_url->c_str() : "",
 	     rtmp_url.has_value() ? rtmp_url->c_str() : "",
 	     vod_track_info_storage->array ? vod_track_info_storage->array : "No", canvasNames.c_str());
 	     vod_track_info_storage->array ? vod_track_info_storage->array : "No", canvasNames.c_str());
 
 
-	const bool custom_config_only = auto_config_url.isEmpty() && MultitrackVideoDeveloperModeEnabled() &&
-					custom_config.has_value() &&
+	const bool custom_config_only = auto_config_url.isEmpty() && custom_config.has_value() &&
 					strcmp(obs_service_get_id(service), "rtmp_custom") == 0;
 					strcmp(obs_service_get_id(service), "rtmp_custom") == 0;
 
 
 	if (!custom_config_only) {
 	if (!custom_config_only) {