Commit graph

781 commits

Author SHA1 Message Date
Cameron Gutman
b9a6fb1fe5 Add workaround for AVSampleBufferDisplayLayer colorspace and artifacting issues
Fixes #493
2022-01-15 14:44:08 -06:00
Cameron Gutman
4b6194e15e Add chroma location buffer attachment 2022-01-15 12:17:31 -06:00
Cameron Gutman
e1b3f90f8b Add workaround for duplicate size changed events on Wayland 2022-01-14 23:36:21 -06:00
Cameron Gutman
31eddd8da0 Remove superfluous colorspace check 2022-01-13 01:19:17 -06:00
Cameron Gutman
abf2a14ee6 Handle colorspace changes in SDL renderer 2022-01-13 01:16:09 -06:00
Cameron Gutman
08175de069 Fix incorrect colorspace in MMAL renderer 2022-01-09 17:04:38 -06:00
Cameron Gutman
808933cd70 Use DT files to get status of FKMS and rpivid 2022-01-09 16:44:20 -06:00
Cameron Gutman
384dd2adab Prefer a render node in indirect rendering mode 2022-01-08 18:39:12 -06:00
lyashenko.v
1046d264d8 Fixed not working frame pacing on macOS 2022-01-06 23:23:00 -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
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