1011 Commits

Author SHA1 Message Date
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
Cameron Gutman
3ae777f973 Try to recover if the frame header parsing fails 2022-09-24 13:43:32 -05:00
Cameron Gutman
54825845e7 Fix large frame header size for GFE 3.26 2022-09-22 21:51:11 -05:00
Cameron Gutman
50603ac16e Fix mishandling of IDR frames with a VUI or AUD NAL 2022-09-11 23:34:38 -05:00
Cameron Gutman
e453a4d548 Add 3 byte Annex B start sequence test mode for debugging clients 2022-09-05 17:41:37 -05:00
Cameron Gutman
5a2911ffe4 Rework NALU parsing to be more robust handling 3 byte prefixes 2022-09-05 16:45:14 -05:00
Cameron Gutman
ec420615a1 Fix GCC build 2022-08-10 00:18:56 -05:00
Cameron Gutman
ef9c5a65cf Return a better error code when the control stream connection fails 2022-08-09 23:26:33 -05:00
Cameron Gutman
c72f30da2e Improve logging for control stream connection failure 2022-08-09 23:12:31 -05:00
Cameron Gutman
bf22101c7d Add video format mask for 10-bit color 2022-06-26 16:19:44 -05:00
Cameron Gutman
d247873ade Add LiSendMouseMoveAsMousePositionEvent() function
This is a useful option for Android and iOS where mouse acceleration
is always enabled and mouse capture is the only feasible way to get
mouse input. It can avoid double-acceleration when being used for
remote desktop mouse mode.
2022-05-28 14:58:34 -05:00
Cameron Gutman
e62dc56047 Update notes regarding enableHdr option 2022-02-07 20:16:19 -06:00
Cameron Gutman
bc458b8848 Use 15 second timeout for RTSP replies
GFE has an internal 10 second timeout for bringing up the streamer,
so we can end up timing out right as GFE is trying to reply to us.
2022-02-06 20:59:18 -06:00
Cameron Gutman
abc7acb5e4 Add HDR mode APIs 2022-01-28 21:29:14 -06:00
Sunguk Lee
c6d68d9e87 vita: Reduce TCPv4_MSS to 512 to avoid setsockopt error
`setsockopt` with 536 returned EINVAL error.
SCE would use simple value for limit
2022-01-24 22:19:09 -06:00
Sunguk Lee
4a4a23c7c4 vita: Replace select to poll
now newlib support [this][1]

[1]: https://github.com/vitasdk/newlib/pull/70
2022-01-24 22:16:59 -06:00
Cameron Gutman
cfe75eb569 Add workaround for keyboard and UTF-8 events interfering with each other 2022-01-17 21:56:06 -06:00
Cameron Gutman
921b59c467 Add API to wake a waiting thread in LiWaitForNextVideoFrame() 2022-01-17 14:12:11 -06:00
Mariotaku
f2e45695b2 use minimum required mbedcrypto 2022-01-12 17:47:04 -06:00
Cameron Gutman
6001ece0b8 Fix uninitialized variable 2021-12-12 16:04:58 -06:00
Cameron Gutman
ac1355b922 Fix excessive high-res scroll speed on newer GFE versions 2021-12-12 12:05:20 -06:00
Cameron Gutman
257029f80d Remove redundant packet length field 2021-12-10 02:00:42 -06:00
Cameron Gutman
94d439e5c3 Fix memory corruption with UTF-8 strings over 32 bytes 2021-11-30 19:05:32 +03:00
Cameron Gutman
6a6328a355 Send each Unicode code point individually to avoid straddling packet boundaries 2021-11-30 18:28:09 +03:00