649 Commits

Author SHA1 Message Date
Cameron Gutman
830187e4da Throttle mouse/controller message rate in the input send thread
This avoids clients from all having to handle this themselves independently.
2023-02-14 21:24:13 -06:00
Cameron Gutman
95e3e26d12 Send TCP FIN after completion of our RTSP request
This allows servers to read until a FIN, just like we do on the client.
2023-02-13 21:47:22 -06:00
Cameron Gutman
8186687093 Fix video header parsing assert with GFE 3.27 2023-02-13 21:26:47 -06:00
Mariotaku
cf0a0ced90
Use new mbedtls APIs (#75) 2023-02-13 20:31:45 -06:00
Cameron Gutman
be1a48e856 Treat WSA_IO_PENDING as a receive timeout 2023-02-13 20:20:44 -06:00
Cameron Gutman
dc186082a7 Add protocol extension for multi-client-compatible ping support 2023-02-12 01:23:25 -06:00
HexJacaranda
5e14dbc15e Options value parsing fix 2023-02-11 15:37:52 -06:00
Cameron Gutman
07beb0f0a5 Accept any negative version as Sunshine 2023-01-16 21:38:36 -06:00
Cameron Gutman
08bb69ff7c Fix HScroll packet typedef 2023-01-16 21:24:09 -06:00
Cameron Gutman
4dbb445f8b Suppress Opus header assert with Sunshine 2023-01-16 21:13:18 -06:00
Cameron Gutman
e1a7fe84e0 Add missing return 2023-01-16 21:12:24 -06:00
Cameron Gutman
79b5ef0e1e Add Sunshine protocol extension for passing HDR metadata 2023-01-16 21:06:33 -06:00
Cameron Gutman
c9a5cea93e Add Sunshine protocol extension to support non-normalized key codes 2023-01-16 21:05:11 -06:00
Cameron Gutman
22adeb3902 Enable high resolution scroll events on Sunshine 2023-01-16 20:58:03 -06:00
Cameron Gutman
071e595766 Implement horizontal scrolling protocol extension for Sunshine 2023-01-16 20:56:51 -06:00
Cameron Gutman
ef9ad529a4 Skip PPS NALUs prepended to P-frames 2023-01-02 23:48:16 -06:00
Cameron Gutman
9da6329496 Fix integer truncation warning on MSVC 2022-12-06 17:33:43 -06:00
Cameron Gutman
5c7a5ce129 Remove overzealous assert 2022-12-06 17:23:11 -06:00
Cameron Gutman
bc00d957d3 Synthesize a PTS for hosts that don't send one 2022-12-06 17:22:02 -06:00
Cameron Gutman
8169a31ecc Fix incorrect PNV_INPUT_HEADER typedef 2022-11-22 21:30:17 -06:00
Cameron Gutman
0a87fd023d Add magic values for keyboard/mouse up/down 2022-11-22 18:27:27 -06:00
Cameron Gutman
4840e431f4 Call notifyKeyFrameReceived() before the decoder processes the frame
We don't care if the decoder processes it successfully.
2022-11-21 02:22:26 -06:00
Cameron Gutman
1e582e3e58 Improve decode unit validation 2022-11-21 02:17:47 -06:00
Cameron Gutman
549058d9d1 Assert that P-frames are not processed before IDR frames 2022-11-12 19:42:51 -06:00
Cameron Gutman
56d6b7ff5a Ensure RFI is not used when an IDR frame is needed 2022-11-12 19:22:13 -06:00
Cameron Gutman
50c0a51b10 Improve high quality audio support
High quality audio now works on IPv6 and remote connections
2022-11-04 21:44:07 -05:00
happyharryh
7d9df5b731 Update oldestRtpBaseSequenceNumber when advance the queue state 2022-10-31 20:36:55 -05:00
Cameron Gutman
6418c631ba Further improve audio FEC recovery logic when dealing with completely missing FEC blocks 2022-10-25 22:31:18 -05:00
Cameron Gutman
21998586d1 Improve audio recovery when a prior FEC block was completely lost
We now start playing the latest FEC block immediately, instead of needlessly
waiting for a second FEC block to realize we've lost a full block and need
to skip forward.
2022-10-24 23:38:23 -05:00
Cameron Gutman
7ba4eea417 Don't print misleading audio FEC log messages 2022-10-23 22:09:01 -05:00
Cameron Gutman
a2f68835f9 Fix signed comparison warning on GCC 2022-10-22 15:08:55 -05:00
Cameron Gutman
af1dbfe505 Use APP_VERSION_AT_LEAST in a couple other places 2022-10-22 14:45:19 -05:00
Cameron Gutman
b282c7e603 Ensure UNIX implementations of PltGetMillis() are not limited to 32 bits 2022-10-22 14:45:19 -05:00
Cameron Gutman
6d767a8494 Assume the platform supports clock_gettime() if CLOCK_MONOTONIC is defined 2022-10-22 14:45:19 -05:00
Cameron Gutman
9e52b70edf Fix handling of a drop pattern where OOS packets are late but in contiguous order from the previous point 2022-10-22 14:45:19 -05:00
Cameron Gutman
05a925b801 Simplify speculative RFI tracking by looking at missing shards of any type 2022-10-22 14:45:19 -05:00
Cameron Gutman
5f92ecafe7 Avoid triggering RFI wait code for decode unit queue overflow 2022-10-06 21:25:48 -05:00
Cameron Gutman
44668bd256 Distinguish speculative RFIs from normal FEC-initiated RFIs 2022-10-06 21:21:00 -05:00
Cameron Gutman
73f1ec64a8 Suppress speculative RFI for 5 minutes after OOS data is detected 2022-10-06 21:20:44 -05:00
Cameron Gutman
947d1b5aef Predictive RFI -> Speculative RFI 2022-10-06 21:20:44 -05:00
Cameron Gutman
9d25ebec40 Immediately report a lost frame if we find a discontinuity in the frame indices 2022-10-06 21:20:41 -05:00
Cameron Gutman
7d1a081fd0 Fix signature of notifyFrameLost() and add additional assert 2022-10-06 20:38:55 -05:00
Cameron Gutman
f2dd7888f7 Immediately request an IDR frame on corrupt frame 2022-10-06 20:36:53 -05:00
Cameron Gutman
e951302927 Disable RFI when streaming from a server that doesn't support it 2022-10-06 20:01:40 -05:00
Cameron Gutman
9091238861 Add another predictive RFI detection technique 2022-10-06 01:17:37 -05:00
Cameron Gutman
5e1be51b84 Implement predictive RFI to recover more quickly from frame loss
With predictive RFI, we can recover from a lost frame as soon as the next frame
by predicting whether we will have enough FEC data to be be able to recover a
frame based on the sequence numbers of the received packets.
2022-10-05 22:04:22 -05:00
Cameron Gutman
9240090983 Add LiRequestIdrFrame() API for requesting an IDR frame on demand 2022-10-05 00:46:56 -05:00
Cameron Gutman
502f799a73 Add ML_ERROR_FRAME_CONVERSION error constant 2022-10-04 19:37:35 -05:00
Cameron Gutman
bfade1d795 Add workaround for nvstreamer.exe crash on GFE 3.26 when streaming below 720x540 2022-10-04 18:33:12 -05:00
Cameron Gutman
72f4f9e7b1 Disable BLL-FEC on GFE 3.26
The effective FEC percentage is much lower which negatively impacts performance on lossy networks
2022-10-04 17:51:01 -05:00