|
@@ -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;
|
|
|
|
|
+}
|