Commit Graph

57 Commits

Author SHA1 Message Date
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 1dd4b68e1c docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
ReenigneArcher f3abf59fbf docs(src): fix some doxygen warnings (#2731) 2024-06-20 01:36:09 +00:00
Vithorio Polten 509576d616 feat(input/linux): add support for more virtual input devices (#2606)
Co-authored-by: ABeltramo <beltramo.ale@gmail.com>
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-06-16 00:21:18 +00:00
Vithorio Polten 02ddbefd44 fix(macos): Mouse input broken in-game (#2550)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-06-12 17:26:02 -04:00
Vithorio Polten ff54ab2852 fix(macos): fix broken streaming on MacOS (#2485) 2024-05-14 14:14:40 -04:00
TimmyOVO 9d5ee2f57d fix(macos/input): incorrect mouse input for non-main display (#2461) 2024-05-02 13:52:29 -04:00
TimmyOVO 9288775351 feat(macos/capture): support for capture display other than main display (#2449) 2024-04-22 14:16:26 -04: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 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 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 593e170da8 Implement graceful termination and group-based app tracking 2024-01-08 23:55:43 -06:00
ReenigneArcher 791ed48a3f fix(macos): replace depreciated AbsoluteToNanoseconds (#1986)
Co-authored-by: Cameron Gutman <2695644+cgutman@users.noreply.github.com>
2024-01-05 23:28:50 -05:00
Cameron Gutman a08e2b3de6 Add comments clarifying AVBufferRef usage and ownership 2023-10-04 22:36:16 -05:00
Cameron Gutman c56ad91693 Implement zero-copy 8/10 bit encoding for macOS 2023-10-04 22:36:16 -05:00
Cameron Gutman e535706a09 Fix CVPixelBuffer/CMSampleBuffer ownership issues 2023-10-04 22:36:16 -05:00
Cameron Gutman ca041f2934 Use AVVideoScalingModeResizeAspect instead of abusing extended pixels
This not only eliminates the hand-rolled aspect ratio correction (which didn't actually handle scaling),
but it also avoids us having to write to the GPU frames to add padding which improves performance.
2023-10-04 22:36:16 -05:00
Cameron Gutman a29d2e11ea Fix only capturing a single frame on macOS 2023-10-04 22:36:16 -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 22ab9948fa Pass the environment as a const reference so nobody else is tempted to modify it 2023-08-16 21:48:16 -05:00
ns6089 68fa43a61c Add standalone NVENC encoder 2023-08-13 07:01:09 -05:00
Cameron Gutman bd68aebe4c Implement pen and touch support for Windows 2023-08-03 19:16:09 -05:00
Cameron Gutman 50f353d183 Fix handling of gamepad feedback with multiple clients connected
We need to use the client-relative index rather than the global index
when sending feedback to the client.
2023-07-10 21:45:37 -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 fd77230964 Stub controller battery, touch, and motion packets 2023-07-10 21:45:37 -05:00
Cameron Gutman 1ef8cb1111 Send feature flags in RTSP DESCRIBE response 2023-07-10 21:45:37 -05:00
Casey Korver 881af5b566 Correct typos in logging 2023-07-08 19:56:56 -05:00
Casey Korver b1ffa8a6c5 Correct typos in comments 2023-07-08 18:56:27 -05:00
Cameron Gutman 11aedf56a2 Implement controller arrival metadata support 2023-06-30 20:47:29 -05:00
Cameron Gutman 8db0ad0cc6 Fix and enable -Wmaybe-uninitialized 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 292ef7eca3 Don't show a console window when opening a URL 2023-05-03 00:33:06 -05:00
Cameron Gutman c4c04694ac Restore the start menu shortcut as a proper launcher for the UI and service 2023-05-03 00:33:06 -05:00
Cameron Gutman 50f689ff80 Implement restart support for all platforms 2023-04-29 21:22:18 -05:00
Chase Payne 430a439698 Elevated Commands Redesign (#1123) 2023-04-29 00:22:01 -05:00
Cameron Gutman 4e04604696 Add support for keyboard input that is not normalized to US English layout
This is used by the soft keyboards on Android and iOS
2023-04-11 19:53:46 -05:00
ns6089 eed27d3c0a Decrease normal capture buffer to single image 2023-04-11 18:17:48 -05:00
ReenigneArcher 21eb4eb6dd clang: adjust formatting rules (#1015) 2023-03-27 21:45:29 -04:00
Brian Kendall 80aa61b6e4 Support compiling for earlier releases of macOS (#960) 2023-03-10 09:53:29 -05:00
Cameron Gutman 9181028bcf HDR prep work (#808) 2023-01-23 20:54:08 -06:00
Cameron Gutman 4b642f6e01 Implement horizontal scrolling and Sunshine detection for Moonlight (#793) 2023-01-21 17:42:08 -06:00
Lukas Senionis c81aa99c38 Fix child process spawning on linux (#773) 2023-01-19 00:40:12 -06:00
Cameron Gutman fa14b6ead7 Network performance optimizations (#771) 2023-01-16 18:17:04 -05:00
Cameron Gutman 44ad28ebf4 Fix a reference leak of hw_frames_ctx and prepare for QSV (#736) 2023-01-10 14:52:15 -05:00