Commit Graph

556 Commits

Author SHA1 Message Date
Cameron Gutman
bd2e1dc8c0
fix(video): encode at least one frame before capture reinit (#3300) 2024-10-14 20:34:22 -05:00
Andy Grundman
3744c43ea7
fix(audio/windows): don't set virtual speakers higher than 24-bit mode (#3294)
Windows: don't try to set Steam speakers to 32-bit mode to avoid clobbering spatial audio settings
2024-10-14 01:36:27 +00:00
Cameron Gutman
5b435fd0c1
fix(display): fix logic to remember ddprobe already ran (#3293) 2024-10-13 18:04:52 -05:00
ReenigneArcher
7dd836dab6
build(deps): bump third party/build-deps from 1977d9c to 8c7caa1 (#3292)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-10-11 23:59:05 -04:00
Cameron Gutman
e0743169be
build(mingw): work around broken windows.foundation.h (#3291) 2024-10-11 22:33:33 -04:00
Cameron Gutman
011a872c88
build(deps): update to FFmpeg 7.1 (#3263) 2024-10-06 19:15:53 -05:00
Lukas Senionis
e90b71ce62
fix(boost)!: migrate boost to 1.86 (#3256) 2024-10-03 21:42:16 -04:00
ReenigneArcher
9cc8bc8f62
build(deps): migrate from curl to curl-winssl on Windows (#3246) 2024-10-02 00:02:14 +00:00
ReenigneArcher
fb712e30a0
fix(curl): use stronger SSL and TLS versions (#3241) 2024-09-29 23:48:10 +00:00
ReenigneArcher
1839d59492
feat(apps): order apps alphabetically (#3223) 2024-09-29 18:25:23 -04:00
Chase Payne
fceda35d44
fix: automatic selection for hybrid GPU and IDDSampleDriver users (#3002)
* Fix frame capture and output duplication for dual GPU setups and virtual displays

- Added `test_frame_capture` function to verify if frames are successfully captured and not empty.
- Fixes issues with virtual displays such as IDDSampleDriver when using more than one GPU.

Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-09-29 20:32:34 +00:00
BayLee4
5bc32cdeb3
fix(macos): Touch input broken (#3240) 2024-09-29 15:59:20 +00:00
Cameron Gutman
fd7e68457a
Merge commit from fork
PR #2042 introduced another location for storing authorized clients
but did not correctly consider how the load/store logic should differ
for those places. One location (named_devices) could contain clients
which had not completed pairing, while the other (certs) had only
fully paired clients.

Despite differences in trust level of clients in each list, the logic
for loading/saving config treated them identically. The result is that
clients that had not successfully completed pairing would be treated
as fully paired after a state reload.

Fix this state confusion by consolidating to a single location for
authorized client state and ensuring it only contains information on
fully paired clients.
2024-09-09 19:13:54 -05:00
Cameron Gutman
49319d7688
fix(win/input): use active keyboard layout for non-normalized key events (#3125) 2024-09-04 22:25:02 -05:00
ns6089
7ce8547d6e
fix(win/video): don't offload chroma subsampling math to texture sampler when downscaling (#3014)
* Don't use sampler math for chroma if downscaling

* Correct portrait rotation offsets
2024-09-02 19:02:05 -05:00
ReenigneArcher
697e877070
fix(linux): use correct value for AMD_DEBUG environment variable (#3115) 2024-09-01 09:01:03 -04:00
LizardByte-bot
0f40a092de
chore: update global workflows (#3113)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-08-31 17:45:57 +00:00
Cameron Gutman
3976b63ee8
fix(win/input): fix false warnings about missing ViGEmBus (#3097) 2024-08-26 14:41:17 +00:00
Vithorio Polten
45265fb103
fix(macos/linux): import boost headers normally (#3096) 2024-08-26 09:27:23 -04:00
Cameron Gutman
88ce5077b0
fix(mdns): don't hardcode mDNS instance name (#3084) 2024-08-25 19:20:33 -04:00
Cameron Gutman
f048510ef7
fix(nvhttp): wrap TLS socket to ensure graceful closure (#3077) 2024-08-25 17:52:48 -04:00
ReenigneArcher
bf92fda969
fix(linux): enable lowlatency mode for AMD (#3088) 2024-08-25 10:50:51 -04:00
ReenigneArcher
6593fa5d61
feat: add publisher metadata (#3080) 2024-08-24 20:14:45 -04:00
ns6089
764ce03520
feat(tests): rework tests in numerous ways (#3059) 2024-08-22 16:48:24 -04:00
ns6089
170f4dd181
fix(win/qsv): skip unsupported 4:4:4 codecs (#3029) 2024-08-19 08:30:13 -04:00
ns6089
bfdfcebc80
feat(win/video): support native YUV 4:4:4 encoding (#2533) 2024-08-16 13:41:27 -04:00
Insanemal
c246c78b13
fix(linux): ensure NvFBC capture works after multiple sessions (#3020) 2024-08-15 21:30:00 -04:00
ns6089
f9c885a414
fix(linux/audio): don't set pulseaudio buffer size (#2999) 2024-08-09 20:29:17 +00:00
ns6089
b6b8e681cb
fix: print encoder name to info log during creation (#2965) 2024-08-08 16:09:51 -04:00
ns6089
6d91e680c5
feat(logging): include milliseconds timestamps (#2963) 2024-08-08 10:52:08 -04:00
ReenigneArcher
04df80ff6b
feat!: drop advertised resolutions and fps (#2924) 2024-08-08 02:10:19 +00:00
ns6089
adf068e44e
fix(windows): properly break on the first matching DXGI output (#2962) 2024-08-04 22:40:28 +00:00
ns6089
4fd6c66edb
Handle CTRL_CLOSE_EVENT on Windows (#2952)
This allows us to terminate gracefully when console window is closed.
Mostly relevant for portable builds.
2024-08-03 21:21:10 +00:00
Lukas Senionis
369158375f
fix: remove logging::bracket "*_view" overloads (#2919) 2024-07-26 08:29:49 -04:00
ns6089
f4dda21248
Migrate audio pipeline to float from 16-bit integer (#2873)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-07-25 21:01:43 -04:00
Cameron Gutman
0ca560ced8
Fix invalid parameter passed to WSASendMsg() (#2890)
The third parameter is for flags, not number of messages.
2024-07-19 08:39:37 +00: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
5f715d66cd
fix(linux/input): don't pass unknown battery values (#2820) 2024-07-14 18:11:29 +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
Christos Falas
8187a28afc
fix(linux/input): handle pen EVENT_MOVE events (#2841) 2024-07-13 19:53:06 +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
ns6089
30748dd916
Check API before trying to disable border on WGC capture (#2825) 2024-07-10 12:14:17 +00:00
Cameron Gutman
38c13c8fe1
Fix rate control for AMD cards using VAAPI (#2821) 2024-07-08 15:05:35 +00:00
Cathy J. Fitzpatrick
3cc12dfbe7
macOS: New implementation of service publication (#2786)
The current implementation of service publication on macOS uses
`avahi-client`, but the majority of macOS machines do not have Avahi
installed because macOS provides a native alternative (`mDNSresponder`),
meaning that there is no reason to install Avahi.

The current implementation also attempts to load the Avahi client
libraries using `dlopen(3)`, which has a variety of restrictions on
macOS, such as only being willing to load from certain directories.
Depending on where the Avahi binaries are installed, they might not
be loadable through the current invocation of `dlopen(3)`.

Instead of using an Avahi client on macOS, it makes more sense to use
the native macOS API for publishing services via `mDNSresponder`. This
commit supplies such an implementation that uses the macOS native API.
It also has the advantage of being much simpler than the previous
implementation. Furthermore, this new implementation works on all
macOS machines, because it relies only on native APIs, rather than on
third-party software that is not commonly installed on macOS.
2024-07-07 15:19:51 +00:00
ReenigneArcher
a940cdb394
fix(upnp): support newer miniupnpc library (#2782)
Co-authored-by: Vithorio Polten <reach@vithor.io>
2024-07-01 10:07:06 -04:00
ReenigneArcher
1dd4b68e1c
docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
ReenigneArcher
acd9ae606e
docs: more doxygen fixes (#2736) 2024-06-21 01:34:27 +00:00