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