ReenigneArcher
3cd3d261e9
Update macOS documentation
2022-06-28 19:16:24 -04:00
Anselm Busse
2b450839a1
Initial support for MacOS
...
This commit introduces initial support for MacOS as third major host platform.
It relies on the VideoToolbox framework for audio and video processing, which
enables hardware accelerated processing of the stream on most platforms.
Audio capturing requires third party tools as MacOS does not offer the
recording of the audio output like the other platforms do. The commit enables
most features offered by Sunshine for MacOS with the big exception of gamepad
support. The patch sets was tested by a few volunteers, which allowed to remove
some of the early bugs. However, several bugs especially regarding corner
cases have probably not surfaced yet.
Besides instructions how to build from source, the commit also adds a Portfile
that allows a more easy installation. After available on the release branch,
a pull request for the Portfile in the MacPorts project is planned.
Signed-off-by: Anselm Busse <anselm.busse@outlook.com>
2022-02-26 10:18:00 +01:00
loki-47-6F-64
e287404992
Handle acquiring display names based on encoder
2021-09-25 14:44:38 +02:00
loki-47-6F-64
bb912786bd
Added NvFBC on Linux
2021-09-22 11:36:59 +02:00
loki
91a6e55f74
Fix segfault when connecting multiple controllers at the same ttime
2021-09-13 20:24:04 +02:00
loki
fdb7754043
Attempt to render cursor when X11 is available
2021-08-15 20:38:30 +02:00
loki
6c11e9f27d
Switch monitors on Windows
2021-07-29 17:27:22 +02:00
loki
2af179630a
Switch monitors based on keyboard shortcuts
2021-07-29 16:48:03 +02:00
loki
87b2b708f8
Update Linux build for callback code
2021-07-26 20:56:32 +02:00
loki
7ddf8bbe94
Capturing images by callback, rather than pulling
2021-07-26 18:09:07 +02:00
loki
4b043e31fe
Support ds4 controller on Windows
2021-07-18 15:32:26 +02:00
loki
1fda8f6219
Support Rumble on Windows
2021-07-18 11:05:34 +02:00
Cameron Gutman
971c784f14
Add basic NVENC support on Linux
...
We're not offloading scaling and YUV conversion from the CPU yet,
so the gains aren't as high as one of the fully accelerated
backends like Windows NVENC or Linux VAAPI.
Still, offloading the H.264/HEVC encoding itself is an improvement
over doing everything on the CPU.
2021-07-09 08:13:05 -05:00
loki
cf7eb14573
Remove redundent thread creation
2021-06-26 15:48:07 +02:00
loki
27d4f6063f
refactored publish.cpp from C code to C++ code
2021-06-26 13:32:14 +02:00
loki
b67600962a
Fix incorrect scaling for absolute mouse coordinates
2021-06-24 20:53:19 +02:00
loki
029194cb60
Fix incorrect abs mouse coordinates on Linux when scaling to different aspect ratio
2021-06-23 14:05:09 +02:00
loki
64a6c1419b
store state in .config/sunshine on Linux
2021-06-16 11:26:54 +02:00
loki
f2863cceb7
Properly scale image on VAAPI
2021-06-05 12:25:19 +02:00
loki
bdb9ed9001
Perform image format conversion for VAAPI on the gpu
2021-06-04 21:12:06 +02:00
loki
ff1ea1a63e
Use VAAPI for hardware encoding on Linux
2021-05-29 16:25:37 +02:00
loki
9f6b4ed93b
Work around weird mapping for audio channels
2021-05-25 18:55:29 +02:00
loki
ba07fd510e
Upmix/Downmix audio
2021-05-22 19:51:01 +02:00
loki
2fb5f8a7d0
Add config option for virtual_sink on windows
2021-05-21 14:28:24 +02:00
loki
0868d898f6
Create virtual audio sinks on Linux
2021-05-19 18:11:06 +02:00
loki
2b04e1428c
Select audio output on Linux
2021-05-18 13:36:12 +02:00
loki
3d8a99f541
clang-format
2021-05-17 21:21:57 +02:00
loki
33a330fd6c
Downmix surround 5.1 to stereo
2021-05-14 21:44:20 +02:00
loki
2e9a1cfbba
absolute mouse coordinates regardless of the number of monitors attached on Linux
2021-05-11 23:51:45 +02:00
loki
1d84c8f9ce
Correct dimensions for touchscreen when single monitor attached
2021-05-11 23:30:56 +02:00
loki
41cc9a3e80
absolute mouse coordinate support for single monitor on Linux
2021-05-11 18:01:56 +02:00
loki
127b5501d9
Render luma onto nv12 surface
2021-04-30 20:01:15 +02:00
loki
70bf11ec27
Increase accuracy of fps for nvenc and proper pixel format
2020-04-19 00:10:47 +03:00
loki
0b1a69a067
Ensure it compiles on Linux again
2020-04-15 21:07:00 +02:00
loki
525e8b3c6d
Refactor video.cpp
2020-04-15 19:16:20 +02:00
loki
679f74e53c
Fix multicasting for nvenc
2020-04-12 02:33:17 +03:00
loki
7edaa0cce0
Encode with nvenc smoothly
2020-04-10 15:39:50 +03:00
loki
c21038af88
Encode video with nvenc
2020-04-08 02:15:08 +03:00
loki
afbca0f6cd
initialize nvenc
2020-04-06 23:15:03 +03:00
loki
f2636b163e
General structure complete
2020-04-02 20:13:44 +02:00
loki
3ceb9b37a0
Reinitialize the video encoder in addition to the capturing device
2020-03-31 21:18:33 +02:00
loki
94181fd047
Prevent unnecessary copies of entire frames on Windows
2020-03-27 21:57:29 +01:00
loki
55705af922
Prepare for hardware encoders
2020-03-25 10:51:32 +01:00
loki
92f51622cc
Map session to gamepads
2020-03-15 21:22:42 +01:00
loki
da246d6417
Fix stopping all streams when just one should stop
2020-02-12 11:28:27 +01:00
loki
5cd0fd76bf
Compile for Multicasting
2020-02-08 16:26:38 +01:00
loki
753f57c71b
Remove dependency on a library for a single function
2020-02-01 10:25:37 +01:00
loki
b10c971374
Dynamically plug and unplug emulated gamepads
2020-01-31 20:57:34 +01:00
loki
1d9ccb211e
Refactor gamepad device creation
2020-01-25 20:46:14 +01:00
loki
b4d3748d74
Multi controller support for Linux
2020-01-25 01:05:43 +01:00