mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-30 17:58:37 +08:00
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.
This commit is contained in:
@@ -5591,8 +5591,6 @@ void OBSBasicSettings::UpdateAdvNetworkGroup()
|
||||
#endif
|
||||
}
|
||||
|
||||
extern bool MultitrackVideoDeveloperModeEnabled();
|
||||
|
||||
void OBSBasicSettings::UpdateMultitrackVideo()
|
||||
{
|
||||
// Technically, it should currently be safe to toggle multitrackVideo
|
||||
@@ -5615,15 +5613,6 @@ void OBSBasicSettings::UpdateMultitrackVideo()
|
||||
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->enableMultitrackVideo->setEnabled(toggle_available);
|
||||
@@ -5644,10 +5633,10 @@ void OBSBasicSettings::UpdateMultitrackVideo()
|
||||
!ui->multitrackVideoMaximumVideoTracksAuto->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->multitrackVideoConfigOverrideEnable->setEnabled(toggle_available && ui->enableMultitrackVideo->isChecked());
|
||||
|
||||
@@ -231,7 +231,8 @@ BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_)
|
||||
auto service = main_->GetService();
|
||||
OBSDataAutoRelease settings = obs_service_get_settings(service);
|
||||
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)
|
||||
multitrackVideo = make_unique<MultitrackVideoOutput>();
|
||||
|
||||
@@ -410,8 +410,7 @@ void MultitrackVideoOutput::PrepareStreaming(
|
||||
rtmp_url.has_value() ? rtmp_url->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;
|
||||
|
||||
if (!custom_config_only) {
|
||||
|
||||
Reference in New Issue
Block a user