Cameron Gutman
8302187dee
Remove superfluous availability checks
2022-01-06 23:05:18 -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
0d70bd9ac0
Add (untested) VAAPI support for CCS planes on Tiger Lake
...
See https://github.com/intel/media-driver/issues/1210
2022-01-05 21:09:08 -06:00
Cameron Gutman
8f63d59b81
Correct comment to avoid confusion
2022-01-04 22:00:46 -06:00
Cameron Gutman
0395c0cc95
Revert "Revert "Don't attempt to use direct rendering without DRM master""
...
The correct fix was 154b5b6ded
.
This reverts commit 8219dbef6f
.
2022-01-04 21:59:02 -06:00
Cameron Gutman
72065412a3
Don't allow copyback rendering on RPi by default
2022-01-04 20:35:17 -06:00
Cameron Gutman
67c801c4e7
Use av_frame_copy_props() to copy metadata
2022-01-02 17:38:58 -06:00
Cameron Gutman
f7c8ad4c5a
Fail render frame test for unsupported pixel formats
2022-01-02 15:03:49 -06:00
Cameron Gutman
61092b34de
Properly handle mismatched pitch between frame and texture
2022-01-02 14:35:14 -06:00
Cameron Gutman
1e9e96fb8c
Small code cleanup for hwframe code
2022-01-02 13:58:37 -06:00
Cameron Gutman
17d1ced07c
Add support for mapping hwframes
2022-01-02 13:41:36 -06:00
Cameron Gutman
a26ced04ff
Add support for negotiating non-default transfer formats for hwframes
2022-01-01 22:15:43 -06:00
Cameron Gutman
154b5b6ded
Fix fallback to SDL read-back for DRM contexts when !HAVE_EGL
2022-01-01 20:44:29 -06:00
Cameron Gutman
8219dbef6f
Revert "Don't attempt to use direct rendering without DRM master"
...
We support indirect rendering via SDL, even if EGL is unavailable.
This reverts commit 6145913068
.
2022-01-01 20:37:04 -06:00
Cameron Gutman
3da724e76a
Fix and enhance the Full KMS check
2021-12-28 17:13:54 -06:00
Cameron Gutman
1616d237ae
Avoid h264_v4l2m2m by default on RPi builds
2021-12-28 16:28:04 -06:00
Cameron Gutman
d8acf24af0
Don't use SdlRenderer with MMAL
2021-12-19 20:58:50 -06:00
Cameron Gutman
97412b3c79
Display warnings about Full KMS mode and HEVC on the Pi 4
2021-12-19 20:33:48 -06:00
Cameron Gutman
6145913068
Don't attempt to use direct rendering without DRM master
2021-12-19 20:32:15 -06:00
Cameron Gutman
e56bb6785f
Change display mode when using KMSDRM backend
2021-12-18 21:07:35 -06:00
Cameron Gutman
00d3530f64
Don't try VDPAU on XWayland by default
2021-12-15 20:49:12 -06:00
Cameron Gutman
1e6ca18193
Fix error checking in decode test
2021-12-15 17:33:28 -06:00
Cameron Gutman
5a32992497
Try to learn if decoders support retrying avcodec_receive_frame()
2021-12-14 20:41:27 -06:00
Cameron Gutman
36e0468a99
Optimize CUDA GL interop and provide fallback
2021-12-13 21:41:00 -06:00
Cameron Gutman
9999ded933
Quiet down log spam for asynchronous decoders
2021-12-11 18:37:39 -06:00
Cameron Gutman
80128e8293
Properly support asynchronous decoders that return multiple frames at a time
2021-12-11 18:15:49 -06:00
Cameron Gutman
0870dd15a8
Fix improper null termination when stripping clipboard text
2021-12-10 02:04:19 -06:00
Cameron Gutman
54cfc46500
Fix VDPAU on X11
2021-12-06 20:42:51 -06:00
Cameron Gutman
c09559ade5
Don't try to initialize VDPAU on Wayland
2021-12-06 19:38:28 -06:00
Cameron Gutman
3e9aea1f7a
Optimize CUDA support to avoid roundtrip to CPU memory
2021-12-06 18:23:40 -06:00
Cameron Gutman
97a09e0571
Send UTF-8 clipboard text directly rather than emulating keystrokes
2021-12-03 11:32:58 +03:00
Cameron Gutman
c7121516c1
Remove workaround for window occlusion issue fixed in SDL 2.0.18
2021-11-29 23:13:50 +03:00
Cameron Gutman
56a5fbf63b
Fix get_buffer2() thread-safety warning with FFmpeg 4.4
2021-11-29 19:45:28 +03:00
Cameron Gutman
3fe6e18609
Use SDL_GameControllerHasRumble() on SDL 2.0.18
2021-11-27 17:06:02 +03:00
Cameron Gutman
47f3f30d83
Add high resolution scrolling support with SDL 2.0.18
2021-11-27 06:59:16 +03:00
Cameron Gutman
085a904970
Fix false warning when building without libva-x11 or libva-wayland
2021-11-25 17:52:54 +03:00
Cameron Gutman
0fa7723f51
Fix build without libva-x11
2021-11-25 17:51:08 +03:00
Cameron Gutman
4de3aa96b6
Add YUV colorspace and color range attributes to EGLImage
2021-11-19 01:15:33 -06:00
Cameron Gutman
1193943228
Re-add comment on color_range comparison
2021-11-19 00:56:46 -06:00
Cameron Gutman
2959faca0c
Fix colorspace transitions in EGLRenderer
2021-11-19 00:54:59 -06:00
Cameron Gutman
d0df4fa3a0
Fix handling of HDR colorspace transitions in VT renderer
2021-11-19 00:28:15 -06:00
liyu
0a301dd2f9
enables H265 HDR option and adds PQ transforeFunction to render HDR stream on macOS 10.13+
2021-11-18 23:42:44 -06:00
Cameron Gutman
43e3679297
Revert "Disable the EGL render thread on Wayland"
...
This reverts commit dcc567ebda
.
2021-11-15 21:33:28 -06:00
Cameron Gutman
0455063854
Fix driver version check for Intel's updated version schema in 100 and newer drivers
...
Fixes #673
2021-11-13 20:44:10 -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
425efe3d72
Switch to SDL audio backend by default on Windows and macOS
2021-08-15 14:58:29 -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
dcc567ebda
Disable the EGL render thread on Wayland
2021-07-31 17:24:18 -05:00
Cameron Gutman
8159e07427
Ensure our GL context is always current
2021-07-28 20:31:22 -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
8048938158
Fix Linux build
2021-06-12 16:12:46 -05:00
Cameron Gutman
3689c7f982
Don't enable input capture if the window can't be foregrounded
2021-06-12 13:59:13 -05:00
Cameron Gutman
56119eebae
Adapt to constification of AVCodec in FFmpeg master
2021-05-24 23:27:31 -05:00
Cameron Gutman
c17c8e2a2c
Remove receive time from performance overlay
...
It is largely superseded by network latency
2021-05-22 13:59:14 -05:00
Cameron Gutman
e45a60f2ed
Save RTT in VIDEO_STATS so it can be logged on disconnect
2021-05-22 13:57:12 -05:00
Cameron Gutman
581c9438ca
Add network latency to stats overlay
2021-05-15 14:40:31 -05:00
Cameron Gutman
8fcef63890
Don't waste time performing extra decoder initializations for EGL when it's not supported
2021-04-30 20:52:09 -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
b50e5ed7e6
Fix keyboard grab on X11
...
Fixes #584
2021-04-30 18:17:15 -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
02e3f0e71b
Add missing declaration
2021-03-22 23:32:00 -05:00
Cameron Gutman
74bf981f3d
Ensure hwframe read-back works in SDL renderer
2021-03-22 23:15:14 -05:00
Cameron Gutman
32f0678692
Only pass modifiers array if DRM_MODE_FB_MODIFIERS is set
2021-03-22 22:52:06 -05:00
Cameron Gutman
e74753bec1
Allow fallback from EGL to direct on EGLImage export failure
2021-03-22 22:51:29 -05:00
Cameron Gutman
4a8c9ad17f
Add support for 4-plane frames
2021-03-22 00:46:04 -05:00
Cameron Gutman
0c6c882f50
Fix attribute buffer overflow for fully planar YUV formats
2021-03-22 00:14:06 -05:00
Cameron Gutman
579f25c1ba
Add missing EGL_DMA_BUF_PLANE2 definitions
2021-03-22 00:02:03 -05:00
Cameron Gutman
d5eb5c8816
Fix build with EGL 1.4 headers
2021-03-21 23:59:35 -05:00
Cameron Gutman
26d04b5f9c
Render DRM-PRIME frames as opaque images
...
We can't always assume they are NV12. Even if they _are_ NV12,
they may have DRM format modifiers that are incompatible with
simply assuming linear Y and UV buffers (such as tiling).
2021-03-21 23:23:12 -05:00
Cameron Gutman
a0b9684504
Continue refactoring for non-NV12 support in EGLRenderer
2021-03-21 21:43:57 -05:00
Cameron Gutman
402b6d1f0c
Begin refactoring for non-NV12 support in EGLRenderer
2021-03-21 19:20:52 -05:00
Cameron Gutman
e87a5fa354
Pass DRM format modifiers to FB creation
2021-03-21 17:54:10 -05:00
Cameron Gutman
98672c8e44
Allow remote desktop mouse mode in embedded mode
...
It can be easier to control the mouse on the desktop that way
2021-03-13 16:58:58 -06:00
Cameron Gutman
d6b314f573
Add option to build for embedded environments
2021-03-13 15:20:58 -06:00
Cameron Gutman
955da6be30
Enable Gallium VAAPI driver on VAAPI 1.x
2021-03-13 14:37:13 -06:00
Cameron Gutman
783a57ef89
Use separate thread for streaming on X11 and Wayland
2021-03-07 12:15:42 -06:00
Cameron Gutman
d33ccce683
Hold a reference to the underlying DMA-BUFs until the next frame
2021-03-07 12:01:25 -06:00
Cameron Gutman
d722bf10b9
Don't use glFinish() with KMSDRM backend
2021-03-07 11:23:31 -06:00
Cameron Gutman
96f79688dd
Use av_packet_alloc() instead of av_init_packet()
...
sizeof(AVPacket) may be deprecated from ABI in the near future
2021-03-05 17:47:04 -06:00
Cameron Gutman
1ebb5fefb1
Address Clazy warnings
2021-03-02 18:14:15 -06:00
Cameron Gutman
164b3edd41
Fix viewport size on High DPI Wayland systems
...
Fixes #533
2021-03-01 22:47:14 -06:00
Cameron Gutman
b2aea9f8f0
Revert change to only fire special combos on key up
2021-02-28 15:06:46 -06:00
jmt-gh
6be7301e69
Stats overlay controller combo ( #495 )
...
* Update gamepad.cpp
add gamepad combo to toggle stats overlay
* typo fixes
2021-02-27 17:03:52 -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
28ecc6bcbf
Remove old Qt Multimedia audio renderer
2021-02-25 23:23:08 -06:00
Cameron Gutman
133cc5457d
Use SDL_CaptureMouse() on macOS and Linux too
2021-02-08 18:30:22 -06:00
Cameron Gutman
05e4c5b507
Move clipboard processing to a separate thread to avoid blocking the main thread during pastes
2021-02-07 17:18:35 -06:00
Cameron Gutman
8372717a09
Improve Unicode support for some common characters
2021-02-07 16:00:00 -06:00
Cameron Gutman
5f3f2a96fd
Improve detection of having no clipboard text
2021-02-07 13:53:03 -06:00
Cameron Gutman
b83c6f0c28
Add support for pasting clipboard text
2021-02-07 13:46:38 -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
93d21a0d1d
Fix EGLImage leak when not using a hwaccel backend
2021-02-06 17:59:05 -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
75b19a60c1
Fix build on macOS and keyboard grab bugs
2021-02-06 11:29:18 -06:00
Cameron Gutman
9fc921f49f
Use SDL's keyboard grab support now that it's been upstreamed
2021-02-05 00:13:20 -06:00
Cameron Gutman
36dd6c83e0
Fix assert failure when using v4l2m2m with EGL
2021-02-04 20:38:18 -06:00
Cameron Gutman
c3895f06c0
Fix handling of preferred/compatible pixel formats with EGLRenderer and VAAPI/DRM backends
2021-02-04 19:39:18 -06:00
Cameron Gutman
76e81fa651
Add windowed support for MMAL
2021-02-03 20:57:39 -06:00
Cameron Gutman
d63a1b0eb0
Handle custom hwaccel decoders
2021-02-02 19:45:22 -06:00
Cameron Gutman
4dffac3c78
Ask for NV12 buffers for DRMRenderer
2021-02-02 19:40:06 -06:00
Cameron Gutman
88391b0274
Use the decoder's supported pix_fmts to select a suitable renderer
2021-02-02 19:05:27 -06:00
Cameron Gutman
c3cea0238e
Fix build with old EGL 1.5 headers without EGL_EGL_PROTOTYPES
2021-01-31 21:42:56 -06:00
Cameron Gutman
5bf4266973
Fix build with old Mesa EGL headers
2021-01-31 18:41:53 -06:00
Cameron Gutman
ed57c54d06
Move EGL definitions into renderer.h to try to fix build on Armbian
2021-01-31 17:01:11 -06:00
Cameron Gutman
80137848dc
Add DMA-BUF export compatibility with EGL 1.4
2021-01-31 16:24:31 -06:00
Cameron Gutman
6a66b462ce
Allow DRMRenderer to be used for indirect rendering
2021-01-31 15:19:19 -06:00
Cameron Gutman
1e31f6fe77
Fix initialization of DRM backend with X running
2021-01-31 15:03:40 -06:00
Cameron Gutman
f173b3ff09
Attempt to fix AppImage and Steam Link build errors
2021-01-31 14:48:42 -06:00
Cameron Gutman
baffab62ce
Fix uninitialized variable warning
2021-01-31 12:58:19 -06:00
Cameron Gutman
dbfdc2fd14
Share DRM FD and GBM device with SDL
...
Depends on https://hg.libsdl.org/SDL/rev/d75deb75464a
2021-01-30 21:11:52 -06:00
Cameron Gutman
a97912e297
Print the error when querying EGL_EXTENSIONS fails
2021-01-30 20:13:20 -06:00
Cameron Gutman
cedba501ee
Query the frontend renderer to determine fullscreen-only limitations
2021-01-30 17:57:34 -06:00
Cameron Gutman
ac947d3bda
Add EGLImage export support to DRMRenderer
2021-01-30 17:52:23 -06:00
Cameron Gutman
243ba371b3
Initialize a DRM hardware context for hwaccel usage
2021-01-30 16:33:58 -06:00
Cameron Gutman
1cd66419d4
Remember desired cursor hide state
...
Fixes #511
2021-01-30 11:08:01 -06:00
Cameron Gutman
541784382a
Add support for AV_HWDEVICE_TYPE_DRM hwaccels
2021-01-30 10:00:01 -06:00
Cameron Gutman
2a7fae2c82
Revert "Add logic to try LibreELEC's out-of-tree stateless V4L2 decoders"
...
v4l2request is a hwaccel not a decoder
This reverts commit ed3a5448b1
.
2021-01-29 20:30:01 -06:00
Cameron Gutman
ed3a5448b1
Add logic to try LibreELEC's out-of-tree stateless V4L2 decoders
2021-01-29 20:19:27 -06:00
Cameron Gutman
2eb4769bbc
Only trigger special key combos when all keys are up
2021-01-24 13:02:42 -06:00
Cameron Gutman
02019000df
Ctrl+Alt+Shift+Down Arrow is a reserved key combo on GNOME, so switch to Ctrl+Alt+Shift+D
2021-01-21 23:05:48 -06:00
Cameron Gutman
d38ff5759a
Add Ctrl+Alt+Shift+Down Arrow shortcut to minimize
2021-01-21 19:39:17 -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
76b4922bbe
Add toggle for system key capture
2021-01-12 20:05:18 -06:00
Cameron Gutman
8e790c4745
Use real full-screen on macOS when capturing keys
2021-01-12 19:57:01 -06:00
Cameron Gutman
c331b180cb
Fix modifier keys being stuck down after key combos when capturing system keys on Windows
2021-01-12 18:40:00 -06:00
Cameron Gutman
30e3b02867
Start implementation of system key capture
2021-01-11 23:43:32 -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
af0921c5b2
Set new hints present in SDL 2.0.15 development builds
2021-01-08 18:14:49 -06:00
Cameron Gutman
137454beff
Use SDL_UpdateNVTexture on SDL 2.0.15+
2021-01-08 18:05:27 -06:00
Cameron Gutman
a0cc93b813
Fix EGL renderer build on SDL 2.0.9 and earlier
2021-01-03 14:24:30 -06:00
Cameron Gutman
390544cd9a
Charge time spent in the decode unit queue to the decoder rather than receive time
2020-12-31 16:10:01 -06:00
Cameron Gutman
8ff9d8123d
Switch VT renderer pacing logic to be enabled by the frame pacing checkbox
2020-12-29 20:26:56 -06:00
Cameron Gutman
bc39c721e3
Add a key combo to toggle cursor display in remote desktop mouse mode
2020-12-26 19:47:00 -06:00
Cameron Gutman
5096ff6496
Add options to invert scroll direction and swap gamepad buttons
...
Fixes #463
Fixes #467
2020-12-25 22:21:20 -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
3defccb6e2
Work around poor video scaling quality on Qualcomm GPUs
2020-12-21 21:00:55 -06:00