From 6bc1ecc794015af3984f4e4315b558f3445b5416 Mon Sep 17 00:00:00 2001 From: derrod Date: Sat, 4 Feb 2017 05:29:09 +0100 Subject: [PATCH] UI: Add warning if starting the output fails This is mainly to give visual feedback to those affected by NVENC not working with older driver versions. Currenlty obs fails silently which could go unnoticed for users who are using hotkeys as well as confuse users who are not trained to read their logs when issues occur. Closes jp9000/obs-studio#788 --- UI/data/locale/en-US.ini | 6 ++++++ UI/window-basic-main-outputs.cpp | 23 ++++++++++++++++++----- UI/window-basic-main.cpp | 6 +++++- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index e53e836fe..3ccb818d8 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -111,6 +111,12 @@ ConfirmRemove.Title="Confirm Remove" ConfirmRemove.Text="Are you sure you wish to remove '$1'?" ConfirmRemove.TextMultiple="Are you sure you wish to remove %1 items?" +# output start messages +Output.StartStreamFailed="Failed to start streaming" +Output.StartRecordingFailed="Failed to start recording" +Output.StartReplayFailed="Failed to start replay buffer" +Output.StartFailedGeneric="Starting the output failed. Please check the log for details.\n\nNote: If you are using the NVENC or AMD encoders, make sure your video drivers are up to date." + # output connect messages Output.ConnectFail.Title="Failed to connect" Output.ConnectFail.BadPath="Invalid Path or Connection URL. Please check your settings to confirm that they are valid." diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index ce9d67cdf..f0866dd4c 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -837,8 +837,13 @@ bool SimpleOutput::StartRecording() UpdateRecording(); if (!ConfigureRecording(false)) return false; - if (!obs_output_start(fileOutput)) + if (!obs_output_start(fileOutput)) { + QMessageBox::critical(main, + QTStr("Output.StartRecordingFailed"), + QTStr("Output.StartFailedGeneric")); return false; + } + return true; } @@ -847,8 +852,13 @@ bool SimpleOutput::StartReplayBuffer() UpdateRecording(); if (!ConfigureRecording(true)) return false; - if (!obs_output_start(replayBuffer)) + if (!obs_output_start(replayBuffer)) { + QMessageBox::critical(main, + QTStr("Output.StartReplayFailed"), + QTStr("Output.StartFailedGeneric")); return false; + } + return true; } @@ -1399,11 +1409,14 @@ bool AdvancedOutput::StartRecording() obs_data_release(settings); } - if (obs_output_start(fileOutput)) { - return true; + if (!obs_output_start(fileOutput)) { + QMessageBox::critical(main, + QTStr("Output.StartRecordingFailed"), + QTStr("Output.StartFailedGeneric")); + return false; } - return false; + return true; } void AdvancedOutput::StopStreaming(bool force) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index dfba7709f..e62122750 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3876,6 +3876,11 @@ void OBSBasic::StartStreaming() sysTrayStream->setText(ui->streamButton->text()); sysTrayStream->setEnabled(true); } + + QMessageBox::critical(this, + QTStr("Output.StartStreamFailed"), + QTStr("Output.StartFailedGeneric")); + return; } bool recordWhenStreaming = config_get_bool(GetGlobalConfig(), @@ -3887,7 +3892,6 @@ void OBSBasic::StartStreaming() "BasicWindow", "ReplayBufferWhileStreaming"); if (replayBufferWhileStreaming) StartReplayBuffer(); - } #ifdef _WIN32