Commit Graph

74 Commits

Author SHA1 Message Date
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