mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
Add auto-reconnect settings
This commit is contained in:
parent
9fc05e2a1d
commit
d3e6148ae7
@ -170,8 +170,11 @@ Basic.Settings.Output.Mode="Output Mode"
|
||||
Basic.Settings.Output.Mode.Simple="Simple (Stream and/or record)"
|
||||
Basic.Settings.Output.Mode.Advanced="Advanced (Custom output type)"
|
||||
Basic.Settings.Output.Simple.SavePath="FLV Recording Path"
|
||||
Basic.Settings.Output.Simple.VideoBitrate="Video Bitrate"
|
||||
Basic.Settings.output.Simple.AudioBitrate="Audio Bitrate"
|
||||
Basic.Settings.Output.VideoBitrate="Video Bitrate"
|
||||
Basic.Settings.Output.AudioBitrate="Audio Bitrate"
|
||||
Basic.Settings.Output.Reconnect="Automatically Reconnect"
|
||||
Basic.Settings.Output.RetryDelay="Retry Delay (seconds)"
|
||||
Basic.Settings.Output.MaxRetries="Maximum Retries"
|
||||
|
||||
# basic mode 'video' settings
|
||||
Basic.Settings.Video="Video"
|
||||
|
@ -402,7 +402,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.Simple.VideoBitrate</string>
|
||||
<string>Basic.Settings.Output.VideoBitrate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -422,7 +422,7 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.Simple.AudioBitrate</string>
|
||||
<string>Basic.Settings.Output.AudioBitrate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -473,6 +473,47 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="simpleOutReconnect">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.Reconnect</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="simpleOutRetryDelay">
|
||||
<property name="maximum">
|
||||
<number>30</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QSpinBox" name="simpleOutMaxRetries">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.RetryDelay</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.MaxRetries</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -1021,12 +1062,44 @@
|
||||
<slot>setCurrentIndex(int)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>250</x>
|
||||
<y>39</y>
|
||||
<x>586</x>
|
||||
<y>38</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>250</x>
|
||||
<y>39</y>
|
||||
<x>401</x>
|
||||
<y>79</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>simpleOutReconnect</sender>
|
||||
<signal>clicked(bool)</signal>
|
||||
<receiver>simpleOutRetryDelay</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>422</x>
|
||||
<y>168</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>420</x>
|
||||
<y>188</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>simpleOutReconnect</sender>
|
||||
<signal>clicked(bool)</signal>
|
||||
<receiver>simpleOutMaxRetries</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>503</x>
|
||||
<y>160</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>501</x>
|
||||
<y>209</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
@ -391,6 +391,11 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
config_set_default_uint (basicConfig, "SimpleOutput", "VBitrate",
|
||||
2500);
|
||||
config_set_default_uint (basicConfig, "SimpleOutput", "ABitrate", 128);
|
||||
config_set_default_bool (basicConfig, "SimpleOutput", "Reconnect",
|
||||
true);
|
||||
config_set_default_uint (basicConfig, "SimpleOutput", "RetryDelay", 2);
|
||||
config_set_default_uint (basicConfig, "SimpleOutput", "MaxRetries",
|
||||
20);
|
||||
|
||||
config_set_default_uint (basicConfig, "Video", "BaseCX", cx);
|
||||
config_set_default_uint (basicConfig, "Video", "BaseCY", cy);
|
||||
@ -1758,6 +1763,18 @@ void OBSBasic::on_streamButton_clicked()
|
||||
obs_output_set_audio_encoder(streamOutput, aac);
|
||||
obs_output_set_service(streamOutput, service);
|
||||
|
||||
bool reconnect = config_get_bool(basicConfig, "SimpleOutput",
|
||||
"Reconnect");
|
||||
int retryDelay = config_get_uint(basicConfig, "SimpleOutput",
|
||||
"RetryDelay");
|
||||
int maxRetries = config_get_uint(basicConfig, "SimpleOutput",
|
||||
"MaxRetries");
|
||||
if (!reconnect)
|
||||
maxRetries = 0;
|
||||
|
||||
obs_output_set_reconnect_settings(streamOutput, retryDelay,
|
||||
maxRetries);
|
||||
|
||||
if (obs_output_start(streamOutput)) {
|
||||
activeRefs++;
|
||||
|
||||
|
@ -110,6 +110,7 @@ void OBSBasicSettings::HookWidget(QWidget *widget, const char *signal,
|
||||
#define COMBO_CHANGED SIGNAL(currentIndexChanged(int))
|
||||
#define EDIT_CHANGED SIGNAL(textChanged(const QString &))
|
||||
#define CBEDIT_CHANGED SIGNAL(editTextChanged(const QString &))
|
||||
#define CHECK_CHANGED SIGNAL(clicked(bool))
|
||||
#define SCROLL_CHANGED SIGNAL(valueChanged(int))
|
||||
|
||||
#define GENERAL_CHANGED SLOT(GeneralChanged())
|
||||
@ -146,6 +147,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->simpleOutputPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutReconnect, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutRetryDelay, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutMaxRetries, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->channelSetup, COMBO_CHANGED, AUDIO_RESTART);
|
||||
HookWidget(ui->sampleRate, COMBO_CHANGED, AUDIO_RESTART);
|
||||
HookWidget(ui->desktopAudioDevice1, COMBO_CHANGED, AUDIO_CHANGED);
|
||||
@ -191,6 +195,14 @@ void OBSBasicSettings::SaveComboData(QComboBox *widget, const char *section,
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicSettings::SaveCheckBox(QCheckBox *widget, const char *section,
|
||||
const char *value)
|
||||
{
|
||||
if (WidgetChanged(widget))
|
||||
config_set_bool(main->Config(), section, value,
|
||||
widget->isChecked());
|
||||
}
|
||||
|
||||
void OBSBasicSettings::SaveEdit(QLineEdit *widget, const char *section,
|
||||
const char *value)
|
||||
{
|
||||
@ -423,12 +435,22 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
||||
"VBitrate");
|
||||
int audioBitrate = config_get_uint(main->Config(), "SimpleOutput",
|
||||
"ABitrate");
|
||||
bool reconnect = config_get_bool(main->Config(), "SimpleOutput",
|
||||
"Reconnect");
|
||||
int retryDelay = config_get_uint(main->Config(), "SimpleOutput",
|
||||
"RetryDelay");
|
||||
int maxRetries = config_get_uint(main->Config(), "SimpleOutput",
|
||||
"MaxRetries");
|
||||
|
||||
ui->simpleOutputPath->setText(path);
|
||||
ui->simpleOutputVBitrate->setValue(videoBitrate);
|
||||
|
||||
SetComboByName(ui->simpleOutputABitrate,
|
||||
std::to_string(audioBitrate).c_str());
|
||||
|
||||
ui->simpleOutReconnect->setChecked(reconnect);
|
||||
ui->simpleOutRetryDelay->setValue(retryDelay);
|
||||
ui->simpleOutMaxRetries->setValue(maxRetries);
|
||||
}
|
||||
|
||||
void OBSBasicSettings::LoadOutputSettings()
|
||||
@ -598,6 +620,9 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
SaveSpinBox(ui->simpleOutputVBitrate, "SimpleOutput", "VBitrate");
|
||||
SaveCombo(ui->simpleOutputABitrate, "SimpleOutput", "ABitrate");
|
||||
SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath");
|
||||
SaveCheckBox(ui->simpleOutReconnect, "SimpleOutput", "Reconnect");
|
||||
SaveSpinBox(ui->simpleOutRetryDelay, "SimpleOutput", "RetryDelay");
|
||||
SaveSpinBox(ui->simpleOutMaxRetries, "SimpleOutput", "MaxRetries");
|
||||
}
|
||||
|
||||
void OBSBasicSettings::SaveAudioSettings()
|
||||
|
@ -51,6 +51,8 @@ private:
|
||||
const char *value);
|
||||
void SaveComboData(QComboBox *widget, const char *section,
|
||||
const char *value);
|
||||
void SaveCheckBox(QCheckBox *widget, const char *section,
|
||||
const char *value);
|
||||
void SaveEdit(QLineEdit *widget, const char *section,
|
||||
const char *value);
|
||||
void SaveSpinBox(QSpinBox *widget, const char *section,
|
||||
|
Loading…
Reference in New Issue
Block a user