diff --git a/plugins/obs-webrtc/data/locale/en-US.ini b/plugins/obs-webrtc/data/locale/en-US.ini index 617c20e2ee5d42..c94717ec884366 100644 --- a/plugins/obs-webrtc/data/locale/en-US.ini +++ b/plugins/obs-webrtc/data/locale/en-US.ini @@ -1,3 +1,6 @@ Output.Name="WHIP Output" Service.Name="WHIP Service" Service.BearerToken="Bearer Token" + +Error.InvalidSDP="WHIP server responded with invalid SDP: %1" +Error.NoRemoteDescription="Failed to set remote description: %1" diff --git a/plugins/obs-webrtc/whip-output.cpp b/plugins/obs-webrtc/whip-output.cpp index 831f5c5899966f..e83cc03b884da5 100644 --- a/plugins/obs-webrtc/whip-output.cpp +++ b/plugins/obs-webrtc/whip-output.cpp @@ -407,12 +407,24 @@ bool WHIPOutput::Connect() do_log(LOG_ERROR, "WHIP server responded with invalid SDP: %s", err.what()); cleanup(); + struct dstr error_message; + dstr_init_copy(&error_message, + obs_module_text("Error.InvalidSDP")); + dstr_replace(&error_message, "%1", err.what()); + obs_output_set_last_error(output, error_message.array); + dstr_free(&error_message); obs_output_signal_stop(output, OBS_OUTPUT_CONNECT_FAILED); return false; } catch (const std::exception &err) { do_log(LOG_ERROR, "Failed to set remote description: %s", err.what()); cleanup(); + struct dstr error_message; + dstr_init_copy(&error_message, + obs_module_text("Error.NoRemoteDescription")); + dstr_replace(&error_message, "%1", err.what()); + obs_output_set_last_error(output, error_message.array); + dstr_free(&error_message); obs_output_signal_stop(output, OBS_OUTPUT_CONNECT_FAILED); return false; }