UI: Use radio buttons for FLV track selection
parent
768a58771a
commit
bab3391ce4
|
@ -935,7 +935,6 @@ SceneItemHide="Hide '%1'"
|
||||||
|
|
||||||
# Output warnings
|
# Output warnings
|
||||||
OutputWarnings.NoTracksSelected="You must select at least one track"
|
OutputWarnings.NoTracksSelected="You must select at least one track"
|
||||||
OutputWarnings.MultiTrackRecording="Warning: Certain formats (such as FLV) do not support multiple tracks per recording"
|
|
||||||
OutputWarnings.MP4Recording="Warning: Recordings saved to MP4/MOV will be unrecoverable if the file cannot be finalized (e.g. as a result of BSODs, power losses, etc.). If you want to record multiple audio tracks consider using MKV and remux the recording to MP4/MOV after it is finished (File → Remux Recordings)"
|
OutputWarnings.MP4Recording="Warning: Recordings saved to MP4/MOV will be unrecoverable if the file cannot be finalized (e.g. as a result of BSODs, power losses, etc.). If you want to record multiple audio tracks consider using MKV and remux the recording to MP4/MOV after it is finished (File → Remux Recordings)"
|
||||||
OutputWarnings.CannotPause="Warning: Recordings cannot be paused if the recording encoder is set to \"(Use stream encoder)\""
|
OutputWarnings.CannotPause="Warning: Recordings cannot be paused if the recording encoder is set to \"(Use stream encoder)\""
|
||||||
|
|
||||||
|
|
|
@ -1849,6 +1849,55 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="advOutEncLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.Encoder</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>advOutEncoder</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QComboBox" name="advOutEncoder"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QCheckBox" name="advOutApplyService">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.Adv.ApplyServiceSettings</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QCheckBox" name="advOutUseRescale">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.Adv.Rescale</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QComboBox" name="advOutRescale">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QWidget" name="widget_8" native="true">
|
<widget class="QWidget" name="widget_8" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -1918,55 +1967,6 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="advOutEncLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Basic.Settings.Output.Encoder</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>advOutEncoder</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QComboBox" name="advOutEncoder"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QCheckBox" name="advOutApplyService">
|
|
||||||
<property name="text">
|
|
||||||
<string>Basic.Settings.Output.Adv.ApplyServiceSettings</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QCheckBox" name="advOutUseRescale">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="layoutDirection">
|
|
||||||
<enum>Qt::RightToLeft</enum>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Basic.Settings.Output.Adv.Rescale</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QComboBox" name="advOutRescale">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="editable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -2187,72 +2187,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QWidget" name="widget_9" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack1">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">1</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack2">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">2</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack3">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">3</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack4">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">4</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack5">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">5</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="advOutRecTrack6">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">6</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="advOutRecEncLabel">
|
<widget class="QLabel" name="advOutRecEncLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -2323,6 +2257,133 @@
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QLineEdit" name="advOutMuxCustom"/>
|
<widget class="QLineEdit" name="advOutMuxCustom"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QStackedWidget" name="advRecTrackWidget">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="recTracks" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack1">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack2">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack3">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">3</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack4">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack5">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">5</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="advOutRecTrack6">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">6</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="flvTracks">
|
||||||
|
<widget class="QWidget" name="horizontalLayoutWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>9</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>221</width>
|
||||||
|
<height>21</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_24">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack1">
|
||||||
|
<property name="text">
|
||||||
|
<string>1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack2">
|
||||||
|
<property name="text">
|
||||||
|
<string>2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack3">
|
||||||
|
<property name="text">
|
||||||
|
<string>3</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack4">
|
||||||
|
<property name="text">
|
||||||
|
<string>4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack5">
|
||||||
|
<property name="text">
|
||||||
|
<string>5</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="flvTrack6">
|
||||||
|
<property name="text">
|
||||||
|
<string>6</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -1305,7 +1305,18 @@ inline void AdvancedOutput::SetupRecording()
|
||||||
bool rescale = config_get_bool(main->Config(), "AdvOut", "RecRescale");
|
bool rescale = config_get_bool(main->Config(), "AdvOut", "RecRescale");
|
||||||
const char *rescaleRes =
|
const char *rescaleRes =
|
||||||
config_get_string(main->Config(), "AdvOut", "RecRescaleRes");
|
config_get_string(main->Config(), "AdvOut", "RecRescaleRes");
|
||||||
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
int tracks;
|
||||||
|
|
||||||
|
const char *recFormat =
|
||||||
|
config_get_string(main->Config(), "AdvOut", "RecFormat");
|
||||||
|
|
||||||
|
bool flv = strcmp(recFormat, "flv") == 0;
|
||||||
|
|
||||||
|
if (flv)
|
||||||
|
tracks = config_get_int(main->Config(), "AdvOut", "FLVTrack");
|
||||||
|
else
|
||||||
|
tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
||||||
|
|
||||||
obs_data_t *settings = obs_data_create();
|
obs_data_t *settings = obs_data_create();
|
||||||
unsigned int cx = 0;
|
unsigned int cx = 0;
|
||||||
unsigned int cy = 0;
|
unsigned int cy = 0;
|
||||||
|
@ -1340,15 +1351,24 @@ inline void AdvancedOutput::SetupRecording()
|
||||||
h264Recording);
|
h264Recording);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < MAX_AUDIO_MIXES; i++) {
|
if (!flv) {
|
||||||
if ((tracks & (1 << i)) != 0) {
|
for (int i = 0; i < MAX_AUDIO_MIXES; i++) {
|
||||||
obs_output_set_audio_encoder(fileOutput, aacTrack[i],
|
if ((tracks & (1 << i)) != 0) {
|
||||||
idx);
|
obs_output_set_audio_encoder(fileOutput,
|
||||||
if (replayBuffer)
|
|
||||||
obs_output_set_audio_encoder(replayBuffer,
|
|
||||||
aacTrack[i], idx);
|
aacTrack[i], idx);
|
||||||
idx++;
|
if (replayBuffer)
|
||||||
|
obs_output_set_audio_encoder(
|
||||||
|
replayBuffer, aacTrack[i], idx);
|
||||||
|
idx++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else if (flv && tracks != 0) {
|
||||||
|
obs_output_set_audio_encoder(fileOutput, aacTrack[tracks - 1],
|
||||||
|
idx);
|
||||||
|
|
||||||
|
if (replayBuffer)
|
||||||
|
obs_output_set_audio_encoder(replayBuffer,
|
||||||
|
aacTrack[tracks - 1], idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
obs_data_set_string(settings, "path", path);
|
obs_data_set_string(settings, "path", path);
|
||||||
|
|
|
@ -1243,6 +1243,7 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||||
config_set_default_bool(basicConfig, "AdvOut", "RecUseRescale", false);
|
config_set_default_bool(basicConfig, "AdvOut", "RecUseRescale", false);
|
||||||
config_set_default_uint(basicConfig, "AdvOut", "RecTracks", (1 << 0));
|
config_set_default_uint(basicConfig, "AdvOut", "RecTracks", (1 << 0));
|
||||||
config_set_default_string(basicConfig, "AdvOut", "RecEncoder", "none");
|
config_set_default_string(basicConfig, "AdvOut", "RecEncoder", "none");
|
||||||
|
config_set_default_uint(basicConfig, "AdvOut", "FLVTrack", 1);
|
||||||
|
|
||||||
config_set_default_bool(basicConfig, "AdvOut", "FFOutputToFile", true);
|
config_set_default_bool(basicConfig, "AdvOut", "FFOutputToFile", true);
|
||||||
config_set_default_string(basicConfig, "AdvOut", "FFFilePath",
|
config_set_default_string(basicConfig, "AdvOut", "FFFilePath",
|
||||||
|
|
|
@ -381,6 +381,12 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||||
HookWidget(ui->advOutRecTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack1, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack2, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack3, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->flvTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
@ -1692,6 +1698,7 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
||||||
const char *muxCustom =
|
const char *muxCustom =
|
||||||
config_get_string(main->Config(), "AdvOut", "RecMuxerCustom");
|
config_get_string(main->Config(), "AdvOut", "RecMuxerCustom");
|
||||||
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
||||||
|
int flvTrack = config_get_int(main->Config(), "AdvOut", "FLVTrack");
|
||||||
|
|
||||||
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
||||||
ui->advOutRecType->setCurrentIndex(typeIndex);
|
ui->advOutRecType->setCurrentIndex(typeIndex);
|
||||||
|
@ -1710,6 +1717,30 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
||||||
ui->advOutRecTrack4->setChecked(tracks & (1 << 3));
|
ui->advOutRecTrack4->setChecked(tracks & (1 << 3));
|
||||||
ui->advOutRecTrack5->setChecked(tracks & (1 << 4));
|
ui->advOutRecTrack5->setChecked(tracks & (1 << 4));
|
||||||
ui->advOutRecTrack6->setChecked(tracks & (1 << 5));
|
ui->advOutRecTrack6->setChecked(tracks & (1 << 5));
|
||||||
|
|
||||||
|
switch (flvTrack) {
|
||||||
|
case 1:
|
||||||
|
ui->flvTrack1->setChecked(true);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ui->flvTrack2->setChecked(true);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ui->flvTrack3->setChecked(true);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
ui->flvTrack4->setChecked(true);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
ui->flvTrack5->setChecked(true);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
ui->flvTrack6->setChecked(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ui->flvTrack1->setChecked(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
||||||
|
@ -3171,6 +3202,8 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||||
(ui->advOutRecTrack5->isChecked() ? (1 << 4) : 0) |
|
(ui->advOutRecTrack5->isChecked() ? (1 << 4) : 0) |
|
||||||
(ui->advOutRecTrack6->isChecked() ? (1 << 5) : 0));
|
(ui->advOutRecTrack6->isChecked() ? (1 << 5) : 0));
|
||||||
|
|
||||||
|
config_set_int(main->Config(), "AdvOut", "FLVTrack", CurrentFLVTrack());
|
||||||
|
|
||||||
config_set_bool(main->Config(), "AdvOut", "FFOutputToFile",
|
config_set_bool(main->Config(), "AdvOut", "FFOutputToFile",
|
||||||
ui->advOutFFType->currentIndex() == 0 ? true : false);
|
ui->advOutFFType->currentIndex() == 0 ? true : false);
|
||||||
SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath");
|
SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath");
|
||||||
|
@ -3953,13 +3986,6 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
||||||
Checked(ui->advOutRecTrack3) + Checked(ui->advOutRecTrack4) +
|
Checked(ui->advOutRecTrack3) + Checked(ui->advOutRecTrack4) +
|
||||||
Checked(ui->advOutRecTrack5) + Checked(ui->advOutRecTrack6);
|
Checked(ui->advOutRecTrack5) + Checked(ui->advOutRecTrack6);
|
||||||
|
|
||||||
if (tracks == 0) {
|
|
||||||
errorMsg = QTStr("OutputWarnings.NoTracksSelected");
|
|
||||||
|
|
||||||
} else if (tracks > 1) {
|
|
||||||
warningMsg = QTStr("OutputWarnings.MultiTrackRecording");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool useStreamEncoder = ui->advOutRecEncoder->currentIndex() == 0;
|
bool useStreamEncoder = ui->advOutRecEncoder->currentIndex() == 0;
|
||||||
if (useStreamEncoder) {
|
if (useStreamEncoder) {
|
||||||
if (!warningMsg.isEmpty())
|
if (!warningMsg.isEmpty())
|
||||||
|
@ -3967,6 +3993,15 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
||||||
warningMsg += QTStr("OutputWarnings.CannotPause");
|
warningMsg += QTStr("OutputWarnings.CannotPause");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ui->advOutRecFormat->currentText().compare("flv") == 0) {
|
||||||
|
ui->advRecTrackWidget->setCurrentWidget(ui->flvTracks);
|
||||||
|
} else {
|
||||||
|
ui->advRecTrackWidget->setCurrentWidget(ui->recTracks);
|
||||||
|
|
||||||
|
if (tracks == 0)
|
||||||
|
errorMsg = QTStr("OutputWarnings.NoTracksSelected");
|
||||||
|
}
|
||||||
|
|
||||||
if (ui->advOutRecFormat->currentText().compare("mp4") == 0 ||
|
if (ui->advOutRecFormat->currentText().compare("mp4") == 0 ||
|
||||||
ui->advOutRecFormat->currentText().compare("mov") == 0) {
|
ui->advOutRecFormat->currentText().compare("mov") == 0) {
|
||||||
if (!warningMsg.isEmpty())
|
if (!warningMsg.isEmpty())
|
||||||
|
@ -4609,3 +4644,21 @@ void OBSBasicSettings::SetAdvancedIcon(const QIcon &icon)
|
||||||
{
|
{
|
||||||
ui->listWidget->item(6)->setIcon(icon);
|
ui->listWidget->item(6)->setIcon(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int OBSBasicSettings::CurrentFLVTrack()
|
||||||
|
{
|
||||||
|
if (ui->flvTrack1->isChecked())
|
||||||
|
return 1;
|
||||||
|
else if (ui->flvTrack2->isChecked())
|
||||||
|
return 2;
|
||||||
|
else if (ui->flvTrack3->isChecked())
|
||||||
|
return 3;
|
||||||
|
else if (ui->flvTrack4->isChecked())
|
||||||
|
return 4;
|
||||||
|
else if (ui->flvTrack5->isChecked())
|
||||||
|
return 5;
|
||||||
|
else if (ui->flvTrack6->isChecked())
|
||||||
|
return 6;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -300,6 +300,8 @@ private:
|
||||||
QIcon GetHotkeysIcon() const;
|
QIcon GetHotkeysIcon() const;
|
||||||
QIcon GetAdvancedIcon() const;
|
QIcon GetAdvancedIcon() const;
|
||||||
|
|
||||||
|
int CurrentFLVTrack();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_theme_activated(int idx);
|
void on_theme_activated(int idx);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue