UI: Add "Enforce streaming bitrate limits" setting
Allows the user to disable streaming bitrate limits in simple output mode if they so choose. This option is enabled by default.
This commit is contained in:
parent
2697732861
commit
d54bf1b8ab
@ -371,6 +371,7 @@ Basic.Settings.Output.Format="Recording Format"
|
||||
Basic.Settings.Output.Encoder="Encoder"
|
||||
Basic.Settings.Output.SelectDirectory="Select Recording Directory"
|
||||
Basic.Settings.Output.SelectFile="Select Recording File"
|
||||
Basic.Settings.Output.EnforceBitrate="Enforce streaming service bitrate limits"
|
||||
Basic.Settings.Output.Mode="Output Mode"
|
||||
Basic.Settings.Output.Mode.Simple="Simple"
|
||||
Basic.Settings.Output.Mode.Adv="Advanced"
|
||||
|
@ -621,7 +621,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="4" column="1">
|
||||
<widget class="QComboBox" name="simpleOutPreset">
|
||||
<item>
|
||||
<property name="text">
|
||||
@ -665,7 +665,7 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
@ -678,7 +678,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.CustomEncoderSettings</string>
|
||||
@ -688,9 +688,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="simpleOutCustom"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="simpleOutEnforce">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.EnforceBitrate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -3669,8 +3676,24 @@
|
||||
<y>207</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>777</x>
|
||||
<y>206</y>
|
||||
<x>866</x>
|
||||
<y>306</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>simpleOutAdvanced</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>simpleOutEnforce</receiver>
|
||||
<slot>setVisible(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>484</x>
|
||||
<y>147</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>483</x>
|
||||
<y>170</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
@ -297,6 +297,8 @@ void SimpleOutput::Update()
|
||||
int audioBitrate = GetAudioBitrate();
|
||||
bool advanced = config_get_bool(main->Config(), "SimpleOutput",
|
||||
"UseAdvanced");
|
||||
bool enforceBitrate = config_get_bool(main->Config(), "SimpleOutput",
|
||||
"EnforceBitrate");
|
||||
const char *preset = config_get_string(main->Config(),
|
||||
"SimpleOutput", "Preset");
|
||||
const char *custom = config_get_string(main->Config(),
|
||||
@ -315,6 +317,9 @@ void SimpleOutput::Update()
|
||||
obs_service_apply_encoder_settings(main->GetService(),
|
||||
h264Settings, aacSettings);
|
||||
|
||||
if (advanced && !enforceBitrate)
|
||||
obs_data_set_int(h264Settings, "bitrate", videoBitrate);
|
||||
|
||||
video_t *video = obs_get_video();
|
||||
enum video_format format = video_output_get_format(video);
|
||||
|
||||
|
@ -706,6 +706,8 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
config_set_default_uint (basicConfig, "SimpleOutput", "ABitrate", 160);
|
||||
config_set_default_bool (basicConfig, "SimpleOutput", "UseAdvanced",
|
||||
false);
|
||||
config_set_default_bool (basicConfig, "SimpleOutput", "EnforceBitrate",
|
||||
true);
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "Preset",
|
||||
"veryfast");
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "RecQuality",
|
||||
|
@ -280,6 +280,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutAdvanced, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutEnforce, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutPreset, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutRecQuality, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
@ -1104,6 +1105,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
||||
"ABitrate");
|
||||
bool advanced = config_get_bool(main->Config(), "SimpleOutput",
|
||||
"UseAdvanced");
|
||||
bool enforceBitrate = config_get_bool(main->Config(), "SimpleOutput",
|
||||
"EnforceBitrate");
|
||||
const char *preset = config_get_string(main->Config(), "SimpleOutput",
|
||||
"Preset");
|
||||
const char *custom = config_get_string(main->Config(), "SimpleOutput",
|
||||
@ -1129,6 +1132,7 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
||||
|
||||
ui->simpleOutAdvanced->setChecked(advanced);
|
||||
ui->simpleOutPreset->setCurrentText(preset);
|
||||
ui->simpleOutEnforce->setChecked(enforceBitrate);
|
||||
ui->simpleOutCustom->setText(custom);
|
||||
|
||||
idx = ui->simpleOutRecQuality->findData(QString(recQual));
|
||||
@ -2287,6 +2291,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
SaveCheckBox(ui->simpleNoSpace, "SimpleOutput", "FileNameWithoutSpace");
|
||||
SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
|
||||
SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced");
|
||||
SaveCheckBox(ui->simpleOutEnforce, "SimpleOutput", "EnforceBitrate");
|
||||
SaveCombo(ui->simpleOutPreset, "SimpleOutput", "Preset");
|
||||
SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings");
|
||||
SaveComboData(ui->simpleOutRecQuality, "SimpleOutput", "RecQuality");
|
||||
|
Loading…
x
Reference in New Issue
Block a user