diff --git a/UI/window-basic-status-bar.cpp b/UI/window-basic-status-bar.cpp index 5816b0f29..f6e61ca78 100644 --- a/UI/window-basic-status-bar.cpp +++ b/UI/window-basic-status-bar.cpp @@ -509,11 +509,11 @@ void OBSBasicStatusBar::StreamStarted(obs_output_t *output) { streamOutput = output; - signal_handler_connect(obs_output_get_signal_handler(streamOutput), - "reconnect", OBSOutputReconnect, this); - signal_handler_connect(obs_output_get_signal_handler(streamOutput), - "reconnect_success", OBSOutputReconnectSuccess, - this); + streamSigs.emplace_back(obs_output_get_signal_handler(streamOutput), + "reconnect", OBSOutputReconnect, this); + streamSigs.emplace_back(obs_output_get_signal_handler(streamOutput), + "reconnect_success", OBSOutputReconnectSuccess, + this); retries = 0; lastBytesSent = 0; @@ -524,12 +524,7 @@ void OBSBasicStatusBar::StreamStarted(obs_output_t *output) void OBSBasicStatusBar::StreamStopped() { if (streamOutput) { - signal_handler_disconnect( - obs_output_get_signal_handler(streamOutput), - "reconnect", OBSOutputReconnect, this); - signal_handler_disconnect( - obs_output_get_signal_handler(streamOutput), - "reconnect_success", OBSOutputReconnectSuccess, this); + streamSigs.clear(); ReconnectClear(); streamOutput = nullptr; diff --git a/UI/window-basic-status-bar.hpp b/UI/window-basic-status-bar.hpp index 9fe33ec95..a78199b4b 100644 --- a/UI/window-basic-status-bar.hpp +++ b/UI/window-basic-status-bar.hpp @@ -28,6 +28,7 @@ private: StatusBarWidget *statusWidget = nullptr; obs_output_t *streamOutput = nullptr; + std::vector streamSigs; obs_output_t *recordOutput = nullptr; bool active = false; bool overloadedNotify = true;