Commit Graph

70 Commits

Author SHA1 Message Date
neatnoise 3a196379c7 fix(web): disconnect only the disabled client instead of all sessions (#5138) 2026-05-18 18:53:57 -04:00
David Lane 188f1e2959 style(cpp): separate multiple variable declarations (#4795) 2026-03-01 09:02:17 -05:00
David Lane 2b7af2119d refactor: replace macros with constexpr/consts (#4791) 2026-02-28 18:22:33 -05:00
Andy Grundman 3a12f96a86 perf(threads): implement adjust_thread_priority for macOS and add set_thread_name (#4605) 2026-01-22 19:38:09 -05:00
Andy Grundman aea9512682 chore: clean up implicit conversions (#4611) 2026-01-22 14:39:52 -05:00
David Lane 0aa7e3fd67 feat(network): allow binding to specific interface (#4481) 2025-12-23 13:08:12 -05:00
David Lane 1d6d916b7a build: add freebsd support (#4049) 2025-11-11 23:46:11 -05:00
Andy Grundman 3092471be5 fix(rtp): improve timestamp accuracy for video (#3883)
Instead of using now() when the RTP packet is created, use the earlier packet->frame_timestamp that we're already collecting for host latency stats. This timestamp is more accurate to when we captured the frame, and the same timestamp value is shared by all RTP packets that make up the same video frame. Duplicate frames without capture timestamps use the ratecontrol timestamp.
2025-05-21 19:56:41 -04:00
ABeltramo f65bb842ff feat(input/linux): DualSense adaptive trigger support (#3738) 2025-03-26 19:16:20 -04:00
VMFortress 5b36357133 feat(display): Add revert display config on disconnect option (#3613) 2025-01-30 16:02:22 -05:00
ReenigneArcher c2420427b1 style: adjust clang-format rules (#2186)
Co-authored-by: Vithorio Polten <reach@vithor.io>
2025-01-19 22:34:47 -05:00
Lukas Senionis 76bea8acb9 feat(display): Configure display device based on user config (#3441) 2025-01-07 20:40:48 -05:00
ReenigneArcher 1e2fc2eb10 build(deps): fix boost 1.87 compatibility (#3457) 2024-12-17 08:53:55 -05:00
Cameron Gutman 73d777fa0b feat(stream)!: remove limit on concurrent sessions and allow quitting apps with active sessions (#3325) 2024-10-24 19:11:50 -05:00
Cameron Gutman 3935d305ae Implement S/G IO for batched sends and eliminate another frame copy (#2874) 2024-07-19 04:04:18 +00:00
Cameron Gutman 81c6e61594 Implement S/G IO for non-batched sends and eliminate more data copies (#2867) 2024-07-18 02:34:56 +00:00
Cameron Gutman 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
ns6089 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
Cameron Gutman 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
ns6089 037c61dc99 Implement basic network flow control (#2803)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-07-11 00:03:16 +00:00
ReenigneArcher 1dd4b68e1c docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
Gyanesh Patra fdb443a7c6 Fix log message for Periodic Ping (#2538) 2024-05-19 17:31:14 -04:00
ReenigneArcher 2da6fb050a fix(logging): add logging namespace and create logging::init method (#2336) 2024-04-02 20:57:57 -04:00
Cameron Gutman 83e3ea5aa7 Use a common function to abort for debugging purposes 2024-02-27 21:21:16 -06:00
ReenigneArcher 8689469ea8 refactor(main): move remaining entry related code (#2127) 2024-02-11 14:15:45 -05:00
ReenigneArcher 1c50bc502b refactor(main): move map_port to network (#2115) 2024-02-09 09:15:47 -05:00
ReenigneArcher 0aa4f06c39 refactor(logging): separate logging from main (#2110) 2024-02-07 09:59:24 -05:00
Cameron Gutman dea1155983 Inform clients of graceful termination when Sunshine exits 2024-02-04 16:43:59 -06:00
Cameron Gutman 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
Cameron Gutman 5c9533f6d7 Allow DSCP tagging and local traffic prioritization to be enabled separately on Mac and Linux 2024-02-02 18:30:48 -06:00
Cameron Gutman 9dfe97d405 Send the frame number in the encrypted video header 2024-01-25 23:43:30 -06:00
Cameron Gutman 65851407b1 Avoid unnecessary reallocation of the IV for every packet 2024-01-25 23:43:30 -06:00
Cameron Gutman a10ec3a98a Drop unencrypted messages on the encrypted control stream 2024-01-19 18:57:58 -06:00
Cameron Gutman c88fa655f5 Implement video encryption 2024-01-19 18:57:58 -06:00
Cameron Gutman 23fb07d4a2 Implement control stream v2 encryption 2024-01-19 18:57:58 -06:00
Cameron Gutman 2f80145b8e Change crypto::aes_t to variable size and cleanup some crypto code 2024-01-19 18:57:58 -06:00
Cameron Gutman 3d6e7f447a Refactor audio encryption to use new encryption flags 2024-01-19 18:57:58 -06:00
Cameron Gutman 77b0bab374 Pass launch_session_t directly into session::alloc() 2024-01-19 18:57:58 -06:00
Cameron Gutman a9f2679a49 Implement new protocol extension to match client connections together
Fixes #1804
Fixes #1862
Fixes #1852
2023-12-30 11:26:53 -06:00
Elia Zammuto 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
Cameron Gutman 62a5cd959a Implement IPv6 support 2023-08-27 18:12:02 -05:00
Cameron Gutman ebb6a7c9a9 Specify the source address for outbound audio and video traffic (#1569) 2023-08-26 16:37:04 -05:00
Cameron Gutman 67c1fa6da7 Populate the last payload length field in the video header 2023-08-19 18:36:48 -05:00
ns6089 68fa43a61c Add standalone NVENC encoder 2023-08-13 07:01:09 -05:00
Cameron Gutman 309fcc4142 Convert rumble_queue into a generic feedback_queue for gamepad messages 2023-07-10 21:45:37 -05:00
Cameron Gutman 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
Cameron Gutman 2571682886 Fix pessimizing move warnings on Clang 2023-05-11 20:52:44 -05:00
ReenigneArcher 4ca6dc6c8e docs: update file level doxygen blocks (#1258) 2023-05-07 18:12:39 -04:00
ReenigneArcher 979f7f4e60 docs: improvements to source code documentation (#1236) 2023-05-07 15:01:44 -04:00
Cameron Gutman 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