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
Cameron Gutman
9c758f1628
Create power-of-2 overlay surfaces for better performance
...
This lets us take the fast copy path in the DXVA2 renderer.
2020-12-20 17:31:02 -06:00
Cameron Gutman
5f4975ca5c
Fix DXVA2 overlay rendering quality issus
2020-12-20 17:30:06 -06:00
Cameron Gutman
e5bcc793e5
Implement overlay support in EGLRenderer
...
Fixes #405
2020-12-19 23:01:41 -06:00
Cameron Gutman
cd5b0e74e3
Draw background in MMAL renderer on X11
...
Fixes #412
2020-12-19 21:25:20 -06:00
Cameron Gutman
3162d2c17d
Fix aspect ratio of MMAL renderer output
2020-12-19 17:48:36 -06:00
Cameron Gutman
6a54fb649c
Fix synchronization issues between render and overlay update threads in DXVA2
2020-12-18 20:23:52 -06:00
Cameron Gutman
dcbf5affda
Fix use-after-free in VDPAU overlay rendering
2020-12-18 19:39:24 -06:00
Cameron Gutman
027c8dcd41
Add overlay support to VDPAU renderer
2020-12-17 18:35:08 -06:00
Cameron Gutman
94b46a2173
Use a vertex buffer for rendering the DXVA2 overlays
2020-12-16 18:16:35 -06:00
Cameron Gutman
1e7cb7f13e
Replace D3DX9 with SDL_ttf for overlay rendering
2020-12-13 23:43:31 -06:00
Cameron Gutman
d58837421f
Refactor SDL overlay drawing into OverlayManager for sharing with other renderers
2020-12-13 15:51:50 -06:00
Cameron Gutman
a6551c320d
Finish Windows ARM64 bringup
...
SDL2 for ARM64 is not yet checked-in, but I will do that when SDL 2.0.14 is released.
2020-12-12 16:44:41 -06:00
Cameron Gutman
59a73817c8
Don't use AntiHooking.dll or use D3DX9 on ARM64
2020-12-12 13:59:47 -06:00
Cameron Gutman
8381039f97
Remove extra includes
2020-12-06 17:15:30 -06:00
Cameron Gutman
a91c61e5e2
Remove Raspberry Pi PulseAudio avoidance hack
...
Not only is it no longer required (PA works great now), it actually breaks audio with Pi OS's new PA config
2020-12-06 16:58:41 -06:00
Cameron Gutman
6e7a42065c
Translation updates and refactoring
2020-11-21 13:15:54 -06:00
Cameron Gutman
38b59aa1a9
Fix DXVA2 renderer compilation with Qt 6.0
2020-11-21 11:12:40 -06:00
Cameron Gutman
201b59cd4c
Compilation fixes for Qt 6.0 Beta 3
2020-11-07 19:23:23 -06:00
Cameron Gutman
2f3a1a5d79
Work around bug where GLES surface creation repeatedly fails on X11
2020-09-07 23:53:29 -07:00
Cameron Gutman
18654cb011
Work around QSGRenderThread crash on Wayland
2020-09-07 23:07:31 -07:00
Cameron Gutman
b97ae25f93
Flush mouse position before sending a mouse button event
2020-09-05 14:50:38 -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
Anton
89319dc7aa
Added option to swap left and right mouse buttons
...
Changed the use of SDL buttons to Moonlight buttons definitions
2020-09-05 08:32:00 +02: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
eded86bc10
Allow game controllers to be ignored during streaming only
...
STREAM_GAMECONTROLLER_IGNORE_DEVICES and STREAM_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT environment variables provide the same functionality as SDL_GAMECONTROLLER_IGNORE_DEVICES and SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT, with the difference being SDL_* variables take effect at all times (UI and streaming) while STREAM_* variables take place only while streaming.
Fixes #425
2020-08-22 12:02:26 -07:00
Cameron Gutman
5a7a49d1d5
Display resolution and codec in OSD
2020-08-20 20:52:05 -07:00
Cameron Gutman
d09dd90a73
Fix hardcoded tick unit duration which is incorrect on Apple silicon
2020-08-12 18:07:10 -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
8d2cbf806d
Improve message for broken Intel drivers to indicate that users should update their driver
2020-07-12 15:26:38 -07:00
Cameron Gutman
ab5025efbf
Ignore mouse events outside the video region
2020-07-12 15:06:36 -07:00
Cameron Gutman
912e51d863
Synchronize the client and host cursor when starting absolute mode capture
2020-07-12 15:03:08 -07:00
Cameron Gutman
88ed72fdc1
Use regular VSync when enabled because adaptive VSync still tears
2020-06-20 14:44:21 -07:00
Cameron Gutman
586a93d7aa
Use the new EGL renderer for VAAPI by default
2020-06-13 20:21:54 -07:00
Cameron Gutman
f1c459fd6c
Fix leak of renderer when we fail to create a GL context
2020-06-08 20:39:12 -07:00
Cameron Gutman
f00653964e
Batch absolute mouse motion like we do for relative motion
2020-05-31 13:34:50 -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
728377cba3
Set AV_PKT_FLAG_KEY for key frames
2020-05-25 18:31:19 -07:00
Cameron Gutman
994312c212
Force GL to block after the current frame instead during the next frame
2020-05-16 16:25:13 -07:00
Cameron Gutman
5f25e0d4e2
Add limited support for frame pacing to EGLRenderer
2020-05-16 15:59:10 -07:00
Cameron Gutman
4bbe571f5f
Fix build without FFmpeg and with older EGL 1.5 headers
2020-05-16 13:25:10 -07:00
Cameron Gutman
c58d21375c
EGL 1.4 doesn't have EGLAttrib either
2020-05-16 12:20:52 -07:00
Cameron Gutman
ed128c558f
Add support for EGLRenderer on EGL 1.4
2020-05-16 12:13:00 -07:00
Cameron Gutman
42ced309d3
Restore the original GL attributes after EGLRenderer is destroyed
2020-05-15 20:22:11 -07:00
Cameron Gutman
1fcd306879
Fix EGLRenderer when SDL isn't built with X11 or Wayland backends
2020-05-15 20:01:22 -07:00
Cameron Gutman
26c9ad7f06
Use eglGetProcAddress() for all GLES 2.0 extensions
2020-05-15 19:39:41 -07:00
Cameron Gutman
4b7b01ce0a
Fix EGL build
2020-05-15 17:54:45 -07:00
Cameron Gutman
6632154906
Remove some unnecessary headers and definitions
2020-05-15 16:59:29 -07:00
Cameron Gutman
a1b74e1220
Fix vaExportSurfaceHandle() detection with i965 VAAPI driver
2020-05-14 20:56:24 -07:00
Cameron Gutman
01f6188824
Add VAAPI_FORCE_DIRECT and VAAPI_FORCE_INDIRECT env vars to control rendering technique
2020-05-13 19:45:30 -07:00
Cameron Gutman
283f31a734
Test if vaExportSurfaceHandle() works before claiming EGL export is supported
2020-05-13 19:39:45 -07:00
Cameron Gutman
b800ce9ebe
Allow use of VA drivers without VAEntrypointVideoProc
2020-05-13 19:31:25 -07:00
Cameron Gutman
eb9d54465c
Don't use EGLRenderer if not built with SDL 2.0.10+
2020-05-13 19:19:11 -07:00
Cameron Gutman
eb9e1f81d4
Enable the EGLRenderer to use the render thread
2020-05-13 19:09:20 -07:00
Cameron Gutman
51e9ab83ad
Send a null AVFrame to indicate end of stream to allow renderers to do render thread cleanup
2020-05-13 18:55:21 -07:00
Cameron Gutman
5ed7e03b2e
Merge pull request #365 from xdbob/wayland_for_upstream
...
Introduce a new FFMPEG frontend renderer: EGLRenderer
2020-05-13 18:39:18 -07:00
Cameron Gutman
b4548c1af2
Flush all window events after SDL_CreateRenderer()
2020-05-12 18:41:36 -07:00
Antoine Damhet
0a396f3112
Introduce a new FFMPEG frontend renderer: EGLRenderer
...
Right now this renderer works on X11 & Wayland with VAAPI as a backend.
Some rendering latency benchmarks on my `i7-10510U` (with
`intel-media-driver` 20.1.1 which cause a *huge* regression with the
SDL_Renderer):
| | X11 | Wayland |
| Before | 6.78ms | 22.50ms |
| EGLRenderer | 0.76ms | 00.77ms |
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
2020-05-12 11:11:35 +02:00
Cameron Gutman
fc9871b075
Delay mouse capture until after SDL_RecreateWindow() has been called
2020-05-09 19:48:13 -07:00
Cameron Gutman
3cb3c1c6d8
Revert "Use the physical desktop size in pixels rather than the native resolution on macOS"
...
Let's wait until functionality is confirmed on a 5K iMac before doing this.
This reverts commit 8fe3474589
.
2020-05-09 16:52:18 -07:00
Cameron Gutman
8fe3474589
Use the physical desktop size in pixels rather than the native resolution on macOS
...
It seems like some Macs (5K iMacs at least) don't have kDisplayModeNativeFlag set
2020-05-09 16:34:48 -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
514a8575a2
Use the viewport size for computing the overlay position
2020-05-07 18:56:53 -07:00
Cameron Gutman
f30c11ddf4
Properly fix SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on macOS VTRenderer
2020-05-06 22:20:21 -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
400754c5b3
Revert "Pass through focus-gain clicks to the host in absolute mouse mode"
...
This reverts commit 05e82c24f8
.
2020-05-06 20:04:07 -07:00
Cameron Gutman
05e82c24f8
Pass through focus-gain clicks to the host in absolute mouse mode
2020-05-06 18:58:43 -07:00
Cameron Gutman
dfa63297fc
Fix incorrectly scaled output from the SDL renderer on macOS
2020-05-04 17:48:32 -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
2fdabe37aa
Raise the window before capturing in relative mode
2020-05-01 18:44:22 -07:00
Cameron Gutman
d8270dfb6a
Capture mouse by default on debug builds too
2020-05-01 18:43:54 -07:00
Cameron Gutman
9bf52eb63a
Improve relative touch deadzone behavior
2020-04-30 21:04:51 -07:00
Cameron Gutman
0c9d72a9a1
Restore the option for relative touch mode
2020-04-30 20:55:15 -07:00
Cameron Gutman
c2c2bd2df6
Split input.cpp into smaller files
2020-04-30 20:22:43 -07:00
Cameron Gutman
78fc594d84
Move input code into a subfolder
2020-04-30 20:09:36 -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
d7fd578cc3
Don't set MODIFIER_META when meta key is disabled
2020-04-28 20:06:30 -07:00
Cameron Gutman
1852f74e8b
Add missing return statement
2020-04-26 20:42:01 -07:00
Cameron Gutman
55e3e16860
Try radeonsi if other VAAPI drivers fail
2020-04-26 20:18:46 -07:00
Cameron Gutman
7cf2a55b43
Allow radeonsi to direct render on XWayland
2020-04-26 20:13:00 -07:00
Cameron Gutman
c41cbbd2da
Allow the radeonsi VAAPI driver on XWayland
2020-04-26 20:06:53 -07:00
Cameron Gutman
7283bb046b
Disable initial mouse capture on XWayland
2020-04-26 19:33:25 -07:00
Cameron Gutman
aaa112c3f3
Don't use VAAPI drivers that lack VPP support
...
intel-media-va-driver (free) is one example of such a driver which
is apparently missing the shaders to perform colorspace conversion.
2020-04-26 15:38:05 -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
f2d5cf785e
Don't cancel mouse capture on focus loss in absolute mode
2020-04-25 15:42:13 -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
80bfd3b8e9
Change raw input checkbox to adjust absolute vs relative mouse mode
2020-04-25 13:00:39 -07:00
Cameron Gutman
07128cc7fe
Allow keyboard input when the mouse is not captured
2020-04-24 21:35:38 -07:00
Cameron Gutman
0892f0b0bb
Don't capture the cursor on a touch event
2020-04-24 21:26:59 -07:00
Cameron Gutman
8cf7f3ac08
Fix absolute mouse positioning on SDL renderer
2020-04-24 19:37:15 -07:00
Cameron Gutman
ab2bb51879
Clamp mouse motion to the video region rather than dropping it
2020-04-24 17:35:35 -07:00
Cameron Gutman
8cb98b5365
Rewrite touchscreen support for direct input
2020-04-23 21:34:03 -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
Khalid Jebbari
669c1a6f0d
Add comment that describe kb shortcut of overlay ( #358 )
2020-04-06 18:31:02 -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
ea62e33e51
Add 7.1 surround sound support to libsoundio audio renderer
2020-04-04 09:49:10 -07:00
Cameron Gutman
524e92c81a
Add 7.1 surround sound support to SLAudio
2020-04-03 19:04:11 -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
e56329d05a
Don't render with vaPutSurface() on XWayland
2020-03-27 19:11:03 -07:00
Cameron Gutman
2452e80e57
Add VDPAU driver path fallbacks for AppImage
2020-03-26 19:06:24 -07:00
Cameron Gutman
b9019831a9
Fix failure to try the default VAAPI driver with the modified LIBVA_DRIVERS_PATH
2020-03-26 18:25:52 -07:00
Cameron Gutman
b3b49b440e
Add VAAPI driver path fallbacks for AppImage
2020-03-24 00:09:03 -07:00
Cameron Gutman
93ea437760
Key repeat is handled server-side, so don't send repeat events
2020-03-20 23:56:44 -07:00
Cameron Gutman
fe6a1244ed
Fix a couple compiler warnings
2020-03-18 22:46:32 -07:00
Cameron Gutman
953858b0e7
Add workaround for Steam Link graphics bug. Fixes #254
2020-03-18 22:26:15 -07:00
Cameron Gutman
ba2488b6e2
Try the iHD VA driver as a fallback to fix Comet Lake and later
2020-03-18 18:39:43 -07:00
Cameron Gutman
4e7e0d67e5
Add a workaround for Mesa Iris returning the wrong VA driver
2020-03-17 17:34:35 -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
2d9f62761c
Don't pass through the super key to the host
2020-03-13 18:11:31 -07:00
Cameron Gutman
81221336f4
Rec 601 seems to be a bit more accurate on macOS
2020-03-10 23:21:00 -07:00
Cameron Gutman
ecfc758ce4
Attach colorspace data to CVPixelBuffer. Fixes #323
2020-03-10 22:21:09 -07:00
Cameron Gutman
2cb3a132c6
Fix false positives in SDL_GameControllerRumble() support detection
2020-03-07 17:00:38 -08:00
Cameron Gutman
519473e498
Enable rumble on Bluetooth PS4 controllers
2020-03-07 16:46:41 -08:00
Cameron Gutman
9b271d918a
Use SDL_GameControllerSetPlayerIndex() to indicate player index
2020-03-03 20:15:35 -08:00
Cameron Gutman
7ee323f0d5
Fix deprecation warning on macOS
2020-02-29 15:54:10 -08: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
a44ed0b047
Allow initial destination position to be used as an offset with scaleSourceToDestinationSurface()
2020-02-24 18:01:30 -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
46bcbda972
MMAL is always full-screen
2020-02-23 00:25:01 -08:00
Cameron Gutman
43bdc353fb
Fix 720p streaming on MMAL
2020-02-23 00:22:44 -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
5b7e2521cc
Ignore unbind and full-screen key combos on EGLFS
2020-02-09 10:20:41 -08:00
Cameron Gutman
fced653c1c
Add a hack to avoid PulseAudio on RPi
2020-02-08 23:35:42 -08:00
Cameron Gutman
77386f8dfc
Reduce buffering for MMAL to avoid requiring 128 MB VRAM split
2020-02-08 17:56:30 -08:00
Cameron Gutman
529fdf0341
Add decoder options dictionary to prepareDecoderContext()
2020-02-08 17:47:26 -08:00
Cameron Gutman
4794f44a6d
Charge decoders for time spent holding on to frames
2020-01-26 20:15:11 -08:00
Cameron Gutman
f0119b1231
Add support for the out-of-tree Jetson FFmpeg NVMPI decoders
...
https://github.com/jocover/jetson-ffmpeg
2020-01-26 19:16:03 -08:00
Cameron Gutman
4c579aa826
Provide another frame if avcodec_receive_frame() returns EAGAIN
2020-01-26 15:36:22 -08:00
Cameron Gutman
b9463b3c0e
Allow NV12 and NV21 to be selected for non-hwaccel decoders using the SDL renderer
2020-01-26 15:02:29 -08:00
Cameron Gutman
cede6ce8a9
Add H264_DECODER_HINT and HEVC_DECODER_HINT envvars to specify a decoder manually
2020-01-26 14:40:48 -08:00
Cameron Gutman
956e6e3638
Avoid slicing for hardware decoders that use SDL as the renderer
2020-01-26 14:13:42 -08:00
Cameron Gutman
58313ad8fc
Allow default mouse polling interval to be overridden by setting MOUSE_POLLING_INTERVAL
2020-01-21 19:15:17 -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
2e0bd2ec28
Invoke avcodec_receive_frame() during decoder testing
2020-01-15 18:09:59 -08:00
Cameron Gutman
a0151fbc04
Fix memory leak if 10-bit color is not supported
2020-01-15 17:56:11 -08:00
Cameron Gutman
d853782fea
Add support for the Meta/Super/Windows key on macOS and Linux
2020-01-15 17:54:57 -08:00
Cameron Gutman
c6638a7154
Add support for 10-bit output in full-screen with DXVA2
2020-01-14 17:12:55 -08:00
Cameron Gutman
4abebe3aec
Hide the Qt cursor when streaming
2020-01-11 02:06:08 -08:00
Cameron Gutman
5aed8f928a
Add V4L2M2M support using SDL renderer
...
Note: This requires FFmpeg master to work, since it depends on:
https://github.com/FFmpeg/FFmpeg/commit/d61cf1b1ebc2477749d7d7825a072400ed24af9
2020-01-10 20:52:16 -08:00
Cameron Gutman
1313c7b3bf
Enable HDR as an experimental option
2019-12-30 18:05:43 -06:00
Cameron Gutman
e1603f0808
Explicitly use Rec 601 for VDPAU
2019-12-16 18:02:28 -08:00
Cameron Gutman
d4c2350d63
Fix DXVA2 rendering with the wrong colorspace on AMD GPUs
2019-12-15 13:29:19 -08:00
Cameron Gutman
5e5470ae12
Specify video transfer matrix for SLVideo
2019-12-15 11:27:47 -08:00
Cameron Gutman
6230a99360
Fix colorspace conversion with SDL as frontend renderer
2019-12-14 17:17:29 -08:00
Cameron Gutman
801adb6af7
Add colorspace support to VAAPI renderer
2019-12-14 16:58:04 -08: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
af6b8c9b88
Update common-c with colorspace configuration support
2019-12-14 14:40:02 -08:00
Cameron Gutman
4832d8007b
Print joystick haptic capabilities to log
2019-12-13 18:43:35 -08:00
Cameron Gutman
c8b887fe32
Use the new SDL_GameControllerRumble() API on SDL 2.0.9 to fix rumble on HIDAPI gamepads
2019-12-07 16:17:01 -08:00
Cameron Gutman
3a6bf4d20b
Disable arbitrary audio duration for libsoundio until further testing is done
2019-12-03 19:00:43 -08:00
Cameron Gutman
5e2f32e3eb
Force remote streaming mode if connecting through a VPN
2019-12-01 21:50:36 -08:00
Cameron Gutman
0ccee9d806
Support arbitrary audio duration in libsoundio renderer
2019-12-01 19:43:22 -08:00
Cameron Gutman
5700272dc4
Improve low bandwidth audio performance for SDL and SLAudio and fix RTSP issues with broken PMTUD
2019-11-30 22:24:28 -06:00
Cameron Gutman
7e5a3925b3
Fix typo in channel mapping
2019-11-17 14:35:37 -08:00
Cameron Gutman
1febe32e73
Fix 5.1 channel mapping on Steam Link
2019-11-17 12:22:57 -08:00
Cameron Gutman
de7b973239
Plumb presentation time from server into AVFrame.pts field
2019-11-11 18:03:47 -08:00
Cameron Gutman
c20daa8867
Add compatibility checks for HEVC Main10 in VT backend
2019-11-05 18:36:43 -08:00
Cameron Gutman
5e57a7d5c0
Prevent SDL renderer from trying to render 10-bit output
2019-11-05 17:29:21 -08:00
Cameron Gutman
7c8d27700e
Add 10-bit output support to VDPAU renderer
2019-11-05 17:09:44 -08:00
Cameron Gutman
f8621be5ee
Add an HEVC Main10 test frame
2019-11-05 17:08:25 -08:00
Cameron Gutman
ca26fa2dd0
Add basic HEVC Main10 support in DXVA2 renderer
2019-11-04 22:57:12 -08:00
Cameron Gutman
2f0a6db414
Add hacks for SDL+Mutter interaction bugs
2019-09-29 21:05:31 -07:00
Cameron Gutman
96ff51d598
Use SDL audio for platforms that libsoundio doesn't support
2019-09-22 12:03:53 -07:00
Cameron Gutman
dbf98ce3a6
Require keyframes even for software H.264 decoding
2019-08-07 22:38:31 -07:00
Cameron Gutman
5288041da5
Prevent us from consuming more than 4 samples per write callback to bound latency
2019-08-03 12:47:44 -07:00
Cameron Gutman
5db5a088ea
Fix NVDEC artifacts if the renderer is delayed for a bit
2019-08-01 20:25:58 -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
bcbd1a5b4b
Fix subsystem print in VAAPI
2019-07-07 15:41:26 -07:00
Cameron Gutman
6468efd7e4
Add VAAPI DRM support
2019-07-07 15:32:38 -07: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
024af89be3
Add an option to disable the gamepad mouse button toggle
2019-06-29 18:24:59 -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
1c225ed04d
Use CUDA acceleration if other hwaccels are unavailable
2019-06-26 21:54:29 -07:00
Cameron Gutman
612b738968
Use the preferred sw_format when reading frames back
2019-06-26 21:25:41 -07:00
Cameron Gutman
87356ef594
Add CUDA acceleration support
2019-06-26 21:02:33 -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
fc849fb51a
Switch back to SDL for audio on Linux. Fixes #245
2019-06-23 13:16:00 -07:00
Cameron Gutman
c88651939a
Re-add latency bounding on the SDL audio renderer
2019-06-23 13:14:55 -07:00
Cameron Gutman
01254f67f0
Allow audio renderers to specify capabilities
2019-06-23 12:49:37 -07:00
Cameron Gutman
4f74fd5354
Fix uninitialized variables and a race condition with CVDisplayLinkStart()
2019-05-21 09:09:16 -07:00
Cameron Gutman
2682829bd3
Fix Steam Link audio latency cap
2019-05-20 23:57:27 -07:00
Cameron Gutman
30cfa2607d
Hide mouse cursor after streaming on Steam Link
2019-05-19 17:43:46 -07:00
Cameron Gutman
4c17f32a2e
Fix extra non-working gamepad appearing to the host
2019-05-19 13:24:06 -07:00
Cameron Gutman
674220087f
Finish mouse emulation support with overlay and bugfixes
2019-05-19 13:10:42 -07:00
Cameron Gutman
fc8d5d5799
Add gamepad mouse emulation support
2019-05-19 12:17:23 -07:00
Cameron Gutman
97fb30cdf1
Fix a few bugs in CVDisplayLink integration in VTRenderer
2019-05-19 09:52:59 -07:00
Cameron Gutman
b3ee7a635f
Cap queued audio at 40 ms on Steam Link
2019-05-11 19:09:59 -07:00
Cameron Gutman
c2b12868bb
Move DisplayLinkVsyncSource back into VTRenderer to reduce latency
2019-05-11 18:33:12 -07:00
Cameron Gutman
bdbb03e16f
Request 20 ms audio frames on Steam Link to reduce CPU overhead
2019-05-04 15:46:11 -07:00
Cameron Gutman
53138d7c16
Name threads for easier debugging
2019-05-03 21:18:58 -07:00
Cameron Gutman
18d1d35104
Use QByteArray::reserve() rather than reallocating each time we must resize
2019-05-02 22:54:18 -07:00
Cameron Gutman
99d9de35de
Add NV21 pixel format support to SDL renderer
2019-05-02 22:51:28 -07:00
Cameron Gutman
e6a48481a5
Restore the bulk submission optimization for Steam Link
2019-05-01 22:31:52 -07:00
Cameron Gutman
21f2b1224a
Decode directly into the audio renderer's buffer to avoid a copy
2019-05-01 21:27:41 -07:00
Cameron Gutman
27708b9ecb
Disable HIDAPI for Xbox gamepads on macOS
2019-04-28 18:45:56 -07:00
Cameron Gutman
dfb006d264
More Steam Link performance optimizations
2019-04-28 15:57:57 -07:00
Cameron Gutman
4f00f62674
Batch controller axis events for reduced CPU usage on Steam Link
2019-04-28 15:16:04 -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
2bf552f801
Batch audio frames on Steam Link to save CPU cycles
2019-04-28 12:55:04 -07:00
Cameron Gutman
477fa8fedf
Add logging callbacks for SLAudio and SLVideo
2019-04-28 11:01:54 -07:00
Cameron Gutman
4e936193c7
Request a test frame for MMAL decoder
2019-04-24 21:31:52 -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
8878c4a136
Use VAAPI decoder for AMD on Wayland
2019-04-21 15:33:21 -07:00
Cameron Gutman
00926bac81
Fix build warning in SDL renderer
2019-04-21 11:09:11 -07:00
Cameron Gutman
dba479774b
Add DRM renderer for Rockchip devices
2019-04-21 05:22:37 +00:00
Cameron Gutman
5c8a1e632b
Add support for rendering NV12 hwframes with SDL
2019-04-19 22:16:06 -07:00
Cameron Gutman
d65e29111f
Fix some codec selection bugs
2019-04-19 20:57:21 -07:00
Cameron Gutman
1dfca525cf
Refactor renderer initialization to reduce duplication and inconsistency
2019-04-18 20:02:14 -07:00
Cameron Gutman
e51ad1a68a
Fix use-after-free due to stale m_FrontendRenderer pointer. Fixes #214
2019-04-18 19:26:13 -07:00
Cameron Gutman
9c76700f74
Add MMAL renderer for Raspberry Pi
2019-04-16 01:20:21 -07:00
Cameron Gutman
773b1af6f1
Minor refactoring in preparation for non-hwaccel decoder support
2019-04-15 21:56:01 -07:00
Cameron Gutman
b8b633a6cc
Use SDL to render on Wayland for VAAPI
2019-04-12 22:54:21 -07:00
Cameron Gutman
ada2270bd1
Reduce code duplication in renderers
2019-04-12 22:12:53 -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
00a1948b73
Treat AV_CODEC_CAP_HARDWARE codecs as hardware accelerated too
2019-04-09 21:50:22 -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
6783cf57da
TTF_OpenFontRW retains the SDL_RWops on success, so we must keep the font data around to back it
2019-04-09 21:26:47 -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
54383b84ec
Fix random deadlocks on window resize with the software decoder due to processing window messages off the render thread
2019-04-03 20:44:50 -07:00
Cameron Gutman
2d7dcb495c
Remove CAPABILITY_DIRECT_SUBMIT for the video decoder because it can block for significant time periods when D3D9 is reconfiguring display settings (and holding the D3D global lock)
...
This can cause false reports of packet loss.
2019-03-29 23:38:23 -07:00
Cameron Gutman
50f47f1ed5
Fix handling of screen saver after fa4c0e82bd
and reset background events hint for UI after streaming
2019-03-26 21:11:24 -07:00
Cameron Gutman
cabbba2448
Move status update overlay to bottom left for SDL
2019-03-23 21:14:21 -07:00
Cameron Gutman
c48ed7bb0d
Fix undefined variable usage after 2703efedef
2019-03-23 20:25:19 -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
c313f1a20b
Embed our data files inside the binary with QRC
2019-03-23 10:45:44 -07:00
Cameron Gutman
b7116657d9
Add SLAudio renderer for Steam Link
2019-03-22 23:08:10 -07:00
Cameron Gutman
2bf3f1b94b
Refactor Steam Link support files
2019-03-22 22:51:08 -07:00
Cameron Gutman
e95ff989b1
Allow DXVA2 renderer blacklists to be bypassed
2019-03-21 20:44:30 -07:00
Cameron Gutman
018e8999e2
Add connection status overlay for the VT renderer
2019-03-18 20:56:53 -07:00
Cameron Gutman
f624a1817e
Add preference and tweak connection warning
2019-03-18 20:21:52 -07:00
Cameron Gutman
202a643e5a
Fix size of the status update overlay on DXVA2
2019-03-17 15:12:25 -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
bf5d43d0cf
Use SDL_HINT_OVERRIDE for critical hints
2019-03-17 00:18:15 -07:00
Cameron Gutman
f2ac570949
Rebuild SDL2 (5dc13016cf) with USE_D3D9EX
2019-03-16 23:52:40 -07:00
Konstantin Budnikov
e32bc1a0a3
SDL_HapticRumblePlay rumble for gamepad without SDL_HAPTIC_LEFTRIGHT support ( #181 )
2019-02-20 19:22:38 -08:00
Cameron Gutman
e5a8b49c93
Limit the number of queued frames in Pacer to prevent excessive memory consumption if the renderer gets blocked for a while
2019-02-18 12:13:45 -08:00
Cameron Gutman
2a12b018da
Fix special key combos on non-QWERTY latin keyboards
2019-02-17 13:07:54 -08:00
Cameron Gutman
80a40ac5f9
Increase frame drop threshold
2019-02-16 23:13:35 -08:00
Cameron Gutman
a1956350b1
Rename pacing drop to jitter drop to be less confusing for users
2019-02-16 23:04:25 -08:00
Cameron Gutman
2c09875556
Fix input handler cleanup on startup failure
2019-02-16 01:39:31 -08:00
Cameron Gutman
ab4127f940
Use presence of a frame after rendering rather than render time for frame dropping
2019-02-15 22:44:52 -08:00