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
Cameron Gutman
3b11bc86b0
Rewrite software scaling to use new multi-threaded swscale API
2024-01-27 21:32:29 -06:00
Cameron Gutman
a15bd65391
Adjust default CPU thread count to 2
...
It's a tiny reduction of encoding quality for a major increase in performance
2024-01-27 21:32:29 -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
Kelvie Wong
3f31400e7f
Revert "Remove useless texture size queries for every frame in display_ram_t"
...
This reverts commit ebe01ce20b .
Looks like this commit undos the fix for #453 , see also PRs #649 and #884 .
This also adds a comment so hopefully it doesn't get removed again in
the future (or a proper fix is found).
2024-01-25 21:09:43 -06:00
ns6089
fe886632dc
Add new nvenc options to legacy ffmpeg path
2024-01-20 18:28:09 -06:00
ns6089
ede59e17d8
Expose more nvenc options
...
1. Spatial AQ, for some reason NVENC have problems recovering details on
flat regions of static images over multiple frames, official docs
recommend to enable it for "game-streaming"
2. Percentage increase of default single-frame VBV/HRD, can act as
low latency variable bitrate substitute
2024-01-20 18:28:09 -06:00
ns6089
66150872b0
Add nvprefs user override options
2024-01-20 18:28:09 -06:00