Commit graph

280 commits

Author SHA1 Message Date
Cameron Gutman
fa3f822cf1 Rework handling of addresses to allow alternate HTTP ports 2021-07-02 23:34:54 -05:00
Cameron Gutman
5afab126b3 Refactor NvPairingManager, NvComputer, and NvHTTP to reduce passing of addresses 2021-07-02 17:14:48 -05:00
Cameron Gutman
bee8378795 Pass RTSP session URL to moonlight-common-c for dynamic ports 2021-07-02 01:51:08 -05:00
Cameron Gutman
2fbb320539 Refuse to stream if Moonlight is known incompatible with the host GFE version 2021-04-30 20:05:49 -05:00
Cameron Gutman
26c82ca72c Don't enable vsync on test decoders 2021-04-30 18:12:56 -05:00
Cameron Gutman
e62a268aac Avoid audio encryption on Steam Link for performance reasons 2021-04-23 19:49:03 -05:00
Cameron Gutman
140a9e5191 Enable audio stream encryption 2021-04-23 18:55:10 -05:00
Cameron Gutman
d6b314f573 Add option to build for embedded environments 2021-03-13 15:20:58 -06:00
Cameron Gutman
783a57ef89 Use separate thread for streaming on X11 and Wayland 2021-03-07 12:15:42 -06:00
Cameron Gutman
87a7d2e45c Add setting to only capture system keys in full-screen 2021-02-27 16:47:38 -06:00
Cameron Gutman
b27ca993aa Add support for system key capture in windowed mode on macOS 2021-02-26 21:43:47 -06:00
Cameron Gutman
36dc0f3e3c Use mouse capture for Win32 instead of our global mouse state hack 2021-02-07 12:38:57 -06:00
Cameron Gutman
6dab251055 Don't overwrite window mode settings when switching between WM and non-WM environments 2021-02-07 10:49:29 -06:00
Cameron Gutman
e4df70cd56 Use the async connect thread on all platforms
It turned out that the cause of the random crashes was the threaded renderer
that we now turn off.
2021-02-06 15:14:15 -06:00
Cameron Gutman
11d274ff07 Fix X11 keyboard grab when starting in windowed mode 2021-01-15 19:32:38 -06:00
Cameron Gutman
f49d6e15a4 Fix clearing the wrong flag when activating mouse capture 2021-01-14 19:30:30 -06:00
Cameron Gutman
7172cfd889 Properly handle multiple window event flush barriers in flight at once
Fixes streaming on macOS Mojave without Metal support
2021-01-14 19:28:21 -06:00
Cameron Gutman
8e790c4745 Use real full-screen on macOS when capturing keys 2021-01-12 19:57:01 -06:00
Cameron Gutman
7020749987 Change mute on minimize to mute on focus loss
Minimization doesn't always happen on focus loss in full-screen mode,
so it could lead to unpredictable behavior.
2021-01-09 17:56:23 -06:00
Cameron Gutman
2d62d090df Use a barrier to ensure we don't flush important window events 2021-01-09 17:51:25 -06:00
Cameron Gutman
a11f623b17 Add option to mute audio on minimize and background gamepad input
Fixes #461
2020-12-25 15:32:11 -06:00
Cameron Gutman
47cad71fcd Add special error text for an early termination 2020-12-24 11:24:01 -06:00
Cameron Gutman
c414e1a168 Display the failing ports when the connection fails 2020-12-23 13:56:15 -06:00
Cameron Gutman
22bebb6bbc Maxwell 2 doesn't support 8K HEVC encoding 2020-12-22 18:57:45 -06:00
Cameron Gutman
6e7a42065c Translation updates and refactoring 2020-11-21 13:15:54 -06:00
Cameron Gutman
18654cb011 Work around QSGRenderThread crash on Wayland 2020-09-07 23:07:31 -07:00
Cameron Gutman
3e9781033a Create windows with SDL_WINDOW_METAL on macOS
This prevents the window from being recreated when initializing a Metal renderer.
2020-09-05 14:06:58 -07:00
Cameron Gutman
5755afc4ea Fix app window not hiding when streaming starts 2020-09-04 22:38:54 -07:00
Cameron Gutman
14ccc38f4c Fix certain CLI options not overriding GUI preferences. Fixes #435 2020-08-30 01:38:26 -07:00
Cameron Gutman
2e87f5ff85 Add warning if no key frames can be received in 10 seconds 2020-08-29 21:02:22 -07:00
Cameron Gutman
d3949806f5 Move connection establishment to a separate thread to keep the UI responsive 2020-08-10 22:21:54 -07:00
Cameron Gutman
b81392b818 Add an option to disable the automatic connection testing 2020-08-08 18:29:36 -07:00
Cameron Gutman
ec17623400 Test for blocked ports when a stream fails 2020-08-08 17:59:26 -07:00
Cameron Gutman
ab5025efbf Ignore mouse events outside the video region 2020-07-12 15:06:36 -07:00
Cameron Gutman
02cfd8d978 Revert "Disable SOPS for streams over 60 FPS for GFE 3.20.3"
This reverts commit d6b5c5f63e.
2020-05-25 18:46:34 -07:00
Cameron Gutman
b4548c1af2 Flush all window events after SDL_CreateRenderer() 2020-05-12 18:41:36 -07:00
Cameron Gutman
fc9871b075 Delay mouse capture until after SDL_RecreateWindow() has been called 2020-05-09 19:48:13 -07:00
Cameron Gutman
0428bc8fe3 Generate synthetic mouse button up if the mouse has left the window and the button is raised 2020-05-07 19:26:02 -07:00
Cameron Gutman
51c4ecc879 Revert "Partially unrevert 05e82c24 for macOS which still needs it"
This reverts commit 080421f2fb.
2020-05-06 21:41:57 -07:00
Cameron Gutman
080421f2fb Partially unrevert 05e82c24 for macOS which still needs it 2020-05-06 21:18:23 -07:00
Cameron Gutman
8cc61ca8b8 Use SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH to get click events on focus gain 2020-05-06 20:43:41 -07:00
Cameron Gutman
417aa2815c Add a friendly error message when no video traffic is received 2020-05-01 21:28:48 -07:00
Cameron Gutman
d8270dfb6a Capture mouse by default on debug builds too 2020-05-01 18:43:54 -07:00
Cameron Gutman
96e6750f9c Don't confine the cursor to the full-screen window when not capturing input 2020-04-28 20:37:00 -07:00
Cameron Gutman
dbafd05a4e Store a pointer to the window inside the input handler 2020-04-28 20:24:27 -07:00
Cameron Gutman
7283bb046b Disable initial mouse capture on XWayland 2020-04-26 19:33:25 -07:00
Cameron Gutman
f749b38aa2 Warn when starting a game with remote desktop mouse mode enabled 2020-04-25 23:50:12 -07:00
Cameron Gutman
f926ad9b5e Fix inverted capture-by-default setting 2020-04-25 15:41:45 -07:00
Cameron Gutman
68acf969f2 Move focus handling into the input code 2020-04-25 15:37:33 -07:00
Cameron Gutman
65d53e800b Confine the cursor to the window in full-screen exclusive mode 2020-04-25 13:15:14 -07:00
Cameron Gutman
d1823dd6e1 Capture the mouse by default always on release builds and in absolute mode for debug builds 2020-04-25 13:01:15 -07:00
Cameron Gutman
d6b5c5f63e Disable SOPS for streams over 60 FPS for GFE 3.20.3 2020-04-12 11:39:25 -07:00
Cameron Gutman
ef6dfa6d91 Add basic support for absolute mouse input 2020-04-11 21:28:11 -07:00
Cameron Gutman
15342190fa Make audio debug logs more readable 2020-04-04 12:53:03 -07:00
Cameron Gutman
c98ef6e8a9 Display a friendly error when trying to stream over 4K with H.264 2020-04-04 12:47:44 -07:00
Cameron Gutman
cd7649a666 Add 7.1 surround sound support for SDL audio output 2020-04-03 00:12:52 -07:00
Cameron Gutman
847cc0a38a Migrate to the new audio configuration macros 2020-03-31 21:36:16 -07:00
Cameron Gutman
296e22d3ca Remove the Wayland post-cleanup hack
It seems to do more harm than good on Fedora 32, causing deadlocks
when the stream is closed. The original bug it was trying to avoid
seems to have already been fixed.
2020-03-28 00:46:04 -07:00
Cameron Gutman
953858b0e7 Add workaround for Steam Link graphics bug. Fixes #254 2020-03-18 22:26:15 -07:00
Cameron Gutman
faa16b207c Implement a more reliable mouse capture workaround for GNOME+Wayland 2020-03-14 00:33:53 -07:00
Cameron Gutman
816cec8f5c Remove deprecated listener callbacks 2020-02-25 00:31:05 -08:00
Cameron Gutman
2394dfe88a Change errorCode to an int type 2020-02-24 23:03:34 -08:00
Cameron Gutman
dfc0d2303b Fix incorrect #endif location 2020-02-24 20:55:07 -08:00
Cameron Gutman
598a48ec50 Remove the Wayland mouse capture hack that is not necessary on SDL 2.0.11 2020-02-24 20:33:33 -08:00
Cameron Gutman
9f41e98e3f Remove RPi hacks that are not necessary on SDL 2.0.11 2020-02-24 19:55:22 -08:00
Cameron Gutman
979de190dc Cap resolution options at 1080p on Steam Link and Raspberry Pi due to hardware limitations 2020-02-23 00:43:43 -08:00
Cameron Gutman
e790b0761e Add another RPi hack to fix mouse capture in full-screen in LXDE 2020-02-09 12:00:30 -08:00
Cameron Gutman
57a1c5eb76 Disable the window mode options for always full-screen renderers 2020-02-09 11:35:05 -08:00
Cameron Gutman
7aff148e9f Add --packet-size command-line option 2020-01-21 19:10:10 -08:00
Cameron Gutman
91be6c8028 Only hide Qt's mouse cursor on EGLFS 2020-01-15 18:23:02 -08:00
Cameron Gutman
4abebe3aec Hide the Qt cursor when streaming 2020-01-11 02:06:08 -08:00
Cameron Gutman
1313c7b3bf Enable HDR as an experimental option 2019-12-30 18:05:43 -06:00
Cameron Gutman
8b9b96f422 Only enable slicing when CPU decoding 2019-12-14 15:34:48 -08:00
Cameron Gutman
160684f23e Allow decoders to choose a desired colorspace 2019-12-14 15:25:56 -08:00
Cameron Gutman
88930a9de4 Optimize decoder capability checking 2019-12-14 15:20:44 -08:00
Cameron Gutman
5e2f32e3eb Force remote streaming mode if connecting through a VPN 2019-12-01 21:50:36 -08:00
Cameron Gutman
2f0a6db414 Add hacks for SDL+Mutter interaction bugs 2019-09-29 21:05:31 -07:00
Cameron Gutman
7acf91883a Rework audio renderer selection to fall back and treat ML_AUDIO as a hard selection 2019-07-26 12:50:45 -04:00
Cameron Gutman
ea8b905f02 Missed a call to SDL_SetRelativeMouseMode 2019-07-02 22:39:09 -07:00
Cameron Gutman
16b301236b Add a mouse capture fallback if SDL_SetRelativeMouseMode() fails 2019-07-02 22:17:38 -07:00
Cameron Gutman
0a5051f959 Add Discord Rich Presence integration for Windows 2019-06-29 17:40:30 -07:00
Cameron Gutman
82b6b60b31 Take advantage of SDL 2.0.10 bugfixes and new APIs. Fixes #133 2019-06-29 16:08:04 -07:00
Cameron Gutman
524cc97f51 Use borderless windowed mode when toggling to full-screen from an initially windowed stream. Fixes #248 2019-06-23 13:29:57 -07:00
Cameron Gutman
01254f67f0 Allow audio renderers to specify capabilities 2019-06-23 12:49:37 -07:00
Cameron Gutman
2682829bd3 Fix Steam Link audio latency cap 2019-05-20 23:57:27 -07:00
Cameron Gutman
674220087f Finish mouse emulation support with overlay and bugfixes 2019-05-19 13:10:42 -07:00
Cameron Gutman
dfb006d264 More Steam Link performance optimizations 2019-04-28 15:57:57 -07:00
Cameron Gutman
4f2fe5c988 Reduce polling rate on SL due to CPU performance limitations 2019-04-28 13:04:58 -07:00
Cameron Gutman
082e330f9d Partially revert fa4c0e82bd because we'll need Qt initialized first to detect Wayland 2019-04-21 17:43:38 -07:00
Cameron Gutman
25e5175c54 Refactor parameter passing to decoders and split backend/decode-only and frontend renderers 2019-04-11 22:27:20 -07:00
Cameron Gutman
859a5a5e0c Allow a renderer to opt-out of the render thread and use that for SDL on OGL 2019-04-09 21:46:14 -07:00
Cameron Gutman
905a0cdac1 Make GFE-reported errors more clear 2019-04-07 12:21:05 -07:00
Cameron Gutman
7c3f09c70c Update poor connection behavior 2019-04-06 12:25:35 -07:00
Cameron Gutman
fa4c0e82bd Only initialize the video subsystem once per launch 2019-03-23 17:46:42 -07:00
Cameron Gutman
c0bf8b9c25 Remove redundant initializtion of SDL video 2019-03-23 14:26:08 -07:00
Cameron Gutman
2bf3f1b94b Refactor Steam Link support files 2019-03-22 22:51:08 -07:00
Cameron Gutman
f624a1817e Add preference and tweak connection warning 2019-03-18 20:21:52 -07:00
Cameron Gutman
c75b9c9221 Add connection status overlay for DXVA2 and SDL 2019-03-17 15:08:21 -07:00
Cameron Gutman
052194714a Adjust thread priorities based on recent refactoring 2019-03-17 00:45:31 -07:00
Cameron Gutman
2c09875556 Fix input handler cleanup on startup failure 2019-02-16 01:39:31 -08:00