Commit graph

271 commits

Author SHA1 Message Date
Cameron Gutman
59d087adf5 Add function for querying maximum supported streaming frame rate 2018-07-28 00:25:52 -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
e652dbcc79 Version 0.0.2 2018-07-27 00:14:29 -07:00
Cameron Gutman
717c3903d1 Fix top padding for grid views 2018-07-26 22:47:48 -07:00
Cameron Gutman
5854ce2000 Fix handling of long app names 2018-07-26 22:39:45 -07:00
Cameron Gutman
eb1316ce32 Avoid asserting if we get a box art load completion callback for an app that's gone 2018-07-26 22:16:27 -07:00
Cameron Gutman
c31e7262b2 Fix decoding of non-ASCII characters 2018-07-26 22:15:52 -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
42988e0dbf Limit log file sizes to 10k lines 2018-07-26 00:21:26 -07:00
Cameron Gutman
b16aac0c06 Fix priority and formatting on many debug messages 2018-07-25 23:47:32 -07:00
Cameron Gutman
7c74cdc50b Add enhanced logging support, including log to file for release builds 2018-07-25 23:25:17 -07:00
Cameron Gutman
34494e4c89 Add initial WiX installer for Windows 2018-07-25 02:53:51 -07:00
Cameron Gutman
03dc563b32 Create Moonlight png for WiX bootstrapper 2018-07-24 21:11:48 -07:00
Cameron Gutman
5e4182f0a0 Add Moonlight.ico for Windows and script to generate it 2018-07-24 20:07:10 -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
a06a625d48 Rework the logo SVG to look better as an app icon, by Jorys Paulin 2018-07-22 03:21:19 -07:00
Cameron Gutman
13d686b6f8 Rename output binary to moonlight 2018-07-22 03:16:53 -07:00
Cameron Gutman
18c5e19ac9 Add files for Flatpak deployment 2018-07-22 01:51:05 -07:00
Cameron Gutman
ad57a55d12 Add (untested) Steam Link video decoding/rendering 2018-07-21 20:29:05 -07:00
Cameron Gutman
dc723a8da1 Fix strict aliasing violation 2018-07-21 19:16:08 -07:00
Cameron Gutman
b073c90f0f Fix build on OpenSSL 1.0.1 2018-07-21 19:02:12 -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
R. Aidan Campbell
48c2a8c5b0 Merge branch 'master' of github.com:cgutman/moonlight-qt 2018-07-20 15:47:57 -07:00
R. Aidan Campbell
b41e8c07d2 Switched settings page to two-pane layout 2018-07-20 15:47:50 -07:00
Cameron Gutman
10b5245919 Reset the decoder when D3D state is lost 2018-07-20 15:31:57 -07:00
R. Aidan Campbell
86874a2e1c minor wording change in settings 2018-07-20 14:36:39 -07:00
R. Aidan Campbell
f951a01a68 changed audio configuration to a dropdown, allowing auto/stereo/surround 2018-07-20 14:35:47 -07:00
R. Aidan Campbell
d12fed3e7f remove unused settings 2018-07-20 14:24:27 -07:00
R. Aidan Campbell
4566139c75 now with video codec selection 2018-07-20 14:22:22 -07:00
R. Aidan Campbell
38df63b962 now with video decoder selection 2018-07-20 14:14:38 -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
9c2befc386 Only require OpenSSL 1.1 on Apple platforms where SecureTransport requires keys from PEM_write_bio_PrivateKey_traditional() 2018-07-19 23:19:00 -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
5ee1358712 Implement a proper destructor for ComputerManager to prevent polling threads from living beyond QGuiApplication 2018-07-18 21:27:43 -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
R. Aidan Campbell
ec68f2ae89 logo tweaks: border sizing and shadow 2018-07-17 19:40:08 -07:00
R. Aidan Campbell
2be5040c24 Now with surround-sound checkbox support 2018-07-17 19:39:23 -07:00
R. Aidan Campbell
c23b1a31be Now with default bitrate suggestions per resolution and framerate 2018-07-17 18:52:06 -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
R. Aidan Campbell
8c65ee8bc5 Now with using, saving, and loading of the resolution and FPS settings 2018-07-15 18:27:41 -07:00
Cameron Gutman
a6ac893e1e Implement VideoToolbox rendering 2018-07-15 18:11:57 -07:00
R. Aidan Campbell
3a4da50bbb now with a swanky svg icon replacing a 128px png 2018-07-15 14:59:26 -07:00
Cameron Gutman
9f605230e5 Allow building on XCode 8 2018-07-15 14:03:41 -07:00
R. Aidan Campbell
565b61c470 Merge branch 'master' of github.com:cgutman/moonlight-qt 2018-07-15 13:09:22 -07:00
R. Aidan Campbell
d1d40421eb replaced png icons with svgs 2018-07-15 13:09:16 -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
af503a9147 Fix spurious "Failed to connect to PC" dialogs for mDNS-discovered hosts 2018-07-13 22:38:58 -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
c62fff8fc4 Fix uninitialized variables found by Valgrind 2018-07-13 02:50:02 -07:00
Cameron Gutman
1cae5f83e5 DXVA2 Hardware Decoding (#3) 2018-07-13 02:31:21 -07:00
Cameron Gutman
86f843464c Hide the toolbar when the StreamSegue page is visible 2018-07-09 00:12:27 -07:00
Cameron Gutman
e8e9e17e63 Improve UI responsiveness when stopping a stream 2018-07-09 00:09:06 -07:00
Cameron Gutman
908850cc5d Add the smooth grid scaling for PCs too 2018-07-08 23:37:00 -07:00
Cameron Gutman
644c3c0c24 Cache app grid items to smooth out jank during scrolling and resizing 2018-07-08 23:34:30 -07:00
Cameron Gutman
a56d27e3f2 Move the PC SVGs back where they belong 2018-07-08 23:27:20 -07:00
Cameron Gutman
98b76d3203 Fix Material theme 2018-07-08 23:24:26 -07:00
Cameron Gutman
c35d07c961 Add scroll bars to the computer grid and app grid 2018-07-08 23:05:36 -07:00
Cameron Gutman
c4a1f74b02 Hook up a few of the preferences 2018-07-08 22:56:38 -07:00
Cameron Gutman
62cf95d55e Prevent multiple instances of the same page on the StackView and stub out GamepadMapper 2018-07-08 22:37:29 -07:00
Cameron Gutman
a47f59d1a4 Properly manage the lifetime of polling in the AppView and PcView 2018-07-08 22:07:20 -07:00
Cameron Gutman
83ca211d75 Add a segue to the streaming window 2018-07-08 22:06:52 -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
R. Aidan Campbell
67eb09d753 Merge branch 'master' of github.com:cgutman/moonlight-qt 2018-07-08 11:38:07 -07:00
R. Aidan Campbell
c2966a5c66 Now with an application icon for MacOS 2018-07-08 11:38:01 -07:00
MINICOM\mrb11
640f47300c Make settings page scrollable and match the app color scheme 2018-07-08 11:20:56 -07:00
MINICOM\mrb11
33a0188fea Fill out remainder of dummy settings 2018-07-08 11:12:22 -07:00
Michelle Bergeron
8ebb594089
Beginnings of settings page (#2)
* Make Moonlight icon the window icon for all windows

* Add dummy settings

* Add slider

* FIx comments
2018-07-08 10:19:08 -07:00
R. Aidan Campbell
7bc139c50d Now with identification of the currently running app 2018-07-08 08:44:09 -07:00
R. Aidan Campbell
c27711582a now with smooth window scaling for app listing 2018-07-08 08:28:28 -07:00
Cameron Gutman
d7f09382e0 Use a less recent version of QtQuick.Layouts to support Fedora 28 2018-07-07 22:59:05 -07:00
Cameron Gutman
d9301fc06d Fix build on Linux 2018-07-07 22:41:32 -07:00
Cameron Gutman
272aa6896e Fix unused member warning on Clang 2018-07-07 22:26:12 -07:00
Michelle Bergeron
b630c07653 Add navigation toolbar (#1)
* Add preferences view skeleton

* Add toolbar & help button

* Add working back button

* Title of page in toolbar

* Remove unused imports

* Make comments better!

* Remove unused drawer element

* Remove superfluous > 1 check

* Use point size font instead of pixel size

* Add AppView page title
2018-07-07 22:15:02 -07:00
Cameron Gutman
826fe4cd03 Implemented software video decoding and special key combos 2018-07-07 21:52:20 -07:00
Cameron Gutman
02f4f193a9 Add ffmpeg libraries for Windows x64 2018-07-07 20:45:54 -07:00
Cameron Gutman
bf671752df UI polish 2018-07-07 16:49:13 -07:00
Cameron Gutman
997fdc1ef6 Fix linking on Windows 2018-07-07 16:37:11 -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
d5cc07f107 Remove unused enum value to fix GCC warnings 2018-07-07 15:26:20 -07:00
Cameron Gutman
78746824e2 Fix inconsistent ComputerModel view of the ComputerManager's state after new PC is added 2018-07-06 00:42:07 -07:00
Cameron Gutman
ecebf75b88 Implement manually adding PCs 2018-07-06 00:34:16 -07:00
Cameron Gutman
6687936e2f Implement pairing via GUI 2018-07-05 23:12:55 -07:00
Cameron Gutman
1b1ad86271 Keep a singleton ComputerManager outside of the Models 2018-07-05 22:08:55 -07:00
R. Aidan Campbell
0d26ef7e5c Now with pin generation for pairing 2018-07-05 21:16:32 -07:00
Cameron Gutman
bd986bfb21 Sort the app list in alphabetical order 2018-07-05 20:54:31 -07:00
R. Aidan Campbell
79435b60ff Now with notification dialog for attempts to pair while busy 2018-07-05 20:49:10 -07:00
Cameron Gutman
f120197c21 Fix ComputerModel.paired 2018-07-05 20:41:17 -07:00
Cameron Gutman
ebf27cdcaf More UI work including hooking up PcView -> AppView transition 2018-07-05 20:37:51 -07:00
Cameron Gutman
f83c13ad85 Cleanup ComputerModel and remove root Frame from PcView 2018-07-05 20:11:35 -07:00
Cameron Gutman
b0151da455 Add AppModel and AppView for loading apps and modify BoxArtManager to return QUrls for QML 2018-07-05 20:07:05 -07:00
R. Aidan Campbell
95eebdbe66 now with pairing and add-host dialogs 2018-07-04 18:48:09 -07:00
Cameron Gutman
485c014490 Fix crash on the placeholder icon and fix display of multiple PCs 2018-07-04 16:52:16 -07:00
Cameron Gutman
3a7d3c807e WIP Quick GUI work 2018-07-04 16:40:21 -07:00
Cameron Gutman
6a3b95a4b1 Start GUI rewrite in QML 2018-07-04 14:16:25 -07:00
Cameron Gutman
04c9a3a2eb Implement Wake-on-LAN 2018-07-03 22:11:21 -07:00
Cameron Gutman
a02931f5fc Cleanup some unused parameter warnings 2018-07-01 11:54:12 -07:00
Cameron Gutman
5729f65138 Implement mDNS PC discovery 2018-06-30 23:07:31 -07:00
Cameron Gutman
7186f20e05 Integrate forked QMdnsEngine with some required fixes for GameStream (submitted upstream) 2018-06-30 21:41:00 -07:00
Cameron Gutman
4c75456aee Fix improper handling of polling thread termination 2018-06-28 03:52:42 -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
cad95f12f6 More PoC streaming code (closer to final) 2018-06-27 23:54:24 -07:00
Cameron Gutman
94ecc4a1c8 Always return 1 gamepad in single controller mode 2018-06-27 23:53:12 -07:00
Cameron Gutman
7d14b2a2be Fix endianness issue with the RI key IV 2018-06-27 23:52:29 -07:00
Cameron Gutman
6e4104ac15 Add StreamingPreferences class 2018-06-27 23:15:13 -07:00
Cameron Gutman
6fa4faa285 Rename http folder to backend to better align with the classes inside 2018-06-27 22:30:33 -07:00
Cameron Gutman
1b36071e02 Additional work in MainWindow for integration with new classes 2018-06-27 22:16:57 -07:00
Cameron Gutman
d7d11635a0 Add BoxArtManager for loading box art with caching 2018-06-27 22:02:29 -07:00
Cameron Gutman
135568b5ee Minor class improvements 2018-06-27 19:55:44 -07:00
Cameron Gutman
36c8b6ce53 Persist host changes after update 2018-06-27 02:08:56 -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
0bd2274462 Simplify IdentityManager by using QSettings instead of files 2018-06-27 01:36:56 -07:00