678 Commits

Author SHA1 Message Date
Cameron Gutman
4304e597d8 Add byteswapping macros for big-endian systems 2021-04-17 21:43:13 -05:00
Cameron Gutman
efaeade7a6 Small cleanup and bugfix 2021-04-17 20:24:43 -05:00
Cameron Gutman
98d7ceecf7 Add native MbedTLS crypto backend 2021-04-17 19:00:26 -05:00
Cameron Gutman
d62ee951a0 Refactor OpenSSL usage into a platform-specific file to allow other crypto backends 2021-04-17 17:47:53 -05:00
Cameron Gutman
5782246b30 Add hack to prevent video glitching on GFE 3.22 when packets per frame exceed 120 2021-04-09 19:30:38 -05:00
Cameron Gutman
31433fc5ee Minor cleanup and bugfix 2021-04-09 13:47:24 -05:00
Cameron Gutman
83431e557d Fix leak on each GFE 3.22 input packet 2021-04-09 13:47:00 -05:00
Cameron Gutman
0a00163f0b Fix audio stream init error check 2021-04-09 13:00:35 -05:00
Cameron Gutman
cb11b76682 Fix GCC/Clang warning 2021-04-09 12:20:02 -05:00
Cameron Gutman
6dca9c6754 Add special termination error code for protected content 2021-04-09 11:53:03 -05:00
Cameron Gutman
9841a6e34d Fix parsing of termination message from GFE 3.22 2021-04-09 11:41:59 -05:00
Cameron Gutman
731d52d020 Return a packet length from the decryption process 2021-04-09 10:40:28 -05:00
Cameron Gutman
12f0f3d6d7 Add encrypted control stream support for GFE 3.22
Receive-side not yet fully working
2021-04-09 10:25:24 -05:00
Cameron Gutman
f0dbee171b Consider UDP 48000 as part of RTSP for connection testing
GFE 3.22 requires UDP 48000 communication to complete RTSP handshake
2021-04-09 08:39:28 -05:00
Cameron Gutman
d0c3513504 Reorder audio initialization and RTSP handshake to avoid RTSP PLAY failure on GFE 3.22 2021-04-09 08:39:28 -05:00
Cameron Gutman
2c13835f32 Increase first-start audio drop for upcoming GFE 3.22 changes 2021-04-09 08:39:28 -05:00
Cameron Gutman
c0c200e72c Fix APP_VERSION_AT_LEAST macro definition 2021-04-09 07:51:05 -05:00
Cameron Gutman
9b194cc700 Adjust RTSP requests to conform to GFE 3.22 changes 2021-04-09 07:46:14 -05:00
Cameron Gutman
9a706fd78c Temporarily switch to control protocol 9 on GFE 3.22 2021-04-09 07:45:17 -05:00
Cameron Gutman
415d97aa4d Pass through input for full control stream encryption on GFE 3.22 2021-04-09 07:44:31 -05:00
Cameron Gutman
a51cc972d3 Add APP_VERSION_AT_LEAST() macro for cleaner GFE version checks 2021-04-09 07:26:24 -05:00
Cameron Gutman
b528867466 Change NAL type parsing to match the spec and add AUD removal for H.264 2021-03-29 19:27:19 -05:00
Cameron Gutman
8b1fbc770e Discard AUD NALs prepended to incoming frames 2021-03-28 10:34:01 -05:00
Cameron Gutman
a64af8d8cf Fix unused variable warning on NaCl 2021-01-09 20:08:22 -06:00
Cameron Gutman
021fe902d9 Update ENet submodule to upstream 1.3.17 release 2021-01-09 18:46:13 -06:00
Cameron Gutman
fd950b6452 Allow applications to reliably calculate decode unit queue delay 2020-12-31 16:08:00 -06:00
Cameron Gutman
3aa2463856 Add a special error code for early termination 2020-12-24 11:21:47 -06:00
Cameron Gutman
97ca7b099f Report frames to the control stream code before FEC reconstruction 2020-12-24 11:08:31 -06:00
Cameron Gutman
cca2ba9aab Add LiStringifyPortFlags() helper function 2020-12-23 13:42:28 -06:00
Cameron Gutman
ce546b12b0 Fix undefined behavior due to shifting an int by 31 2020-12-06 00:44:33 -06:00
Cameron Gutman
6dd3f9e7bc Treat GCC/Clang warnings as errors 2020-12-05 23:46:10 -06:00
Cameron Gutman
941ffef2ca Fix final GCC sign warnings 2020-12-05 23:45:49 -06:00
Cameron Gutman
8dc304bcd3 Fix more warnings 2020-12-05 23:30:25 -06:00
Cameron Gutman
3fddfc5557 Fix Clang warnings 2020-12-05 23:20:02 -06:00
Cameron Gutman
ac6630ef59 Add AppVeyor CI builds 2020-12-05 20:12:14 -06:00
Cameron Gutman
0ead0df2a1 Remove usage of long types for LP64 and LLP64 consistency 2020-12-05 16:51:03 -06:00
Cameron Gutman
333382ae74 Use stdint types for ByteBuffer 2020-11-30 22:03:24 -06:00
Cameron Gutman
4b4162c1a1 Fix redefinition warning for errno.h constants on Windows 2020-11-30 20:44:46 -06:00
Cameron Gutman
5f9f7ce407 Code cleanup: use stdbool.h 2020-11-30 20:38:13 -06:00
Cameron Gutman
e9ee868da4 Don't enable QoS for IPv6/NAT64 either 2020-10-31 17:08:29 -05:00
Cameron Gutman
dbf81dcb63 Don't enable QoS for remote IPv4 streams
Some broken routers/CPE will drop all QoS tagged packets
2020-10-28 20:35:45 -05:00
Cameron Gutman
edf08d0a60
Merge pull request #51 from d3m3vilurr/fix-vita-compile
vita: Restore select call on the VITA system
2020-10-22 21:39:53 -05:00
Sunguk Lee
6195007bf3
Add missing poll header parts of the VITA 2020-10-23 11:29:02 +09:00
Cameron Gutman
f15582a090 Update pollSockets() fallback for Vita compatibility 2020-10-22 17:20:07 -05:00
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