diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index 70d807e71..3afda2025 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -771,12 +771,15 @@ bool SimpleOutput::StartStreaming(obs_service_t *service) } const char *error = obs_output_get_last_error(streamOutput); - bool has_last_error = error && *error; + bool hasLastError = error && *error; + if (hasLastError) + lastError = error; + else + lastError = string(); - blog(LOG_WARNING, "Stream output type '%s' failed to start!%s%s", - type, - has_last_error ? " Last Error: " : "", - has_last_error ? error : ""); + blog(LOG_WARNING, "Stream output type '%s' failed to start!%s%s", type, + hasLastError ? " Last Error: " : "", + hasLastError ? error : ""); return false; } @@ -1561,12 +1564,15 @@ bool AdvancedOutput::StartStreaming(obs_service_t *service) } const char *error = obs_output_get_last_error(streamOutput); - bool has_last_error = error && *error; + bool hasLastError = error && *error; + if (hasLastError) + lastError = error; + else + lastError = string(); - blog(LOG_WARNING, "Stream output type '%s' failed to start!%s%s", - type, - has_last_error ? " Last Error: " : "", - has_last_error ? error : ""); + blog(LOG_WARNING, "Stream output type '%s' failed to start!%s%s", type, + hasLastError ? " Last Error: " : "", + hasLastError ? error : ""); return false; } diff --git a/UI/window-basic-main-outputs.hpp b/UI/window-basic-main-outputs.hpp index 4c4842d22..c053d0b08 100644 --- a/UI/window-basic-main-outputs.hpp +++ b/UI/window-basic-main-outputs.hpp @@ -15,6 +15,7 @@ struct BasicOutputHandler { OBSBasic *main; std::string outputType; + std::string lastError; OBSSignal startRecording; OBSSignal stopRecording; diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 2242e9d36..5b74857d0 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -4762,6 +4762,9 @@ void OBSBasic::StartStreaming() } if (!outputHandler->StartStreaming(service)) { + QString message = !outputHandler->lastError.empty() + ? QTStr(outputHandler->lastError.c_str()) + : QTStr("Output.StartFailedGeneric"); ui->streamButton->setText(QTStr("Basic.Main.StartStreaming")); ui->streamButton->setEnabled(true); ui->streamButton->setChecked(false); @@ -4771,9 +4774,8 @@ void OBSBasic::StartStreaming() sysTrayStream->setEnabled(true); } - QMessageBox::critical(this, - QTStr("Output.StartStreamFailed"), - QTStr("Output.StartFailedGeneric")); + QMessageBox::critical(this, QTStr("Output.StartStreamFailed"), + message); return; }