Cameron Gutman
4f42188c1f
Test for UDP MTU issues
2020-10-10 13:03:05 -05:00
Cameron Gutman
327917683a
Fix platform cleanup on resolveHostName() failure
2020-10-10 12:51:31 -05:00
Cameron Gutman
dbedf938d4
Don't require linking to wlanapi.dll
...
This is not always available on Windows Server
2020-09-08 18:26:36 -07:00
Cameron Gutman
128c1503f2
Don't perform the connection test in resolveHostName() for single addresses unless required
2020-09-06 17:11:14 -07:00
Cameron Gutman
6ca0b93809
Ignore ICMP Port Unreachable messages on our UDP sockets
...
These messages can falsely indicate failure in cases where the UDP socket
for audio or video hasn't opened yet when we start to send our PING packets.
It is also problematic when sending STUN requests to multiple IP addresses.
If one returns an ICMP Port Unreachable, it can cause us to fail the entire set
of requests even when other IP addresses do respond.
2020-09-06 14:04:57 -07:00
Cameron Gutman
7b024c967e
Try TCP 47989 and TCP 48010 as fallbacks if 47984 doesn't work
2020-09-06 11:55:25 -07:00
Cameron Gutman
9e4651e460
Fix implicit function declaration warnings
2020-08-29 21:13:54 -07:00
Cameron Gutman
38fe65f8bd
Remove unused variable
2020-08-29 21:09:35 -07:00
Cameron Gutman
1b022a0d05
Terminate the connection if we can't receive a key frame in 10 seconds
2020-08-29 21:00:05 -07:00
Cameron Gutman
a89fcb8a46
Always use the test port
2020-08-29 19:14:53 -07:00
Cameron Gutman
9064d4931f
Add createSocket() helper to reduce code duplication
2020-08-29 18:54:11 -07:00
Cameron Gutman
feaca5b5b0
Use resolveHostName() instead of getaddrinfo() and connectTcpSocket() directly
2020-08-29 18:27:02 -07:00
Cameron Gutman
e74fe2b016
Fix socket errors being clobbered by closeSocket()
2020-08-28 18:48:15 -07:00
Cameron Gutman
5ddd53e17f
Enable media streaming mode for 802.11 WLAN interfaces on Windows
2020-08-11 22:12:58 -07:00
Cameron Gutman
f2c1d03d8e
Don't bother doing any connection testing if no ports were specified
2020-08-09 12:08:16 -07:00
Cameron Gutman
b59007cdea
Fix server-side log spam caused by sending unused command 0x0201
2020-08-09 11:46:49 -07:00
Cameron Gutman
ae00c09cb6
Restore the 500 ms ping logic to prevent warnings in the server-side logs
2020-08-08 23:16:55 -07:00
Cameron Gutman
2fdcfb9429
Accept IPv6 addresses for network testing to support NAT64
2020-08-06 21:59:17 -07:00
Cameron Gutman
453c722fa8
Add LiGetPortFlagsFromTerminationErrorCode()
2020-08-06 21:43:18 -07:00
Cameron Gutman
6010367637
Only allow input packets to be queued between start and stop
2020-08-06 19:12:29 -07:00
Cameron Gutman
f6927475cf
Enable poll() in ENet for Linux/BSD
2020-07-27 00:03:22 -07:00
Cameron Gutman
6351749039
Fix TCP connection tests on Linux and BSD
2020-07-26 20:56:39 -07:00
Cameron Gutman
117a7c637f
Switch to poll() to be safe against stack corruption from exceeding FD_SETSIZE
...
Fortunately, the fd_set definition is not prone to stack corruption on Windows,
because FD_SETSIZE is the maximum number of sockets in a fd_set, not
the maximum value socket file descriptor that can be stored in a fd_set.
https://beesbuzz.biz/code/5739-The-problem-with-select-vs-poll
2020-07-26 20:27:58 -07:00
Cameron Gutman
84f2421fbf
Add support for client-side connectivity testing
2020-07-19 14:39:42 -07:00
Cameron Gutman
5c9935e11b
Temporarily comment out validation of reserved field
...
FEC doesn't recover this field correctly with GFE 3.20.4.
2020-07-01 11:50:23 -05:00
Cameron Gutman
407d57a50a
Update ENet submodule to fix QoS-related connection issues
2020-06-12 21:59:16 -07:00
Cameron Gutman
bea625a13d
Work around rounding error in GFE's mouse position scaling
2020-05-26 18:19:53 -07:00
Cameron Gutman
0df24c76c0
Fix incorrect behavior of modifier keys on the right side of the keyboard
2020-05-26 17:33:57 -07:00
Cameron Gutman
f8ffb30e1f
Don't send no-op mouse move and scroll events
2020-05-26 17:13:22 -07:00
Cameron Gutman
7b56ab755d
Add batching for mouse position packets
2020-05-20 18:56:30 -07:00
Cameron Gutman
b44cad6598
Fix freeing uninitialized pointer on allocation failure
2020-05-20 18:38:58 -07:00
Cameron Gutman
c8faf3539b
Replace version check with note for LiSendMousePosition()
2020-05-03 15:56:39 -07:00
Cameron Gutman
495b269a10
Disable FEC on Gen 4 and earlier and assert that FLAG_EXTENSION is present
2020-05-03 15:51:49 -07:00
Cameron Gutman
f911d974c9
Enable FEC validation mode on debug builds
2020-05-02 16:56:13 -07:00
Cameron Gutman
719f690e56
Add an assert to catch incorrectly sized video packets
2020-05-02 16:49:51 -07:00
Cameron Gutman
5ba94e0282
Add FEC validation mode to diagnose FEC recovery failures
2020-05-02 14:24:24 -07:00
Cameron Gutman
f596e80575
Improve logging of video/audio delay and errors
2020-05-01 20:23:44 -07:00
Cameron Gutman
b46e06fcf1
Terminate the connection if video isn't received for 10 seconds
2020-05-01 19:25:24 -07:00
Cameron Gutman
413ea9bc8e
Minor RTSP code cleanup
2020-05-01 18:32:26 -07:00
Cameron Gutman
9ffdc79b6f
Add log messages to troubleshoot problems with missing video/audio
2020-04-29 20:17:55 -07:00
Cameron Gutman
fcabfc37ad
Dynamically allocate session ID string
2020-04-29 20:12:19 -07:00
Cameron Gutman
7d0458a16b
Dynamically allocate the RTSP response buffer
2020-04-29 19:58:50 -07:00
Cameron Gutman
247b1fe0e3
Provide reference dimensions for mouse position data
2020-04-11 20:51:17 -07:00
Cameron Gutman
bbbf4336cc
Add additional documentation for LiSendMousePositionEvent()
2020-04-11 15:59:12 -07:00
Cameron Gutman
ef7de27727
Add absolute mouse motion support
2020-04-11 15:40:50 -07:00
Cameron Gutman
f0c3b57d11
Enable QoS for ENet traffic on Windows
2020-04-09 17:42:49 -07:00
Cameron Gutman
2a02569c5c
Avoid 10 second delay on graceful termination with GFE 3.20.3.63
2020-04-09 17:28:34 -07:00
Cameron Gutman
0cda408d3c
Warn when streaming above 4K with H.264 or 8K with HEVC
2020-04-04 12:36:09 -07:00
Cameron Gutman
4f9d45fbb5
Round down odd height values to avoid NVENC initialization failure
2020-04-04 11:51:55 -07:00
Cameron Gutman
86751d9162
Move ConnectionListener initialization prior to possible Limelog() usage
2020-04-04 11:51:20 -07:00