From 59a126dcf41dc8f5d66d545c734ca7a8118e68e6 Mon Sep 17 00:00:00 2001 From: PatTheMav Date: Wed, 2 Nov 2022 05:26:47 +0100 Subject: [PATCH] UI: Print container warnings for ProRes encoder and disable autoremux --- UI/data/locale/en-US.ini | 3 +- UI/window-basic-settings.cpp | 64 +++++++++++++++++++++++++++--------- 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 985e82677..93956a5c1 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -1164,7 +1164,7 @@ Basic.Settings.Advanced.Hotkeys.HotkeyFocusBehavior="Hotkey Focus Behavior" Basic.Settings.Advanced.Hotkeys.NeverDisableHotkeys="Never disable hotkeys" Basic.Settings.Advanced.Hotkeys.DisableHotkeysInFocus="Disable hotkeys when main window is in focus" Basic.Settings.Advanced.Hotkeys.DisableHotkeysOutOfFocus="Disable hotkeys when main window is not in focus" -Basic.Settings.Advanced.AutoRemux="Automatically remux to mp4" +Basic.Settings.Advanced.AutoRemux="Automatically remux to %1" Basic.Settings.Advanced.AutoRemux.MP4="(record as mkv)" # advanced audio properties @@ -1254,6 +1254,7 @@ SceneItemHide="Hide '%1'" # Output warnings OutputWarnings.NoTracksSelected="You must select at least one track" 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.ProResRecording="Apple ProRes is not supported by the %1 container format - supported container formats are mov (preferred) and mkv." OutputWarnings.CannotPause="Warning: Recordings cannot be paused if the recording encoder is set to \"(Use stream encoder)\"" # deleting final scene diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index e12fe0503..fddc03d8c 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -823,8 +823,6 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) SLOT(AdvReplayBufferChanged())); connect(ui->advRBSecMax, SIGNAL(valueChanged(int)), this, SLOT(AdvReplayBufferChanged())); - connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, - SLOT(SimpleRecordingEncoderChanged())); // Get Bind to IP Addresses obs_properties_t *ppts = obs_get_output_properties("rtmp_output"); @@ -910,10 +908,10 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) SLOT(AdvOutRecCheckWarnings())); connect(ui->advOutRecEncoder, SIGNAL(currentIndexChanged(int)), this, SLOT(AdvOutRecCheckWarnings())); - AdvOutRecCheckWarnings(); SimpleRecordingQualityChanged(); AdvOutSplitFileChanged(); + AdvOutRecCheckWarnings(); UpdateAutomaticReplayBufferCheckboxes(); @@ -4634,17 +4632,51 @@ void OBSBasicSettings::AdvOutRecCheckWarnings() errorMsg = QTStr("OutputWarnings.NoTracksSelected"); } - if (ui->advOutRecFormat->currentText().compare("mp4") == 0 || - ui->advOutRecFormat->currentText().compare("mov") == 0) { - if (!warningMsg.isEmpty()) - warningMsg += "\n\n"; - warningMsg += QTStr("OutputWarnings.MP4Recording"); - ui->autoRemux->setText( - QTStr("Basic.Settings.Advanced.AutoRemux") + " " + - QTStr("Basic.Settings.Advanced.AutoRemux.MP4")); + QString recFormat = ui->advOutRecFormat->currentText(); + QString recEncoder = ui->advOutRecEncoder->currentText(); + + if (recEncoder.contains("ProRes")) { + if (recFormat.compare("mkv") == 0) { + ui->autoRemux->setText( + QTStr("Basic.Settings.Advanced.AutoRemux") + .arg("mov")); + } else if (recFormat.compare("mov") == 0) { + if (!warningMsg.isEmpty()) { + warningMsg += "\n\n"; + } + + warningMsg += QTStr("OutputWarnings.MP4Recording"); + ui->autoRemux->setText( + QTStr("Basic.Settings.Advanced.AutoRemux") + .arg("mov") + + " " + + QTStr("Basic.Settings.Advanced.AutoRemux.MP4")); + } else { + if (!errorMsg.isEmpty()) { + errorMsg += "\n\n"; + } + + errorMsg += QTStr("OutputWarnings.ProResRecording") + .arg(recFormat); + } } else { - ui->autoRemux->setText( - QTStr("Basic.Settings.Advanced.AutoRemux")); + if (recFormat.compare("mp4") == 0 || + recFormat.compare("mov") == 0) { + if (!warningMsg.isEmpty()) { + warningMsg += "\n\n"; + } + + warningMsg += QTStr("OutputWarnings.MP4Recording"); + ui->autoRemux->setText( + QTStr("Basic.Settings.Advanced.AutoRemux") + .arg("mp4") + + " " + + QTStr("Basic.Settings.Advanced.AutoRemux.MP4")); + } else { + ui->autoRemux->setText( + QTStr("Basic.Settings.Advanced.AutoRemux") + .arg("mp4")); + } } delete advOutRecWarning; @@ -5134,11 +5166,11 @@ void OBSBasicSettings::SimpleRecordingEncoderChanged() warning += "\n\n"; warning += QTStr("OutputWarnings.MP4Recording"); ui->autoRemux->setText( - QTStr("Basic.Settings.Advanced.AutoRemux") + " " + - QTStr("Basic.Settings.Advanced.AutoRemux.MP4")); + QTStr("Basic.Settings.Advanced.AutoRemux").arg("mp4") + + " " + QTStr("Basic.Settings.Advanced.AutoRemux.MP4")); } else { ui->autoRemux->setText( - QTStr("Basic.Settings.Advanced.AutoRemux")); + QTStr("Basic.Settings.Advanced.AutoRemux").arg("mp4")); } if (warning.isEmpty())