ftl-stream: Fix reconnect loop on FTL ingest disconnect
When connection to FTL ingest is lost, ftl_event() calls obs_output_signal_stop() to trigger a reconnect. However, during the reconnect delay, send_thread is still waiting on send_sem semaphore. After the delay, ftl_stream_start() is called, which in turn resets the semaphore and creates a new send_thread. Old send_thread now exits the loop and triggers another reconnect and the whole process repeats again. The fix resets the semaphore in ftl_event() so the old send_thread exits immediately.
This commit is contained in:
@@ -886,6 +886,7 @@ static enum ret_type ftl_event(struct ftl_stream *stream,
|
||||
//tell OBS and it will trigger a reconnection
|
||||
blog(LOG_WARNING, "Reconnecting to Ingest");
|
||||
obs_output_signal_stop(stream->output, OBS_OUTPUT_DISCONNECTED);
|
||||
reset_semaphore(stream);
|
||||
return RET_EXIT;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user