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
Cameron Gutman
dbfbc91971
Explicitly request an IDR frame in the IDR frame wait path
2022-10-03 18:27:57 -05:00
Cameron Gutman
a4870f619b
Frame type fields are present all the way back to GFE 3.2 (and probably further)
2022-10-03 18:26:24 -05:00
Cameron Gutman
4c62b5d23a
Fix fallback handling of RFI on older servers
2022-10-03 18:25:08 -05:00
Cameron Gutman
3593dea585
Rework RFI to work reliably with HEVC
2022-10-02 22:19:48 -05:00
Cameron Gutman
795e3f644a
Ensure the next frame after a DU drop is always an IDR frame
...
On RFI-capable decoders, this would sometimes be a P-frame
2022-10-02 21:12:01 -05:00