649 Commits

Author SHA1 Message Date
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
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
Mariotaku
5ed9a6508a
Fixed build issue with MinGW (#64) 2021-09-16 01:30:47 -05:00
Cameron Gutman
5b2cf1b8f7 Fix handling of hostname with multiple candidate IP addresses when using alternate ports 2021-08-14 12:30:04 -05:00
Cameron Gutman
a290ec032b Fix relative mouse and controller batching after 74377a06 2021-08-05 22:14:35 -05:00
Cameron Gutman
8cac195fcf Fix compilation warnings 2021-07-30 01:32:43 -05:00
Cameron Gutman
f3e37944fc Split UTF-8 strings into chunks small enough to fit in an NV_UNICODE_PACKET 2021-07-30 01:23:53 -05:00
Cameron Gutman
74377a061b Rework input packets based on new header knowledge 2021-07-30 01:02:35 -05:00
Cameron Gutman
ceafe7897c Refactor input packet sending logic into a separate function 2021-07-29 23:49:58 -05:00
Mariotaku
5846a9d6aa
Added unicode input event (#63)
* Added unicode input event

* Prevents strcpy overflow

* Updated according to change requests
2021-07-29 21:36:47 -05:00
Cameron Gutman
8abc371fb4 Print warning when audio decryption fails 2021-07-17 22:57:50 -05:00
Cameron Gutman
b2c39883bf Fix incorrect IV for encrypted control stream packets on big-endian machines 2021-07-17 22:29:30 -05:00
Cameron Gutman
d14f62c26a Fix crash when client provides no video decoder callbacks 2021-07-17 21:55:39 -05:00
Cameron Gutman
fa892c5334 Remove SEI prefix NAL units before returning data to clients 2021-07-09 17:37:30 -05:00
Cameron Gutman
5820cc2048 Fix double-free if unencrypted packet is received on encrypted stream 2021-07-08 20:50:09 -05:00
Cameron Gutman
3b9d8a3176 Assert that the port numbers are set prior to being used 2021-07-02 01:44:11 -05:00
Cameron Gutman
cdda221d64 Log the parsed ports 2021-07-02 01:30:33 -05:00
Cameron Gutman
5ec8ee7cbf Parse the RTSP port out of the RTSP session URL 2021-07-02 01:17:34 -05:00
Cameron Gutman
0cd3fcf1be Fix off-by-one in port number validation 2021-07-02 01:16:20 -05:00
Cameron Gutman
46887c0447 Parse the ports from RTSP SETUP instead of RTSP DESCRIBE
RTSP SETUP is better because it can provide multiple IP+port candidates
2021-07-02 00:28:48 -05:00
Cameron Gutman
f05be47ed8 Replace other hardcoded ports 2021-07-02 00:27:35 -05:00
Cameron Gutman
56ccd99cc7 Dynamically determine audio, video, and control ports from RTSP DESCRIBE response 2021-07-01 23:45:33 -05:00
Cameron Gutman
2660a05084 Fix GCC build 2021-07-01 22:28:17 -05:00
Cameron Gutman
1b642fec73 Fix control flow bugs in poll() error paths 2021-07-01 22:20:09 -05:00
Cameron Gutman
52250b4815 Use O_NONBLOCK for platforms without support for FIONBIO 2021-07-01 22:15:26 -05:00