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
Cameron Gutman
f03d12b677
Use a separate render thread even with a V-Sync source
2019-02-15 22:09:50 -08:00
Cameron Gutman
81c6202582
Rename renderFrameAtVsync() to renderFrame() in preparation for further refactoring
2019-02-15 21:07:02 -08:00
Cameron Gutman
6cab2bec61
Don't trust VT to tell us whether decode is supported
2019-02-15 19:10:21 -08:00
Cameron Gutman
c2268b45f6
Merge pull request #177 from konst2/master
...
Fix hotkeys for non-latin keyboard layouts
2019-02-15 18:57:24 -08:00
Cameron Gutman
38b8a59fe5
Adjust overlay color for more contrast
2019-02-15 18:53:40 -08:00
Cameron Gutman
b1799009b3
Use the Path class to lookup ModeSeven.ttf
2019-02-15 18:13:36 -08:00
Cameron Gutman
f8e693a060
Drop samples to account for lost time reinitializing audio. Fixes #176
2019-02-14 22:32:54 -08:00
Cameron Gutman
aba806bc32
Implement debug overlay for VideoToolbox renderer
2019-02-13 20:55:52 -08:00
Cameron Gutman
b1fb3f2391
Set FFmpeg log level at debug until first frame is rendered
2019-02-13 18:34:59 -08:00
konst2
041e901c61
Fix hotkeys for non-latin keyboard layouts
2019-02-13 19:56:44 +03:00
Cameron Gutman
f83853c2fb
OverlayManager now manages font size for the overlays
2019-02-12 22:36:56 -08:00
Cameron Gutman
b878d64460
Check rumble controller number is within the supported range
2019-02-12 22:05:55 -08:00
Cameron Gutman
5397e8ae1a
Don't use SDL_GameControllerGetPlayerIndex() because the indexes may be non-contiguous (and wrong) on XInput
2019-02-12 22:04:05 -08:00
Cameron Gutman
46bd8ad83d
Add debug overlay for SDL renderer
2019-02-12 21:55:15 -08:00
Cameron Gutman
5788fa7204
Make OverlayManager own the overlay color setting
2019-02-12 20:39:10 -08:00
Cameron Gutman
d077c6450f
Split SdlRenderer from renderer.h
2019-02-12 19:58:36 -08:00
Cameron Gutman
feb5e3bc78
Fix SDL_WasInit asserts firing due to lifetime management issues with SdlInputHandler
2019-02-12 19:30:02 -08:00
Cameron Gutman
6ed512e762
Provide a renderer callback when the overlay data changes
2019-02-12 18:43:38 -08:00
Cameron Gutman
947970e07b
Shortcut decoder initialization when only using it for capability testing
2019-02-12 18:42:53 -08:00
Cameron Gutman
df567b405a
Minor bugfixes to haptics
2019-02-11 21:55:56 -08:00
MINICOM\mrb11
7b0596d9df
Add controller rumble support.
2019-02-11 21:39:55 -08:00
Cameron Gutman
4b7200ae69
Don't display the connection terminated dialog for intended disconnects
2019-02-10 02:19:37 -08:00
Cameron Gutman
d2002b6a62
Fix SOPS issues causing 720p60 settings on non-standard resolutions and FPS values
2019-02-09 20:37:11 -08:00
Cameron Gutman
1fd099db70
Log when StretchRect() fails
2019-02-09 18:47:57 -08:00
Cameron Gutman
2986a40c5a
Fix some gamepads working for UI navigation but not in game
2019-01-29 22:01:05 -08:00
Cameron Gutman
8bb6d4d0d9
Fix VDPAU scaling on AMD cards. Fixes #171
2019-01-29 20:52:41 -08:00
Cameron Gutman
21aad643f3
Use 32 pixel alignment for HEVC to fix Intel green line issue
2019-01-28 21:26:27 -08:00
Cameron Gutman
8687448966
Use StretchRect() on Intel GPUs or if VideoProcessBlt() fails
2019-01-28 19:18:43 -08:00
Cameron Gutman
4471a858db
Fix miscounted pacer dropped frames in non-pacing mode
2019-01-22 21:21:29 -08:00
Cameron Gutman
22e712af5a
Add v-sync text to stats overlay
2019-01-22 20:55:58 -08:00
Cameron Gutman
9799b82d53
Improve long render time logic
2019-01-22 20:55:35 -08:00
Cameron Gutman
78915e0b99
Use a separate render thread when not using frame pacing
2019-01-22 20:31:31 -08:00
Cameron Gutman
a4edd9d202
Submit frame directly from the decoder thread to avoid interference from the main thread
2019-01-21 20:27:37 -08:00
Cameron Gutman
7747624c80
Revert "Wake up main thread immediately after new frame is pushed"
...
This reverts commit aab7191a44
.
2019-01-21 20:10:13 -08:00
Cameron Gutman
aab7191a44
Wake up main thread immediately after new frame is pushed
2019-01-21 18:57:14 -08:00
Cameron Gutman
1f972b1828
Require several consecutive long render times to drop a frame
2019-01-21 17:58:42 -08:00
Cameron Gutman
58b77cf589
Fix inaccurate pacer drop and network drop percentages and add total FPS stat
2019-01-21 17:43:15 -08:00
Cameron Gutman
c064f87889
Drop a frame if the rendering time exceeds the v-sync period
2019-01-20 19:59:29 -08:00
Cameron Gutman
d6b4c8e7da
Avoid blocking decoding operations during Present calls
2019-01-20 14:08:53 -08:00
Cameron Gutman
b19c4bfc5d
Add performance overlay for DXVA2 renderer
2019-01-19 23:05:56 -08:00
Cameron Gutman
067f5e33aa
Increase audio buffer on Linux to 25 ms. Fixes #147 . Fixes #157 .
2019-01-06 13:49:20 -08:00
Cameron Gutman
52ef84873e
Remove excess latency control logic from SDL renderer, since it doesn't appear to work very well anyway
2019-01-06 13:28:43 -08:00
Cameron Gutman
c21ba5c808
Allow the audio renderer to be overriden by the ML_AUDIO environment variable
2019-01-06 13:28:05 -08:00
Cameron Gutman
11c7131875
Replace forgotten clamp to frameCountMax removed by e75dce2543
2019-01-03 18:49:18 -08:00
Cameron Gutman
e75dce2543
Remove one-sample-per-callback write logic to fix crackling at 44.1 KHz. Fixes #152
2019-01-03 17:23:29 -08:00
Cameron Gutman
dcfd3d3e48
Add a debug print for V-sync
2018-12-25 22:19:23 -08:00
Cameron Gutman
ec2c15946a
Update audio buffering parameters based on local testing
2018-12-25 21:45:15 -08:00
Cameron Gutman
d1640e3bb8
Audio latency tweaks and fix for PulseAudio with A2DP
2018-12-25 17:54:18 -08:00
Cameron Gutman
8612e6726d
Remove accidentally enabled debug prints
2018-12-25 14:05:55 -08:00
Cameron Gutman
14cb2e1999
Remove latency drop logic and replace by single frame writes
2018-12-25 14:05:17 -08:00
Cameron Gutman
cfabaf334e
Add frame pacing toggle
2018-12-25 12:57:00 -08:00
Cameron Gutman
c054536fab
Count Pacer delay in frame stats
2018-12-25 12:09:45 -08:00
Cameron Gutman
de3928cb4d
Reduce FPs on the unmapped gamepad dialog
2018-12-25 11:41:48 -08:00
Cameron Gutman
c6383f042c
Pin server cert to host during pairing
2018-12-21 18:08:07 -08:00
Cameron Gutman
8a5e3cdb76
Fix returning to app page when start fails
2018-12-05 22:17:26 -08:00
Cameron Gutman
c40174034c
Don't kill the app on the host when the session terminates unexpectedly
2018-12-05 20:17:00 -08:00
Cameron Gutman
5029c855f0
Simplify app quitting implementation a bit
2018-12-05 19:49:06 -08:00
Janne Hakonen
0ab07303c9
Add quit cli command and app quit option after stream session. Fixes #92 ( #138 )
...
* Add quit cli command and app quit option after stream session. Fixes #92
* Code review fixes.
2018-12-05 18:45:28 -08:00
Cameron Gutman
b97758ef46
Switch to libsoundio on Linux now that PA works reliably after d1fe752028
2018-11-28 00:13:04 -08:00
Cameron Gutman
d1fe752028
Fix busy looping in libsoundio audio renderer when no audio is playing
2018-11-27 23:43:31 -08:00
Cameron Gutman
065a6caee5
Use automatic remote streaming detection
2018-11-21 20:55:25 -08:00
Cameron Gutman
bf05088d70
Remove checks that rely on display modes because they can be inaccurate on machines when the monitor is off
2018-11-20 22:02:43 -08:00
Cameron Gutman
688c4a90d9
Use the raw display bounds not the usable display bounds for full-screen calculations
2018-11-18 23:10:30 -08:00
Cameron Gutman
d847b71c86
Fix host virtual gamepads being reconnected during stream startup and causing issues with multiple controllers. Fixes #108
2018-11-18 12:05:17 -08:00
Cameron Gutman
dfcc1ff899
Also print gamepad mapping on gamepad attach
2018-11-17 17:23:20 -08:00
Cameron Gutman
65562937f3
Print gamepad GUID string in logs
2018-11-17 17:10:52 -08:00
Cameron Gutman
25f70e570e
Add timer-based input batching for GFE 3.16
2018-11-15 20:52:07 -08:00
Cameron Gutman
789e52af57
Use SDL_GameControllerGetPlayerIndex() as a hint for picking player indexes
2018-11-03 13:04:34 -07:00
Cameron Gutman
76e5794203
Remove SetThreadExecutionState() call now that SDL_DisableScreenSaver() works on Windows
2018-11-03 12:44:14 -07:00
Cameron Gutman
e1fab22d98
Fix accidental removal of decoder deletion in previous commit
2018-10-31 18:49:37 -07:00
Cameron Gutman
cb5e58d465
Fix use-after-free caught by debug build of SDL2
2018-10-31 18:20:39 -07:00
Cameron Gutman
d5a1189053
Avoid VAAPI on AMD drivers due to a bad memory leak
2018-10-14 20:37:13 -07:00
Cameron Gutman
fd63aad3b8
Only avoid HEVC on GFE 3.10 and lower on macOS
2018-10-14 11:28:52 -07:00
Cameron Gutman
36f468a599
Fix window icon disappearing when toggling out of full-screen mode on Windows
2018-10-12 20:34:58 -07:00
Cameron Gutman
dfae69834a
Fix misleading debug print
2018-10-12 20:02:54 -07:00
Cameron Gutman
4f84843b00
Fixup H.264 SPS for VideoToolbox compatibility. Fixes #98
2018-10-12 17:59:53 -07:00
Cameron Gutman
1fc63a6529
Exclude libsoundio from Linux build
2018-10-06 18:24:34 -07:00
Cameron Gutman
e182445593
libsoundio audio renderer for Windows and Mac ( #97 )
2018-10-05 19:22:57 -07:00
Cameron Gutman
6661ca17c2
Fix keys being stuck after Moonlight loses focus or is quit via OS shortcut (Alt+Tab/Alt+F4)
2018-10-03 18:27:12 -07:00
Cameron Gutman
1b4e75f49e
Add support for sending X1 and X2 mouse buttons. Fixes #91
2018-10-03 17:56:42 -07:00
Cameron Gutman
9075f309ad
Disable annoying stream stats prints
2018-10-02 20:12:53 -07:00
Cameron Gutman
18d97e9f73
Fix errant touch events on macOS
2018-10-02 20:11:13 -07:00
Cameron Gutman
bccd118abb
Finish removal of auto audio option and rename the remaining options
2018-10-02 15:30:22 -07:00
Cameron Gutman
3dc049ee5f
Remove automatic audio configuration permanently due to brokenness and allow renderers to request reinitialization on demand
2018-10-02 01:21:42 -07:00
Cameron Gutman
a614a693e5
Revert "Fix surround sound channel mapping on ALSA" since it can be handled inside PortAudio
2018-10-02 01:09:13 -07:00
Cameron Gutman
8dddcd04d5
Remove IAudioRenderer::testAudio() and just use IAudioRenderer::prepareForPlayback() instead
2018-10-01 19:49:08 -07:00
Cameron Gutman
209b4a1b02
Fix surround sound channel mapping on ALSA
2018-10-01 18:46:16 -07:00
Cameron Gutman
c239d0814b
Move audio renderer destruction back off the main thread now that we're using atexit(SDL_Quit)
2018-09-30 18:09:12 -07:00
Cameron Gutman
f7789a1e4a
Add Select+Start+L1+R1 quit combo
2018-09-30 14:38:54 -07:00
Cameron Gutman
9fb0bffd61
Finish touch input support
2018-09-30 01:03:26 -07:00
Cameron Gutman
4a452a2467
Touch input WIP
2018-09-29 22:43:28 -07:00
Cameron Gutman
396d65b003
Fix typo in previous commit
2018-09-29 22:24:26 -07:00
Cameron Gutman
fa52e7c1b7
Fix audio device error with PA renderer (and constify some methods)
2018-09-29 22:19:41 -07:00
Cameron Gutman
6758d6c43e
Create MappingManager class to handle gamepad mappings (currently only saving custom mappings)
2018-09-29 20:33:45 -07:00
Cameron Gutman
4ad27670ec
Provide detection and help for unmapped gamepads. Fixes #70
2018-09-29 19:14:52 -07:00
Cameron Gutman
1ad072236d
Avoid calling Pa_IsStreamStopped() on each audio frame
2018-09-29 16:52:40 -07:00
Cameron Gutman
200b1c5095
Rename hpp -> h
2018-09-29 16:18:46 -07:00
Janne Hakonen
d14cfb577b
Add command line parameters. Fixes #30 ( #89 )
...
* Add command line parameters. Fixes #30
* Fixed compile errors
* Fixed code review findings
* Fixed code review findings, take 2
2018-09-29 14:06:55 -07:00
Cameron Gutman
4620fa5001
Retry serverinfo query for adding a PC if the request fails with ServiceUnavailableError. Fixes #88
2018-09-29 03:01:49 -07:00
Cameron Gutman
a0249b4337
Add video stats for performance overlay
2018-09-25 00:47:59 -07:00
Cameron Gutman
f2e40889b2
Performance tweaks to PortAudio renderer
2018-09-22 21:00:44 -07:00
Cameron Gutman
896b247bc0
Remove H.264 high performance preference and enable HEVC split encode
2018-09-22 20:27:02 -07:00
Cameron Gutman
605d52f160
Don't block in audio/video renderer callbacks while the renderer is being destroyed
2018-09-22 20:03:41 -07:00
Cameron Gutman
afb2b465a8
Avoid using direct submit for video decoding because FFmpeg can delay for a fairly significant period of time within avcodec_send_packet() and avcodec_receive_frame(), even for software decoding. This is particularly apparent when streaming well above hardware capabilities and leads to packet loss.
2018-09-22 19:30:13 -07:00
Cameron Gutman
b1de66d878
Directly use the AVBufferSampleDisplayLayer as the rendering view's layer to increase efficiency
2018-09-22 18:34:15 -07:00
Cameron Gutman
71b625081a
Switch to PortAudio for audio playback
2018-09-22 17:39:12 -07:00
Cameron Gutman
2cd4851601
Improve PortAudio channel autodetection algorithm to workaround PulseAudio issues
2018-09-22 16:51:45 -07:00
Cameron Gutman
14ec0259df
Switch back from Qt Multimedia to SDL for audio configuration detection. Qt is also broken, but just broken in a way that always reports stereo
2018-09-22 16:20:00 -07:00
Cameron Gutman
9f0617f6ee
Gracefully fall back to stereo audio if 5.1 doesn't work
2018-09-22 16:04:36 -07:00
Cameron Gutman
2c960059ee
Add PoC PortAudio audio renderer
2018-09-21 23:30:47 -07:00
Cameron Gutman
af9fb0e091
Fix GetVideoProcessorCaps() failure handling
2018-09-21 17:29:53 -07:00
Cameron Gutman
f96911e1ba
Use DXVA2_VideoProcProgressiveDevice since we don't need any fancy image processing or deinterlacing
2018-09-21 17:07:28 -07:00
Cameron Gutman
8a0089eb81
Print driver information in VDPAU and VAAPI renderers
2018-09-20 21:23:16 -07:00
Cameron Gutman
f4408473e6
Fix broken Alt+Tab behavior. Fixes #72
2018-09-16 11:21:15 -07:00
Cameron Gutman
04376ca047
Fix Clang format string signness mismatch warnings
2018-09-15 16:00:36 -07:00
Cameron Gutman
a2eece0f5c
Log audio buffer size
2018-09-15 13:27:57 -07:00
Cameron Gutman
a03279df3b
Fix errant mouse button event being sent on mouse capture
2018-09-14 22:09:45 -07:00
Cameron Gutman
bef6c2b665
Fix the underflow caused by the underflow fix :(
2018-09-14 21:03:06 -07:00
Cameron Gutman
8002c65693
Block Intel drivers earlier than 4836 from using HEVC due to artifacting issues. Fixes #32
2018-09-14 20:20:47 -07:00
Cameron Gutman
72afa55897
Add tip text to the StreamSegue telling users about the quit shortcut. Fixes #77
2018-09-14 19:11:06 -07:00
Cameron Gutman
eed9fca10c
Mass conversion of isNull() -> isEmpty()
2018-09-14 18:36:15 -07:00
Cameron Gutman
25d97e187a
Fix large mouse input delay on GFE 3.14.0 and earlier. Fixes #68
2018-09-14 18:35:28 -07:00
Cameron Gutman
7ca2ca8045
Print the GPU driver version on Windows
2018-09-13 14:54:30 -07:00
Cameron Gutman
7bc43c226d
Fix underflow in audio drop code
2018-09-13 14:09:03 -07:00
Cameron Gutman
da4697794d
Increase buffer size for glitch-free playback on macOS
2018-09-13 13:02:21 -07:00
Cameron Gutman
879c524658
Revert "Process Qt events in the SDL loop" to fix input issues on Windows and Mac
...
This reverts commit c8e00195ed
.
2018-09-13 12:14:56 -07:00
Cameron Gutman
e3a8f010c3
Fixes for experimental Qt audio renderer
2018-09-13 12:00:51 -07:00
Cameron Gutman
f2f8f92172
Add gamepad mapping DB from https://github.com/gabomdq/SDL_GameControllerDB
2018-09-13 11:58:32 -07:00
Cameron Gutman
6e06174db6
Add experimental Qt audio renderer
2018-09-13 08:17:26 -07:00
Cameron Gutman
c8e00195ed
Process Qt events in the SDL loop
2018-09-13 08:03:06 -07:00
Cameron Gutman
64bc189010
Fixes to SDL audio renderer and autodetection support
2018-09-13 07:46:01 -07:00
Cameron Gutman
12496e4432
Refactor audio rendering into a separate class
2018-09-13 06:23:06 -07:00
Cameron Gutman
9e2fd67487
Add option to enable mouse acceleration for remote desktop usage
2018-09-09 13:21:11 -07:00
Cameron Gutman
9dcd856099
Blacklist Kepler GPUs for HEVC due to hybrid decode support present in some drivers
2018-09-09 10:48:01 -07:00
Cameron Gutman
cfbcc4093c
Reduce UI jank when transitioning to the stream segue
2018-09-09 10:17:32 -07:00
Cameron Gutman
4712080a1b
Fix centering of streaming window and size after toggling full-screen on Windows
2018-09-08 16:01:35 -07:00
Cameron Gutman
93c683be3a
Allow renderers that force V-sync on to run without it when streaming higher than the display refresh rate
2018-09-08 15:27:21 -07:00
Cameron Gutman
c9a7c15f98
Improve unsupported FPS options and performance
2018-09-08 15:09:46 -07:00
Cameron Gutman
64a08f0533
Allow higher than display refresh rate streaming with unsupported FPS option
2018-09-08 14:34:11 -07:00
Cameron Gutman
52c6455ca5
Avoid sending a click event on focus gain on Linux
2018-09-08 14:05:42 -07:00
Cameron Gutman
238681d72f
Merge pull request #67 from jhakonen/capture-on-activated-window
...
Capture mouse cursor when clicking inactive window
2018-09-08 14:01:27 -07:00
Janne Hakonen
300b53f28c
Capture mouse cursor when clicking inactive window
2018-09-08 16:39:20 +03:00
Janne Hakonen
3dabb1c891
Fixed < key in keyboard not working
2018-09-08 14:16:27 +03:00
Cameron Gutman
6a2b717ff1
Run in native resolution on Retina displays when streaming above scaled resolution
2018-09-07 01:12:18 -07:00
Cameron Gutman
475a39cb73
Recreate the decoder when moving to a new display to allow Pacer to get the new refresh rate
2018-09-06 19:42:53 -07:00
Cameron Gutman
4dba74e2f9
Fix handling of undefined and non-matching refresh rate
2018-09-06 19:16:59 -07:00
Cameron Gutman
587d783955
Use SDL_WINDOWPOS_CENTERED_DISPLAY() to fix incorrect positioning on multi-display system on macOS
2018-09-06 18:53:00 -07:00
Cameron Gutman
5da156b433
Prefer H.264 for higher decoding performance in very high load situations
2018-09-05 18:57:40 -07:00
Cameron Gutman
0d68faf40c
Remove unused parameter
2018-09-05 15:45:36 -07:00
Cameron Gutman
856318f947
Start the SDL window on the same display as the Qt UI was displayed on
2018-09-05 15:15:53 -07:00
Cameron Gutman
9a71b4c237
Improve mouse batching to only batch if the last event was less than 1 millisecond ago
2018-09-04 00:09:35 -07:00
Cameron Gutman
9aa487418f
Force V-Sync enabled for DXVA2 windowed with DWM composition enabled
2018-09-03 23:34:15 -07:00
Cameron Gutman
203b2fcaca
Batch mouse move events for high DPI mice
2018-09-04 00:37:21 -04:00
Cameron Gutman
dae21f2638
Detect native panel resolution on Retina displays. Fixes #59
2018-09-04 00:21:37 -04:00
Cameron Gutman
af6e99cbac
Select the highest full-screen refresh rate that our stream FPS evenly divides
2018-09-03 22:54:41 -04:00
Cameron Gutman
6d6acf4308
Fix release builds
2018-09-03 22:47:31 -04:00
Cameron Gutman
7dd4815edf
Allow selection between full-screen exclusive mode and borderless windowed mode
2018-09-03 22:17:34 -04:00
Cameron Gutman
2c068a99a3
Allow FFmpeg renderers to enforce V-sync being enabled or disabled
2018-09-03 20:57:09 -04:00
Cameron Gutman
fa93364ddd
Ensure the CVDisplayLink is synchronized to the display that our window is on
2018-09-03 20:19:24 -04:00
Cameron Gutman
9b1eef3f63
Pass AV_HWACCEL_FLAG_IGNORE_LEVEL for VDPAU per FFmpeg documentation recommendation
2018-09-03 17:06:21 -04:00
Cameron Gutman
ed6c07fd4b
Display all frames even if they are corrupt or missing references (as will happen during reference frame invalidation)
2018-09-02 18:45:29 -04:00
Cameron Gutman
5ad96f5287
Display a dialog when the connection is terminated by the remote PC
2018-09-02 18:34:10 -04:00
Janne Hakonen
b96ace7f04
Release mouse cursor when window focus is lost
2018-09-02 00:31:37 +03:00
Cameron Gutman
234a8dc3d5
Fix build with HAVE_SLVIDEO
2018-08-31 10:40:25 -04:00
Cameron Gutman
762fe92933
Allow streaming with no audio device. Fixes #52
2018-08-31 00:09:31 -04:00
Cameron Gutman
b7cbec0b1c
Pass RFI flags to decoder
2018-08-25 13:36:54 -07:00
Cameron Gutman
9be9934b8c
Add reference frame invalidation for the software decoder
2018-08-25 12:38:04 -07:00
Cameron Gutman
408f93732b
Fix 'invalid VADisplay' errors on renderer destruction
2018-08-25 11:21:52 -07:00
Cameron Gutman
7e560aa09e
Use MMCSS when streaming with the DXVA renderer
2018-08-21 00:53:41 -07:00
Cameron Gutman
7d9478b774
Fix FlipEx on Windows 7
2018-08-21 00:49:29 -07:00
Cameron Gutman
0fa0ab43c9
Fix broken Alt+Tab behavior on Windows
2018-08-20 22:48:48 -07:00
Cameron Gutman
f9cdd49d2e
Add settings option to disable V-sync for lowest possible latency on Windows
2018-08-20 22:25:19 -07:00
Cameron Gutman
7661f5a3d7
Use SetThreadExecutionState() to disable the screensaver since SDL doesn't currently call that. Fixes #46
2018-08-20 21:36:23 -07:00
Cameron Gutman
395f337bbb
Switch full-screen mode back to full-screen exclusive on Windows to reduce latency by 1 frame
2018-08-20 21:19:00 -07:00
Cameron Gutman
9e9fe2a2cf
Work around DWM bug on Windows 7 causing horrible performance
2018-08-20 21:17:25 -07:00
Cameron Gutman
5bf88cfe96
Fix Mac build
2018-08-20 18:57:11 -07:00
Cameron Gutman
f7d3c10c9d
Plumb the ability to disable V-sync through the video renderers
2018-08-20 18:19:42 -07:00
Cameron Gutman
6b395c816f
Allow Pacer to wait for frames up until a few ms before v-sync for better smoothness and lower latency
2018-08-20 17:53:35 -07:00
Cameron Gutman
d6e7173af0
Add a VsyncSource for renderers that already block for V-sync
2018-08-20 17:24:47 -07:00
Cameron Gutman
1a60484abc
Use hardware vertex processing if available
2018-08-19 22:45:17 -07:00
Cameron Gutman
62f765b2b4
Switch DXVA2 to IDirect3D9Ex APIs for more detailed control of rendering
2018-08-19 21:53:39 -07:00
Cameron Gutman
1b8c3aae73
Speed up resize/full-screen by avoiding excessive decoder resets
2018-08-19 01:19:23 -07:00
Cameron Gutman
845e84adb7
Avoid the test frame for DXVA2 and VT APIs to address flickering in full-screen on Win7
2018-08-19 00:59:04 -07:00
Cameron Gutman
c1b1719914
Recreate the VT decoder if the display layer fails. Minor fix to Path class.
2018-08-16 23:09:40 -07:00
Cameron Gutman
9fbdd794b9
Improve support for full-screen exclusive mode
2018-08-16 22:25:14 -07:00
Cameron Gutman
345e800abd
Always submit frames to Pacer if it's using a frame queue
2018-08-16 17:59:33 -07:00
Cameron Gutman
404eaa44e4
Implement frame pacing for Windows using D3DKMTWaitForVerticalBlankEvent
2018-08-16 01:29:53 -07:00
Cameron Gutman
8e257ab241
Remove unused function
2018-08-16 00:04:28 -07:00
Cameron Gutman
fabbad5370
Fix build error on Windows and warnings
2018-08-16 00:02:43 -07:00
Cameron Gutman
7d61acb2a8
Use Pacer to drive all rendering
2018-08-15 23:57:03 -07:00
Cameron Gutman
f6a451d6e7
Add PoC VsyncSource for Windows using DwmFlush(). Soon to be replaced with D3DKMTWaitForVerticalBlankEvent().
2018-08-15 23:20:56 -07:00
Cameron Gutman
e68a15c825
Move the Vsync logic from VTRenderer into a VsyncSource
2018-08-15 22:02:15 -07:00
Cameron Gutman
f929cffce7
Let Pacer know what the display Hz and stream FPS are so it can make better drop decisions
2018-08-15 21:10:35 -07:00
Cameron Gutman
f171588616
Pass the maximum frame rate into FFmpeg renderers
2018-08-15 20:41:19 -07:00
Cameron Gutman
e467ce7ce8
Uninitialize video subsystem before allowing a racing session to start to prevent an assert from firing
2018-08-15 20:35:11 -07:00
Cameron Gutman
f714a5d0cb
Refactor frame pacing from VT renderer into a separate class for sharing with other renderers
2018-08-14 19:13:17 -07:00
Cameron Gutman
c9bf5ae79d
Prevent underflow during audio frame drop calculation
2018-08-14 17:39:29 -07:00
Cameron Gutman
cf2d8f71d6
Avoid setting timer resolution to 1 ms while Moonlight is not streaming
2018-08-13 22:23:05 -07:00
Cameron Gutman
611d9ac1ba
Pass the chroma type to the VDPAU video mixer
2018-08-13 20:02:55 -07:00
Cameron Gutman
bab11a731e
Fix uninitialized gamepad mask in multi-controller mode
2018-08-12 01:39:22 -07:00
Cameron Gutman
566181e8d7
Display error if video decoder doesn't initialize
2018-08-11 22:49:36 -07:00
Cameron Gutman
d3c2f50b20
Remove custom VAAPI logging functions
2018-08-11 20:32:28 -07:00
Cameron Gutman
f1ee1eeb63
Avoid using window systems that SDL wasn't compiled to support
2018-08-11 20:19:20 -07:00
Cameron Gutman
bb18519e44
WIP Wayland rendering code for VAAPI
2018-08-11 19:43:36 -07:00
Cameron Gutman
917f6e5ee9
Only capture the mouse by default for full screen streaming
2018-08-11 14:19:42 -07:00
Cameron Gutman
8f61a11452
Remove improper cast to unsigned value
2018-08-09 20:21:18 -07:00
Cameron Gutman
4b1d3b0125
Warn users when their configuration is impossible to satisfy. Fixes #26
2018-08-09 19:37:49 -07:00
Cameron Gutman
c61182bcb2
Allow FFmpeg decoder to self-heal in cases of UAC dialogs and other unexpected loss of hardware state
2018-08-09 18:39:38 -07:00
Cameron Gutman
2fdfb3e998
Fix a few incorrectly mapped keys. Fixes #28
2018-08-06 20:30:09 -07:00
Cameron Gutman
7be167856e
Only enable game optimizations when streaming at officially supported resolutions
2018-08-05 18:09:35 -07:00
Cameron Gutman
e1d68ef097
Fix Y values wrapping at -32768
2018-08-05 18:01:50 -07:00
Cameron Gutman
b6763bb9f0
Fix VDPAU rendering at 4K
2018-08-05 16:33:08 -07:00
Cameron Gutman
6d9c0c96c9
Fix streaming with non-aligned resolutions with DXVA2 on my Quadro P400
2018-08-05 15:25:40 -07:00
Cameron Gutman
9cc20c27ab
Add support for native resolution streaming
2018-08-05 14:55:26 -07:00
Cameron Gutman
45ebf2ca7d
Add log messages for server GPU, bitrate, and slices
2018-08-05 13:32:04 -07:00
Cameron Gutman
b04bc5117d
Fix scaling logic in the Linux renderers using the new helper function
2018-08-04 22:31:14 -07:00
Cameron Gutman
5cbb38091b
Create new utility function for scaling with aspect ratio and use it for DXVA2
2018-08-04 22:22:15 -07:00
Cameron Gutman
b076744f00
Support HEVC software decoding and forcing HEVC without GPU support
2018-08-04 16:45:31 -07:00
Cameron Gutman
723e815546
Add warning for forcing software decoding
2018-08-04 16:15:13 -07:00
Cameron Gutman
ca72cbb135
Implement displaying launch warnings. Fixes #12
2018-08-04 16:05:37 -07:00
Cameron Gutman
1e8c2b179a
Only fill the screen in windowed mode if the stream is larger than usable display area
2018-08-04 15:34:56 -07:00
Cameron Gutman
f2ed3a8502
Make stream window resizable
2018-08-04 15:34:56 -07:00
Cameron Gutman
3117e360f4
Retry surface creation to work around transient VDP_STATUS_RESOURCES errors
2018-08-03 18:26:55 -07:00
Cameron Gutman
48a770edec
Enable HEVC support on NVIDIA GPUs with VDPAU
2018-08-03 02:49:43 -07:00
Cameron Gutman
fca402138f
Add VDPAU renderer
2018-08-03 02:11:44 -07:00
Cameron Gutman
2853e498b0
Minor debugging improvements
2018-08-02 23:24:44 -07:00
Cameron Gutman
509dba2264
Enable ffmpeg logging during codec initialization
2018-08-02 22:48:40 -07:00
Cameron Gutman
b8dd131af8
Allow gamepad input when the app doesn't have focus. Fixes #23
2018-08-02 22:36:44 -07:00
Cameron Gutman
0c18bcdd5e
Fix DXVA 2 regression on Windows
2018-08-02 22:28:59 -07:00
Cameron Gutman
624578f286
Fix decoder reinitialization after test frame
2018-08-02 21:57:16 -07:00
Cameron Gutman
c18e99c9ec
Validate that the codec is functional before using it. Fixes streaming failure with VAAPI if hardware lacks codec support
2018-08-02 21:37:46 -07:00
Cameron Gutman
18dd6b09bb
Remove 10 ms sleep hidden inside SDL_WaitEvent(). This fixes mouse polling rate being capped at 100 Hz (1 second / 10 ms) and the rendering FPS being capped at 90 FPS.
2018-08-01 18:26:50 -07:00
Cameron Gutman
e250e08242
Fix AMD vendor ID
2018-07-31 18:22:10 -07:00
Cameron Gutman
141ee11e2f
Avoid HEVC on GPUs using hybrid decoding. Fixes #14
2018-07-31 18:09:09 -07:00
Cameron Gutman
22be912788
Fix accent prompt appearing when keys are held down on macOS
2018-07-30 22:44:19 -07:00
Cameron Gutman
e9c1f883da
Use full-screen desktop mode for Mac to allow Spaces to work
2018-07-30 00:03:17 -07:00
Cameron Gutman
df26f731eb
Improve debugging messages
2018-07-28 16:06:26 -07:00
Cameron Gutman
d9ed3f9694
Fix incorrect key mappings with non-QWERTY keyboards on both host and client
2018-07-27 02:08:54 -07:00
Cameron Gutman
9e6aadffa1
Populate the DXVA2_VideoDesc with format details from the AVFrame
2018-07-26 21:04:05 -07:00
Cameron Gutman
0bde932550
Prevent HEVC streaming with the software decoder for performance reasons
2018-07-26 19:26:22 -07:00
Cameron Gutman
f5499be215
Warn when no hardware decoding is available
2018-07-26 12:13:38 -07:00
Cameron Gutman
010475e8a2
Use per-display undefined window positions
2018-07-22 18:40:15 -07:00
Cameron Gutman
bd170c4bd6
Always use the current display mode and just let the renderers scale the output
2018-07-22 18:28:17 -07:00
Cameron Gutman
386e463942
Also use the SDL icon for Linux
2018-07-22 17:42:31 -07:00
Cameron Gutman
9d840afdfb
Add an SDL window icon for Windows
2018-07-22 17:07:45 -07:00
Cameron Gutman
83b81aad4b
Don't capture the mouse initially on debug builds
2018-07-22 16:21:15 -07:00
Cameron Gutman
cf3cbd627d
Use full-screen windowed mode to avoid having to enable V-Sync on DXVA2
2018-07-22 15:42:17 -07:00
Cameron Gutman
3bb62a82e1
Avoid doing a display mode change on Linux when entering full-screen
2018-07-22 14:03:47 -07:00
Cameron Gutman
ad57a55d12
Add (untested) Steam Link video decoding/rendering
2018-07-21 20:29:05 -07:00
Cameron Gutman
519626a6d5
Fix compilation with Qt 5.9
2018-07-21 18:47:41 -07:00
Cameron Gutman
b7b452875d
Add a missing HAVE_FFMPEG guard
2018-07-21 17:32:00 -07:00
Cameron Gutman
eb536c2273
Overhaul platform and decoder/renderer detection
2018-07-21 17:00:09 -07:00
R. Aidan Campbell
c816a6198c
fix macos build: for macos, Q_OS_UNIX is also defined
2018-07-21 14:31:37 -07:00
Cameron Gutman
399154f5f5
Implement VAAPI rendering for X11
2018-07-21 00:16:03 -07:00
Cameron Gutman
64a839c2f9
Create the window after starting streaming to avoid a mouse capture bug in SDL on Windows
2018-07-20 19:55:07 -07:00
Cameron Gutman
20288210be
Fix VT video centering after transition from windowed to full screen
2018-07-20 19:37:54 -07:00
Cameron Gutman
7b235743cb
Count the window chrome size in our placement decision and fix sizing after full-screen toggle
2018-07-20 19:18:55 -07:00
Cameron Gutman
4c507f1179
Move SDL subsystem init into appropriate components to fix gamepad detection issue
2018-07-20 18:15:46 -07:00
Cameron Gutman
e516861366
Set window dimensions properly when toggling full-screen
2018-07-20 16:01:22 -07:00
Cameron Gutman
10b5245919
Reset the decoder when D3D state is lost
2018-07-20 15:31:57 -07:00
Cameron Gutman
faaf9dfa07
Fix crashes when restarting streaming with DXVA2 renderer due to leaked surface references
2018-07-20 13:10:54 -07:00