Cameron Gutman
6972573a6e
Add pointer lock key combo
...
Fixes #737
2022-03-29 18:26:09 -05:00
Cameron Gutman
ce2a01fc59
Allow the screensaver toggle to work even if running on an embedded platform
2022-03-16 21:57:03 -05:00
Cameron Gutman
97d8274911
Add option to allow PC to sleep while streaming
2022-03-16 21:48:56 -05:00
Cameron Gutman
e078a8b7b6
Don't recreate the decoder while the window is minimized
...
Fixes #726
2022-03-06 15:21:43 -06:00
Cameron Gutman
a6395b9025
Fix short UI hang when manually stopping the stream after losing connection with the host
2022-03-06 13:11:36 -06:00
Cameron Gutman
4ae39f2bd5
Properly synchronize rumble with gamepad removal
2022-03-05 13:32:38 -06:00
Cameron Gutman
ef037e18d0
Add colorspace and color range override options
2022-02-17 00:26:56 -06:00
Cameron Gutman
b96cb1abaf
Remove per-app HDR support check
...
It doesn't seem to make a difference anymore whether it's supported or not.
GFE seems happy to enter HDR mode anyway.
2022-02-07 20:02:19 -06:00
Cameron Gutman
1cbdd0e675
Display the HDR option if the platform has a decoder that supports it
2022-01-29 00:59:04 -06:00
Cameron Gutman
254526a213
Plumb HDR mode information to the decoders
2022-01-28 22:10:50 -06:00
Cameron Gutman
e64b15d2a7
Rework how we deal with window re-creation for EGLRenderer
...
Previously we opted to just lie to SDL and tell it that the current
GL context is actually GLES 3.0 when it wasn't. This meant that
we avoided our window being recreated for GLES usage on Wayland
and KMSDRM, but that meant our 10-bit color change didn't apply
either. I suspect this hackery is what led EGLRenderer to get
stuck in a state where SDL_CreateRenderer() always failed.
Now SDL will recreate our window once to configure a compatible GL
API for our renderer. If that fails, we'll move on to a different
renderer (which may recreate the window again).
2022-01-27 21:49:03 -06:00
Cameron Gutman
ee5918cf4e
Revert "Add workaround for duplicate size changed events on Wayland"
...
Skipping size changed events can cause EGLRenderer to get stuck in
a state where it can't reset itself properly. This seems to happen
consistently when starting a maximized stream then transitioning
to full-screen.
This reverts commit e1b3f90f8b
.
2022-01-22 12:29:44 -06:00
Cameron Gutman
f0659b4f3c
Fix random crash on stream start with renderers that require test frames
2022-01-18 18:19:28 -06:00
Cameron Gutman
859d8b96a7
Don't use duplicate resize workaround on SDL 2.0.21+
2022-01-17 19:25:43 -06:00
Cameron Gutman
49892b3ce8
Only use SDL_WaitEventTimeout() on SDL 2.0.18+
2022-01-17 16:59:45 -06:00
Cameron Gutman
d6cfbdb273
Rewrite FFmpeg decoder to use pull model
...
This allows us to keep asynchronous decoders like MMAL and V4L2M2M fed
while we're waiting for output frames. Behavior for synchronous decoders
should be identical.
Continuing to feed new data while waiting for output frames is crucial for
acceptable performance on 1080p video on the Raspberry Pi using V4L2M2M,
since it allows the decode and copy operations to be pipelined.
2022-01-17 15:06:12 -06:00
Cameron Gutman
8a27fa7bb5
Convert NeedsIdr member into an atomic variable with a getter
2022-01-17 14:30:12 -06:00
Cameron Gutman
e1b3f90f8b
Add workaround for duplicate size changed events on Wayland
2022-01-14 23:36:21 -06:00
Cameron Gutman
5612e9864e
Fix handling of some validation scenarios
...
- HEVC forced with no host or client hw support
- H.264 forced with no client hw support
- Client has hw HEVC only and host only supports H.264
- Client has no hw decode at all
2022-01-06 23:15:19 -06:00
Cameron Gutman
77d07c7c4d
Fix incorrect error message when only HEVC decode is available but HEVC encode is not
2022-01-06 22:08:43 -06:00
Cameron Gutman
b2265080fd
Allow HEVC decoders to satisfy hardware decoding check if H.264 is unavailable
2022-01-06 22:07:31 -06:00
Cameron Gutman
e56bb6785f
Change display mode when using KMSDRM backend
2021-12-18 21:07:35 -06:00
Cameron Gutman
d2c9f058f8
Add names to session threads
2021-10-24 16:22:49 -05:00
Cameron Gutman
4873862d16
Use SDL_WaitEventTimeout() on SDL 2.0.16
2021-08-15 15:16:51 -05:00
Cameron Gutman
666dc13c01
Use SDL's new support for keyboard grab on macOS
2021-08-15 14:54:26 -05:00
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