obs-outputs: Only set stop events if still active
The new code in 3032535f56 would signal that the output has stopped to the back-end and front-end, but the event used in the outputs themselves to shut down the send thread would still be signaled, causing the next connection to immediately stop as soon as it had started. This fixes it so that the event does not get signaled unless the thread is active.
This commit is contained in:
parent
8e66f180d8
commit
5cfefce55e
@ -257,7 +257,6 @@ static void ftl_stream_stop(void *data, uint64_t ts)
|
||||
}
|
||||
|
||||
stream->stop_ts = ts / 1000ULL;
|
||||
os_event_signal(stream->stop_event);
|
||||
|
||||
if (ts) {
|
||||
stream->shutdown_timeout_ts = ts +
|
||||
@ -265,6 +264,7 @@ static void ftl_stream_stop(void *data, uint64_t ts)
|
||||
}
|
||||
|
||||
if (active(stream)) {
|
||||
os_event_signal(stream->stop_event);
|
||||
if (stream->stop_ts == 0)
|
||||
os_sem_post(stream->send_sem);
|
||||
} else {
|
||||
|
@ -178,13 +178,13 @@ static void rtmp_stream_stop(void *data, uint64_t ts)
|
||||
pthread_join(stream->connect_thread, NULL);
|
||||
|
||||
stream->stop_ts = ts / 1000ULL;
|
||||
os_event_signal(stream->stop_event);
|
||||
|
||||
if (ts)
|
||||
stream->shutdown_timeout_ts = ts +
|
||||
(uint64_t)stream->max_shutdown_time_sec * 1000000000ULL;
|
||||
|
||||
if (active(stream)) {
|
||||
os_event_signal(stream->stop_event);
|
||||
if (stream->stop_ts == 0)
|
||||
os_sem_post(stream->send_sem);
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user