1
0
Эх сурвалжийг харах

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.
Roman Sivriver 4 жил өмнө
parent
commit
7029304b32

+ 1 - 0
plugins/obs-outputs/ftl-stream.c

@@ -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;
 }