Commit Graph

452 Commits

Author SHA1 Message Date
Cameron Gutman
06c0ed1d1c Temporarily add the working directory to our path when starting an app
CreateProcess() doesn't search in the child's specified working directory by default.
2024-03-07 18:14:28 -06:00
Cameron Gutman
972e5d2b14 Strip quotes out of the working directory path 2024-03-07 18:14:28 -06:00
Cameron Gutman
6aeaaf5ec9 Fix process tree tracking when the cmd.exe trampoline is used 2024-03-07 18:14:28 -06:00
Cameron Gutman
9e299c295d Fix predefined FPS values not taking effect 2024-03-05 23:16:27 -06:00
ReenigneArcher
4ebc7b5cef
build(macos): add build strategy matrix (#2211) 2024-03-05 08:56:09 -05:00
Cameron Gutman
9f94eebd32 Fix mismatched case and unhandled exception in open_drm_fd_for_cuda_device() 2024-03-05 00:07:04 -06:00
Cameron Gutman
529f1b84f8 Fix CUDA context leak causing encoder init failures using X11 capture with NVENC 2024-03-03 19:57:46 -06:00
Cameron Gutman
5606840c89 Stop enumeration after finding a working capture backend 2024-03-02 12:08:35 -06:00
Cameron Gutman
1ab30aa70b Add log messages to indicate display numbers for KMS and Wlgrab 2024-03-02 12:08:35 -06:00
Cameron Gutman
75a97883e7 Rework dummy image handling to avoid RTX HDR driver bug
As a side effect, it avoids useless allocations and uploads of
a zeroed memory buffer to clear the dummy image textures.
2024-03-01 01:09:10 -06:00
Cameron Gutman
e430f51e2f Add friendly message when encoder detection fails 2024-02-29 18:35:30 -06:00
Cameron Gutman
4252f5df7c Add option to allow HEVC usage on older Intel GPUs without low-power encoding 2024-02-29 18:35:30 -06:00
Cameron Gutman
a0d5973799 Avoid display switching unexpectedly when the UAC secure desktop appears 2024-02-27 23:12:31 -06:00
Cameron Gutman
83e3ea5aa7 Use a common function to abort for debugging purposes 2024-02-27 21:21:16 -06:00
ReenigneArcher
8a7a6c48f8
build(cmake) properly find evdev (#2176) 2024-02-26 12:55:34 -05:00
ReenigneArcher
8074bf8c8d
fix(main): fix version printing (#2167) 2024-02-23 20:00:53 -05:00
Cameron Gutman
d1a635809a Implement backwards compatibility for NVENC APIs back to Video Codec SDK v11.0
This allows NVENC on drivers 456.71 (October 2020) and later.
2024-02-16 22:31:48 -06:00
Cameron Gutman
56da68c863 Preserve backwards-compatible argument escaping behavior for executables 2024-02-15 18:29:33 -06:00
Cameron Gutman
6ddc4b7ba3 Properly re-escape arguments when processing %* 2024-02-15 18:29:33 -06:00
Cameron Gutman
69a3edd9b0 Use Win32 APIs for UTF-16<->UTF-8 conversion
std::codecvt is deprecated since C++17 and broken for some characters/locales
2024-02-12 18:43:44 -06:00
ReenigneArcher
8689469ea8
refactor(main): move remaining entry related code (#2127) 2024-02-11 14:15:45 -05:00
Cameron Gutman
65493d09e8 Cloak MAC address from unpaired clients 2024-02-10 13:47:51 -06:00
Cameron Gutman
78ed91af5c Treat escape sequences like other replacements 2024-02-10 09:52:35 -06:00
Cameron Gutman
c0ad9639c4 Fix spacing of multi-argument %* substitutions 2024-02-10 09:52:35 -06:00
Cameron Gutman
11c8cf176c Simplify and fix handling of incomplete substitution strings 2024-02-10 09:52:35 -06:00
ReenigneArcher
cd2153f340
refactor(main): move file operation functions to new source (#2124) 2024-02-10 07:37:27 -05:00
ReenigneArcher
1c50bc502b
refactor(main): move map_port to network (#2115) 2024-02-09 09:15:47 -05:00
Cameron Gutman
aa76b2398b Add support for starting URLs and regular files that aren't executable
This provides some limited ShellExecute-like behavior.
2024-02-08 01:59:40 -06:00
Cameron Gutman
ee93890d86 Don't attempt to get the working directory of a URL 2024-02-08 01:59:40 -06:00
ReenigneArcher
0aa4f06c39
refactor(logging): separate logging from main (#2110) 2024-02-07 09:59:24 -05:00
Cameron Gutman
8373a8b947 Avoid recreating the display when no display parameters have changed 2024-02-06 20:00:24 -06:00
Cameron Gutman
aee88f336a Don't fall back to undefined ref frame count on HEVC/AV1 if H.264 succeded with ref frame count specified
I don't think there are any encoders out there that support this for some codecs and not others.
2024-02-06 20:00:24 -06:00
Cameron Gutman
38d45b39ae Don't populate QP rate control fallbacks for encoders guaranteed to support CBR/VBR
It just needlessly slows down encoder probing when the encoder or codec is not supported.
2024-02-06 20:00:24 -06:00
Cameron Gutman
ff8c8ce3ab Skip encoder reprobing if no GPU changes have occurred 2024-02-06 20:00:24 -06:00
ReenigneArcher
76e160bb0a
style(macos): various code style fixes (#2086) 2024-02-04 18:37:44 -05:00
Cameron Gutman
dea1155983 Inform clients of graceful termination when Sunshine exits 2024-02-04 16:43:59 -06:00
Cameron Gutman
be6f856840 Fix DSCP tagging for dual-stack sockets on Linux 2024-02-04 16:19:22 -06:00
Cameron Gutman
3578727ff9 Require RTSP encryption when encryption mode is set to mandatory
This also lets us provide a friendly error to the client when it is rejected.
2024-02-03 15:05:43 -06:00
Cameron Gutman
f80b23750b Implement RTSP encryption support
RTSP encryption is mandatory for client that report core version 1 or later.
2024-02-03 15:05:43 -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
e62d6915db Fix -Wreturn-local-addr warning in event_t::view() 2024-02-03 15:05:43 -06:00
Cameron Gutman
2008bc0eaa Use CS6 instead of CS7 for audio traffic
CS7 is reserved for network control traffic.
2024-02-02 18:30:48 -06:00
Cameron Gutman
bb3b7984f3 Add refcounting to Mac and Linux QoS state to ensure it works properly with multiple clients
This means we can't control DSCP tagging per-client, but it shouldn't pose a big problem as routers that blackhole DSCP tagged traffic are pretty rare.
2024-02-02 18:30:48 -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
c7700f96fc Enable opportunistic QoS tagging for control messages 2024-02-02 18:30:48 -06:00
Cameron Gutman
fe8b0bad92 Implement workaround for qWAVE issues handling IPv4-mapped IPv6 addresses 2024-02-02 18:30:48 -06:00
Cameron Gutman
f70c3f1c0e Fix crash on monitor index not found in KMS 2024-01-28 14:00:46 -06:00
Cameron Gutman
cf416f55e1 Fix KMS cursor capture on Nvidia GPUs 2024-01-28 14:00:46 -06:00
Cameron Gutman
8182f592e8 Implement NVENC support for KMS and wlgrab capture methods 2024-01-28 14:00:46 -06:00
Cameron Gutman
9a3553db04 Refactor to use pixel format helpers in VAAPI 2024-01-27 21:32:29 -06:00