Commit Graph

1009 Commits

Author SHA1 Message Date
ReenigneArcher 22a190bdd5 ci(code-ql): use no build mode
CodeQL now supports no build mode for C++ analysis. See: https://github.blog/changelog/2025-06-03-codeql-can-be-enabled-at-scale-on-c-c-repositories-in-public-preview-using-build-free-scanning/
2025-06-08 13:41:53 -05:00
ReenigneArcher f2f85efa33 ci(workflows): move to github workflows 2025-03-26 23:05:26 -05:00
ABeltramo e95feaf495 Protocol extension: DualSense adaptive trigger support (#102) 2025-03-25 18:16:11 -05:00
Cameron Gutman d3d3e6cf01 Port improved ping interval logic into the control receive loop 2024-10-20 17:34:35 -05:00
Cameron Gutman 12e603eceb Further improve ENet ping interval wait logic 2024-10-20 17:15:04 -05:00
Cameron Gutman 04a2f1131c Update ENet with improved wakeup logic for enet_host_service() 2024-10-20 16:36:12 -05:00
Cameron Gutman dff1690fe1 Validate channel count before parsing Opus param string 2024-10-15 23:00:16 -05:00
ns6089 0fa805d973 Guard against rtsp response with no content 2024-10-15 22:48:59 -05:00
Cameron Gutman 8599b6042a Use SO_NONBLOCK on Haiku 2024-06-10 23:45:51 -05:00
Cameron Gutman e49637d153 Bump enet submodule for Haiku support 2024-06-10 23:45:10 -05:00
ns6089 907110c4ec Support YUV 4:4:4 formats 2024-06-06 02:31:32 -05:00
Cameron Gutman c245fe599d Use higher packet size for remote streaming over end-to-end IPv6 connection
The IPv6 spec guarantees a minimum of 1280 byte MTUs
2024-05-29 13:57:50 -04:00
Cameron Gutman 5e75d4e1f1 Fix -Wsign-compare warning 2024-05-25 18:31:43 -05:00
Cameron Gutman a3e57feadd Update CI images 2024-05-25 18:31:09 -05:00
Cameron Gutman eb21561541 Don't depend on outputDataLength to be initialized with mbedTLS
OpenSSL has no such requirement, so MbedTLS breakages snuck in.
2024-03-05 21:09:57 -06:00
Cameron Gutman 48d7f1ace1 Fix incorrect function definition 2024-02-25 15:52:04 -06:00
Cameron Gutman ba1fc33672 Fix spurious asserts in the unencrypted audio path with Sunshine 2024-02-20 18:03:50 -06:00
Cameron Gutman 046c231b33 Update ENet submodule to use Wii U userbuffers 2024-02-18 13:41:31 -06:00
GaryOderNichts 3d99869c0c Implement support for userbuffers on Wii U
The Wii U socket implementation has limited memory available. To support larger receive buffers, application memory needs to be provided.
To make sockets use this user memory the `SO_RUSRBUF` option needs to be set on the socket.
2024-02-18 13:39:17 -06:00
Cameron Gutman 8af4562af6 Assert that active objects exist in deleters 2024-02-17 18:20:24 -06:00
Cameron Gutman 59f7f62b62 Fix thread detachment on Vita 2024-02-17 18:14:49 -06:00
Cameron Gutman 9686f6942f Consolidate PltCloseThread() and PltJoinThread() 2024-02-17 18:14:03 -06:00
GaryOderNichts 9545dd7603 Implement detached threads (#88)
The `AsyncTerm` thread is never joined but its handle is immediately closed. This works fine on Windows, but causes issues on other platforms where threads need to be explicitly detached if never joined (pthread, wiiu).

This adds a new `PltDetachThread` function, which can be used instead of `PltCloseThread` to explictly detach a thread, requiring it to no longer be closed.
2024-02-17 17:54:32 -06:00
Cameron Gutman ec171fd7ca Don't use VersionHelpers.h on UWP 2024-02-03 17:20:13 -06:00
Cameron Gutman cbd0ec1b25 Fix signed/unsigned mismatch warnings 2024-02-03 15:20:56 -06:00
Cameron Gutman 92abf6e11d Update ENet with ECN/L4S support for Windows too 2024-02-03 15:19:13 -06:00
Cameron Gutman dc71a16bae Update ENet with ECN/L4S support 2024-02-03 15:14:47 -06:00
Cameron Gutman 7ab34e709a Improve encrypted RTSP message validation 2024-02-03 14:39:12 -06:00
Cameron Gutman 955f13a18d Implement RTSP encryption support 2024-02-02 22:55:53 -06:00
zoeyjodon 35f730fedd Improve 3DS Reliability (#87)
- Simplifies thread priority setup
- Sets a max socket buffer size of 0x20000 for the 3DS
- Fixes a bug with polling timeouts taking longer than intended
- Removes 3DS global socket definition
2024-02-02 18:33:18 -06:00
Cameron Gutman 0f3fa30f62 Update ENet with 3DS fixes and iOS/macOS QoS tagging fix 2024-02-01 18:30:22 -06:00
Cameron Gutman 3acba578b1 Update ENet with QoS tagging fixes 2024-02-01 01:20:19 -06:00
Cameron Gutman c0e3dc64a4 Add basic QoS attributes to our A/V sockets 2024-02-01 00:15:47 -06:00
Cameron Gutman 68153174bc Update ENet to improve connection robustness during transient network interruptions 2024-01-24 23:26:41 -06:00
Cameron Gutman fb2b103e51 Fix propagation of errors from enet_host_service() in sendMessageEnet() 2024-01-24 22:41:03 -06:00
Cameron Gutman e8113f0e66 Use the spare field in the encrypted video header as the frame number
This allows us to skip decrypting extra FEC shards after a frame was reassembled.
2024-01-24 18:36:37 -06:00
Cameron Gutman a517f7cbca Fix -Wsign-compare warnings in debug build 2024-01-18 21:35:20 -06:00
zoey jodon c104a97fa0 Add platform support for the 3DS
Prevent wildcard port binding on the 3DS
Add 3DS threading logic
Add 3DS socket logic
Bump the connection timeout to 60s for the 3DS
2024-01-18 18:30:20 -06:00
Cameron Gutman 2597b5e779 Use a 12-byte AES-GCM IV for the new encryption features 2024-01-18 18:29:47 -06:00
Elia Zammuto 7f99bebc72 UWP Changes (#85) 2024-01-15 16:36:28 -06:00
Cameron Gutman 298f356acb Adjust the requested packet size to account for the encryption header 2024-01-14 18:42:41 -06:00
Cameron Gutman 06f18be4bf Allow negotiation of audio encryption using new encryption flags 2024-01-14 14:10:45 -06:00
Cameron Gutman b74b6e883c Add video encryption support 2024-01-14 14:04:52 -06:00
Cameron Gutman 6083a75d1b Ensure no IV collisions 2024-01-14 13:18:22 -06:00
Cameron Gutman 3430ee2c3a Add control stream encryption v2 support 2024-01-14 12:58:48 -06:00
Cameron Gutman b6bbb4fb26 Add new RTSP encryption flags 2024-01-14 12:08:37 -06:00
Cameron Gutman 15b55a441b Add LiGetExtraLaunchArgs()
The string returned from this function should be appended to the end of the /resume and /launch query parameters.
2024-01-14 11:48:59 -06:00
Cameron Gutman 723cac034b Discard unencrypted packets on encrypted control stream 2024-01-14 11:41:01 -06:00
Cameron Gutman 6e9ed871bc Add support for X-SS-Connect-Data in RTSP SETUP for control stream
This allows the host to provide a 32-bit integer that will be sent
in the data of the ENet connect event, similar to X-SS-Ping-Payload
for video and audio.

The host can use this data to uniquely identify a client when IP
addresses are not stable across the various separate connections,
such as when the client is behind a Carrier-Grade NAT.
2023-12-28 16:56:06 -06:00
Cameron Gutman 50d8dcb072 Update ENet submodule with Apple dual stack socket fix 2023-12-28 16:10:55 -06:00