Commit Graph

569 Commits

Author SHA1 Message Date
Cameron Gutman 43dc7cf7c0 Fix video bitstream corruption when matching replacement isn't found
NVENC doesn't always include the HEVC bitstream prefix that Sunshine
is looking to patch. When this happens replace() appends a spurious
00 00 00 01 28 NALU prefix to the end of the bitstream rather than
simply doing nothing.

This causes varying degrees of malfunctioning depending on the client,
with the worst being complete video corruption on iOS.
2021-07-09 20:04:07 -05:00
Cameron Gutman e8feb00b33 Use a valid RTP version to fix Wireshark parsing 2021-07-09 20:01:39 -05:00
Cameron Gutman 049044f768 Update GfeVersion to be consistent with AppVersion 2021-07-09 08:47:44 -05:00
Cameron Gutman 971c784f14 Add basic NVENC support on Linux
We're not offloading scaling and YUV conversion from the CPU yet,
so the gains aren't as high as one of the fully accelerated
backends like Windows NVENC or Linux VAAPI.

Still, offloading the H.264/HEVC encoding itself is an improvement
over doing everything on the CPU.
2021-07-09 08:13:05 -05:00
loki 747ba7f23a fix incorrect pix_fmt 2021-07-09 14:21:57 +02:00
loki 4a3f3622b8 Merge branch 'master' into encrypt_control_and_audio 2021-07-09 14:19:21 +02:00
loki 7d2705424a Use extended termination error code 2021-07-09 13:26:39 +02:00
loki b228fd371c Send back encrypted termination code 2021-07-09 12:27:38 +02:00
loki cbd2a8269c Encrypt audio when requested by Moonlight 2021-07-08 22:44:35 +02:00
loki 7f9467d759 Add support for IDR frame request for encrypted control 2021-07-07 17:10:06 +02:00
loki 9cf7c14a26 Improve speed quitting apps 2021-07-07 17:00:12 +02:00
loki 8249d41848 Let Moonlight know it's unauthorized, rather than just resetting the connection 2021-07-07 16:39:16 +02:00
Cameron Gutman 6d0499b0e3 Remove super key workaround
Moonlight can now pass the super key natively
2021-07-06 23:34:11 -05:00
loki fd7a6d070b Merge branch 'master' into encrypt_control_and_audio 2021-07-06 20:54:52 +02:00
loki 3d81b0fe7a Remove redundant code 2021-07-06 20:54:29 +02:00
loki 1d37a19468 Merge branch 'master' into encrypt_control_and_audio 2021-07-06 19:31:18 +02:00
loki-47-6F-64 cc3cf60015 Merge pull request #116 from cgutman/fix_expired_certs
Allow expired or not-yet-valid client certificates
2021-07-06 19:30:08 +02:00
loki 25aa8b41a5 Don't keep reinitializing the cipher context for gcm 2021-07-06 19:11:16 +02:00
Cameron Gutman 667878d2eb Fix IDR frame delays after packet loss or client request
This can lead to spurious poor connection warnings in Moonlight.
2021-07-05 17:55:32 -05:00
Cameron Gutman 53a9f365ce Allow expired or not-yet-valid client certificates 2021-07-05 16:42:59 -05:00
loki a587338701 Fully encrypt control data 2021-07-05 20:58:53 +02:00
loki a52f547726 Correctly identify size of rtsp packet 2021-07-04 21:25:10 +02:00
loki 136e9c43a5 Handle RTSP packets that are broken up in more than two pieces 2021-07-04 18:57:55 +02:00
loki 616f62fb9f Add support for periodic ping 2021-07-04 17:12:41 +02:00
loki 9d10eaeef4 Merge branch 'master' into min_fec_packets 2021-07-04 16:30:40 +02:00
loki f23fcee382 Merge branch 'audio_fec' into min_fec_packets 2021-07-04 16:29:34 +02:00
loki 21b1a4a336 If all content has been read in RTSP request, no need for waiting for next message 2021-07-04 16:06:03 +02:00
loki b346ac2eb0 Use tcp instead of udp for RTSP setup 2021-07-04 15:50:28 +02:00
Cameron Gutman db5a9363ba Add support for minimum required FEC packets attribute 2021-07-04 00:14:22 -05:00
Cameron Gutman 0a637b2272 Parse additional SDP options 2021-07-03 23:38:45 -05:00
Cameron Gutman 169a53b568 Increase default FEC percentage to match GFE
Also increase the range to the maximum of 255
2021-07-03 23:37:43 -05:00
Cameron Gutman 109b48a108 Implement audio FEC support 2021-07-03 18:32:33 -05:00
Cameron Gutman 118707f37a Improve audio RTP header data to better match GFE 2021-07-03 16:05:18 -05:00
loki 355df9a615 Listening on arbitrary ports now compatible with Moonlight 2021-07-03 13:14:23 +02:00
loki 96cfb1f368 add missing file 2021-07-01 12:17:10 +02:00
loki 545cca792b Fix inabillity to display secure desktop even when runnig as system account 2021-06-30 22:03:21 +02:00
loki ae04c4afbb Gracefully exit when stopped by systemd or pkill 2021-06-30 17:28:58 +02:00
loki beb6bdfadb Allow end user to configure what ports to listen on 2021-06-30 15:25:08 +02:00
loki 8bf4ade9d8 Disable UPnP by default 2021-06-30 12:22:37 +02:00
loki ea928c53b4 Add support for upnp 2021-06-29 22:42:06 +02:00
loki 0cc7e35ed9 Automatic service discovery for Windows 2021-06-28 21:05:52 +02:00
loki cf7eb14573 Remove redundent thread creation 2021-06-26 15:48:07 +02:00
loki ed5de34800 Dynamically load avahi libraries if they are available 2021-06-26 15:36:56 +02:00
loki 27d4f6063f refactored publish.cpp from C code to C++ code 2021-06-26 13:32:14 +02:00
loki 62662edc8d Merge with master 2021-06-26 12:40:06 +02:00
loki b67600962a Fix incorrect scaling for absolute mouse coordinates 2021-06-24 20:53:19 +02:00
loki 926e95f527 Fix absolute mouse coordinates with multiple monitors on Windows 2021-06-23 21:51:15 +02:00
loki 029194cb60 Fix incorrect abs mouse coordinates on Linux when scaling to different aspect ratio 2021-06-23 14:05:09 +02:00
loki 7e3abefc2c pass session event objects through safe::mail_t 2021-06-22 22:26:11 +02:00
loki cf9eb961fc Pass global event objects through mail_t 2021-06-21 21:21:52 +02:00