0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00

UI: Hide network features if a non-RTMP service is set

Only rtmp_output has those features implemented.
This commit is contained in:
tytan652 2022-05-22 13:18:28 +02:00 committed by tt2468
parent 81003b2c64
commit bc80d0ca95
7 changed files with 57 additions and 7 deletions

View File

@ -1069,6 +1069,7 @@ Basic.Settings.Advanced.StreamDelay.Duration="Duration"
Basic.Settings.Advanced.StreamDelay.Preserve="Preserve cutoff point (increase delay) when reconnecting"
Basic.Settings.Advanced.StreamDelay.MemoryUsage="Estimated Memory Usage: %1 MB"
Basic.Settings.Advanced.Network="Network"
Basic.Settings.Advanced.Network.Disabled="The currently selected streaming protocol does not support changing network settings."
Basic.Settings.Advanced.Network.BindToIP="Bind to IP"
Basic.Settings.Advanced.Network.EnableNewSocketLoop="Enable network optimizations"
Basic.Settings.Advanced.Network.EnableLowLatencyMode="Enable TCP pacing"

View File

@ -5590,8 +5590,15 @@
<property name="topMargin">
<number>2</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_27">
<item row="0" column="1">
<widget class="QLabel" name="advNetworkDisabled">
<property name="text">
<string>Basic.Settings.Advanced.Network.Disabled</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="bindToIPLabel">
<property name="text">
<string>Basic.Settings.Advanced.Network.BindToIP</string>
</property>
@ -5600,17 +5607,17 @@
</property>
</widget>
</item>
<item row="0" column="1">
<item row="1" column="1">
<widget class="QComboBox" name="bindToIP"/>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QCheckBox" name="enableNewSocketLoop">
<property name="text">
<string>Basic.Settings.Advanced.Network.EnableNewSocketLoop</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QCheckBox" name="enableLowLatencyMode">
<property name="enabled">
<bool>false</bool>
@ -5620,7 +5627,7 @@
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -5633,7 +5640,7 @@
</property>
</spacer>
</item>
<item row="1" column="1">
<item row="2" column="1">
<widget class="QCheckBox" name="dynBitrate">
<property name="toolTip">
<string>Basic.Settings.Output.DynamicBitrate.TT</string>

View File

@ -68,6 +68,24 @@ Json get_service_from_json(const Json &root, const char *name)
return Json();
}
bool StreamSettingsUI::IsServiceOutputHasNetworkFeatures()
{
if (IsCustomService())
return ui_customServer->text().startsWith("rtmp");
Json service = get_service_from_json(
GetServicesJson(), QT_TO_UTF8(ui_service->currentText()));
if (!service["recommended"]["output"].is_string())
return true;
if (service["recommended"]["output"].string_value().compare(
"rtmp_output") == 0)
return true;
return false;
}
void StreamSettingsUI::UpdateMoreInfoLink()
{
if (IsCustomService()) {

View File

@ -63,6 +63,8 @@ public:
inline const QString &LastService() const { return lastService; }
bool IsServiceOutputHasNetworkFeatures();
public slots:
void UpdateMoreInfoLink();
void UpdateKeyLink();

View File

@ -92,6 +92,11 @@ void OBSBasicSettings::InitStreamPage()
SLOT(UpdateResFPSLimits()));
connect(ui->service, SIGNAL(currentIndexChanged(int)), &streamUi,
SLOT(UpdateMoreInfoLink()));
connect(ui->service, SIGNAL(currentIndexChanged(int)), this,
SLOT(UpdateAdvNetworkGroup()));
connect(ui->customServer, SIGNAL(textChanged(const QString &)), this,
SLOT(UpdateAdvNetworkGroup()));
}
void OBSBasicSettings::LoadStream1Settings()

View File

@ -5386,3 +5386,18 @@ void OBSBasicSettings::RecreateOutputResolutionWidget()
ui->outputResolution->lineEdit()->setValidator(
ui->baseResolution->lineEdit()->validator());
}
void OBSBasicSettings::UpdateAdvNetworkGroup()
{
bool enabled = streamUi.IsServiceOutputHasNetworkFeatures();
ui->advNetworkDisabled->setVisible(!enabled);
ui->bindToIPLabel->setVisible(enabled);
ui->bindToIP->setVisible(enabled);
ui->dynBitrate->setVisible(enabled);
#ifdef _WIN32
ui->enableNewSocketLoop->setVisible(enabled);
ui->enableLowLatencyMode->setVisible(enabled);
#endif
}

View File

@ -390,6 +390,8 @@ private slots:
void UpdateStreamDelayEstimate();
void UpdateAdvNetworkGroup();
void UpdateAutomaticReplayBufferCheckboxes();
void AdvOutSplitFileChanged();