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 |
|
Cameron Gutman
|
e85ca2a6c9
|
Reduce VideoToolbox renderer video latency
|
2018-07-18 22:25:46 -07:00 |
|
Cameron Gutman
|
e32aace443
|
Draw a black background behind the rendering
|
2018-07-18 22:07:43 -07:00 |
|
Cameron Gutman
|
bd8e4a4bce
|
Fix DXVA video centering
|
2018-07-18 21:48:46 -07:00 |
|
Cameron Gutman
|
06501bd4b7
|
Fix video scaling on DXVA2
|
2018-07-18 19:10:14 -07:00 |
|
Cameron Gutman
|
a4ad58d9ec
|
Fix some Clang static analysis warnings
|
2018-07-18 18:39:33 -07:00 |
|
Cameron Gutman
|
76d99cd60e
|
Raise combo keys for all special combos, not just quit
|
2018-07-18 00:14:12 -07:00 |
|
Cameron Gutman
|
1b85dcc829
|
Improve frame pacing on VideoToolbox renderer
|
2018-07-18 00:11:17 -07:00 |
|
Cameron Gutman
|
c97e298b80
|
Use the queueFrame() helper
|
2018-07-17 20:05:59 -07:00 |
|
Cameron Gutman
|
a89cadc520
|
Separate FFmpeg decoder from the Session class (#4)
|
2018-07-17 20:00:16 -07:00 |
|
Cameron Gutman
|
d3f7204cff
|
Set the main thread to high priority since it's used for rendering
|
2018-07-16 21:25:59 -07:00 |
|
Cameron Gutman
|
ca20d28a24
|
Fix SDL renderer scaling at non-native resolution
|
2018-07-16 02:07:32 -07:00 |
|
Cameron Gutman
|
998d837ff4
|
Optimize resolution and window size selection
|
2018-07-16 01:55:36 -07:00 |
|
Cameron Gutman
|
641b50b7ee
|
Use larger packets when streaming to local PCs
|
2018-07-16 01:12:53 -07:00 |
|
Cameron Gutman
|
68bbeafab3
|
Adapt the audio latency mitigation to WASAPI quirks and add a "stop the world" mode for quick resync
|
2018-07-15 21:43:43 -07:00 |
|
Cameron Gutman
|
7f8d4c88c1
|
Implement audio latency mitigations
|
2018-07-15 20:17:08 -07:00 |
|
Cameron Gutman
|
a6ac893e1e
|
Implement VideoToolbox rendering
|
2018-07-15 18:11:57 -07:00 |
|
Cameron Gutman
|
9f605230e5
|
Allow building on XCode 8
|
2018-07-15 14:03:41 -07:00 |
|
Cameron Gutman
|
5787deeee1
|
Basic VT decoding without rendering
|
2018-07-15 12:48:17 -07:00 |
|
Cameron Gutman
|
babbae87d3
|
Stub out VideoToolbox renderer
|
2018-07-15 11:53:55 -07:00 |
|
Cameron Gutman
|
cb154ad3d4
|
Fix tearing with DXVA2 in full screen mode
|
2018-07-15 00:43:10 -07:00 |
|
Cameron Gutman
|
611b504bf9
|
Minor DXVA2 logging fixes
|
2018-07-13 20:49:51 -07:00 |
|
Cameron Gutman
|
08bc4770cd
|
Fix key repeating
|
2018-07-13 20:30:07 -07:00 |
|
Cameron Gutman
|
f9ef0a99d6
|
Fix DX threading violation by setting D3DCREATE_MULTITHREADED
|
2018-07-13 20:20:30 -07:00 |
|
Cameron Gutman
|
89e332048e
|
Ensure the DXVA2 device is actually hardware with YUV2RGB conversion ability before using it
|
2018-07-13 20:19:32 -07:00 |
|
Cameron Gutman
|
1cae5f83e5
|
DXVA2 Hardware Decoding (#3)
|
2018-07-13 02:31:21 -07:00 |
|
Cameron Gutman
|
e8e9e17e63
|
Improve UI responsiveness when stopping a stream
|
2018-07-09 00:09:06 -07:00 |
|
Cameron Gutman
|
5a04a256e0
|
Add additional serverinfo attributes and check for 4K compatibility
|
2018-07-08 20:53:24 -07:00 |
|
Cameron Gutman
|
d0375a458a
|
Bound thread count at 4 (same as max slices) and don't use HEVC with the software decoder due to lack of slicing support in common-c
|
2018-07-08 17:50:42 -07:00 |
|
Cameron Gutman
|
7023bcf504
|
Make StreamingPreferences accessible from QML for Settings integration
|
2018-07-08 17:33:47 -07:00 |
|
Cameron Gutman
|
826fe4cd03
|
Implemented software video decoding and special key combos
|
2018-07-07 21:52:20 -07:00 |
|
Cameron Gutman
|
60ad95bb7b
|
Start work on launching a stream from QML and rip out remaining QtWidgets
|
2018-07-07 16:30:26 -07:00 |
|
Cameron Gutman
|
6a3b95a4b1
|
Start GUI rewrite in QML
|
2018-07-04 14:16:25 -07:00 |
|
Cameron Gutman
|
a02931f5fc
|
Cleanup some unused parameter warnings
|
2018-07-01 11:54:12 -07:00 |
|
Cameron Gutman
|
3d7c8d4bfb
|
Fix some warnings on GCC
|
2018-06-28 03:13:38 -07:00 |
|
Cameron Gutman
|
e5ef1bcfc5
|
Stub out the error handling when launch/resume fails
|
2018-06-28 02:10:31 -07:00 |
|
Cameron Gutman
|
d1a512538c
|
Fix input bugs from the C++ transistion and implement special key combo stubs
|
2018-06-28 02:04:51 -07:00 |
|
Cameron Gutman
|
0821c66d8c
|
Rewrite streaming code to C++ and forklift most of the setup out of the GUI code
|
2018-06-28 01:44:43 -07:00 |
|
Cameron Gutman
|
94ecc4a1c8
|
Always return 1 gamepad in single controller mode
|
2018-06-27 23:53:12 -07:00 |
|
Cameron Gutman
|
ce4e469b7b
|
We can't change audio config after sending the launch or resume request, so autodetection will need to happen earlier
|
2018-06-27 01:39:48 -07:00 |
|
Cameron Gutman
|
16d7dca784
|
Fix analog sticks and triggers
|
2018-06-26 22:58:32 -07:00 |
|
Cameron Gutman
|
cded01187d
|
More streaming code
|
2018-06-24 00:14:23 -07:00 |
|
Cameron Gutman
|
416724f843
|
More SDL work
|
2018-06-23 22:16:59 -07:00 |
|
Cameron Gutman
|
ce64966843
|
Reorganize and prepare for SDL integration
|
2018-06-23 18:46:59 -07:00 |
|