0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/plugins/obs-outputs/librtmp
tt2468 66a7db7f2a obs-outputs: Implement send timeout in librtmp
This fixes a bug where the RTMP send thread can deadlock upon the
underlying TCP connection being broken. By introducing a send timeout,
this allows the thread to unblock and give up, triggering a reconnect
as normal. The correct solution to this problem would be to rewrite
librtmp with asynchronous IO, but that seems like something unlikely
to happen.

**Before**:
- Start stream in OBS
- Use tool (pfSense) to invalidate connection state
- OBS bitrate drops to 0
- Output does not respond to stop signals, and hangs for an undefined
amount of time (usually multiple minutes) before finally giving up

**After**:
- Start stream in OBS
- Use tool (pfSense) to invalidate connection state
- OBS bitrate drops to 0
- Output sits in blocked state for maximum of 8 seconds, then cleans
up and triggers the reconnect logic
2022-04-30 16:22:10 -07:00
..
.clang-format clang-format: Add clang-format files 2019-06-23 01:53:56 -07:00
amf.c obs-outputs: Update librtmp with upstream patches 2018-07-23 23:22:37 +02:00
amf.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
bytes.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
cencode.c libobs/plugins/UI: Suppress -Wimplicit-fallthrough introduced by GCC 7 2017-05-29 21:05:18 -03:00
cencode.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
COPYING Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
handshake.h obs-outputs,librtmp: Remove encrypted RTMP support 2022-03-18 13:34:03 -07:00
hashswf.c obs-outputs: Fix librtmp mbedtls thread safety 2020-01-23 00:11:23 +01:00
http.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
log.c Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
log.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
md5.c Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
md5.h Add librtmp to obs-outputs 2014-04-01 11:48:28 -07:00
parseurl.c obs-outputs: Fix stuck "Connecting" with no key 2015-07-11 14:01:11 +09:00
rtmp_sys.h obs-outputs: Fix librtmp mbedtls thread safety 2020-01-23 00:11:23 +01:00
rtmp.c obs-outputs: Implement send timeout in librtmp 2022-04-30 16:22:10 -07:00
rtmp.h obs-outputs: Implement send timeout in librtmp 2022-04-30 16:22:10 -07:00