Commit Graph

56 Commits

Author SHA1 Message Date
3935d305ae Implement S/G IO for batched sends and eliminate another frame copy (#2874) 2024-07-19 04:04:18 +00:00
81c6e61594 Implement S/G IO for non-batched sends and eliminate more data copies (#2867) 2024-07-18 02:34:56 +00:00
d57c66fa9c Eliminate a redundant alloc+copy of each frame (#2852)
* Eliminate a redundant alloc+copy for each frame

* Replace std::copy_n() with std::memcpy() for better code generation
2024-07-14 12:23:19 -05:00
18e7dfb190 Refactor periodic loggers and limit batch size for small packets (#2835)
* Refactor periodic loggers

* Limit network batch size also by packet count

Previously it was limited only by size, and exceeding 64 packets in a
single batch is asking for problems.
2024-07-13 20:55:03 +00:00
e7c420dd6e Provide SSSE3, AVX2, and AVX512 optimized Reed-Solomon functions (#2828)
* Provide SSSE3, AVX2, and AVX512 optimized Reed-Solomon functions

* Update nanors to fix AVX-512 memory corruption
2024-07-11 20:22:57 -05:00
037c61dc99 Implement basic network flow control (#2803)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-07-11 00:03:16 +00:00
1dd4b68e1c docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
fdb443a7c6 Fix log message for Periodic Ping (#2538) 2024-05-19 17:31:14 -04:00
2da6fb050a fix(logging): add logging namespace and create logging::init method (#2336) 2024-04-02 20:57:57 -04:00
83e3ea5aa7 Use a common function to abort for debugging purposes 2024-02-27 21:21:16 -06:00
8689469ea8 refactor(main): move remaining entry related code (#2127) 2024-02-11 14:15:45 -05:00
1c50bc502b refactor(main): move map_port to network (#2115) 2024-02-09 09:15:47 -05:00
0aa4f06c39 refactor(logging): separate logging from main (#2110) 2024-02-07 09:59:24 -05:00
dea1155983 Inform clients of graceful termination when Sunshine exits 2024-02-04 16:43:59 -06:00
ca29eac53a Refactor RTSP handling to be session-based rather than socket-based
This is required to support per-session attributes like encryption keys during RTSP message processing.
2024-02-03 15:05:43 -06:00
5c9533f6d7 Allow DSCP tagging and local traffic prioritization to be enabled separately on Mac and Linux 2024-02-02 18:30:48 -06:00
9dfe97d405 Send the frame number in the encrypted video header 2024-01-25 23:43:30 -06:00
65851407b1 Avoid unnecessary reallocation of the IV for every packet 2024-01-25 23:43:30 -06:00
a10ec3a98a Drop unencrypted messages on the encrypted control stream 2024-01-19 18:57:58 -06:00
c88fa655f5 Implement video encryption 2024-01-19 18:57:58 -06:00
23fb07d4a2 Implement control stream v2 encryption 2024-01-19 18:57:58 -06:00
2f80145b8e Change crypto::aes_t to variable size and cleanup some crypto code 2024-01-19 18:57:58 -06:00
3d6e7f447a Refactor audio encryption to use new encryption flags 2024-01-19 18:57:58 -06:00
77b0bab374 Pass launch_session_t directly into session::alloc() 2024-01-19 18:57:58 -06:00
a9f2679a49 Implement new protocol extension to match client connections together
Fixes #1804
Fixes #1862
Fixes #1852
2023-12-30 11:26:53 -06:00
dc967ccc7b Event Ballons and Tray Icon improvements (#1561)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-09-15 20:48:51 -04:00
62a5cd959a Implement IPv6 support 2023-08-27 18:12:02 -05:00
ebb6a7c9a9 Specify the source address for outbound audio and video traffic (#1569) 2023-08-26 16:37:04 -05:00
67c1fa6da7 Populate the last payload length field in the video header 2023-08-19 18:36:48 -05:00
68fa43a61c Add standalone NVENC encoder 2023-08-13 07:01:09 -05:00
309fcc4142 Convert rumble_queue into a generic feedback_queue for gamepad messages 2023-07-10 21:45:37 -05:00
737be029ec Move input packet debug prints off the control stream thread
The control stream thread is extremely performance-sensitive.
2023-06-27 18:53:01 -05:00
2571682886 Fix pessimizing move warnings on Clang 2023-05-11 20:52:44 -05:00
4ca6dc6c8e docs: update file level doxygen blocks (#1258) 2023-05-07 18:12:39 -04:00
979f7f4e60 docs: improvements to source code documentation (#1236) 2023-05-07 15:01:44 -04:00
a6d295b273 Wait for pending sessions to connect before breaking on app termination
If we don't wait, clients may fail control stream establishment if the app terminates early.
2023-05-05 17:42:59 -05:00
eb8aaf0093 Fix graceful termination messages being discarded by Moonlight 2023-05-05 17:42:59 -05:00
df1286ac88 Fix crash if the app terminates before the control stream is connected 2023-05-05 17:42:59 -05:00
8347824eee Print frame processing latency to debug log 2023-05-02 23:41:13 -05:00
bd533dc31b Extend packet header with frame processing latency 2023-05-02 23:41:13 -05:00
21eb4eb6dd clang: adjust formatting rules (#1015) 2023-03-27 21:45:29 -04:00
31885434f2 docs: add doxygen (#1004) 2023-03-07 20:26:03 -05:00
bcd5188ac5 Implement HDR support for Windows (#825) 2023-01-25 19:48:55 -06:00
9181028bcf HDR prep work (#808) 2023-01-23 20:54:08 -06:00
4b642f6e01 Implement horizontal scrolling and Sunshine detection for Moonlight (#793) 2023-01-21 17:42:08 -06:00
fa14b6ead7 Network performance optimizations (#771) 2023-01-16 18:17:04 -05:00
5480d3d59d Switch to faster nanors Reed-Solomon implementation (#753) 2023-01-14 09:45:12 -05:00
f1c225fccc Terminate Sunshine if a session doesn't terminate for more than 10 seconds (#707) 2023-01-05 09:05:25 -05:00
cc688c7845 Implement process and thread priority adjustments (#691) 2023-01-03 22:05:00 -05:00
052297a1a5 Update app id on edit (#670)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-01-02 21:02:10 -05:00