1011 Commits

Author SHA1 Message Date
Cameron Gutman
8b0dbf7158 Send client feature flags indicating FEC status support 2023-08-19 11:03:00 -05:00
Cameron Gutman
e0d83f61c2 Fix missing debug message when an I-frame is sent as an RFI recovery frame for AV1 2023-08-14 21:32:38 -05:00
Cameron Gutman
8bca948b61 Fix unused function warning on release builds 2023-08-12 15:08:22 -05:00
Cameron Gutman
a0b29fe3dc Avoid asserting on filler NALUs in reference frames on debug builds 2023-08-12 05:32:11 -05:00
Cameron Gutman
325518b47a Add LiGetHostFeatureFlags() API 2023-08-03 22:09:30 -05:00
Cameron Gutman
0f17b4d0c5 Add LI_TOUCH_EVENT_CANCEL_ALL 2023-07-30 19:20:15 -05:00
Cameron Gutman
f2cea4d6b0 Update ENet submodule 2023-07-30 14:02:28 -05:00
Cameron Gutman
6d039a646b Fix extended delays for unreliable/unsequenced traffic on high latency connections 2023-07-25 23:30:45 -05:00
Cameron Gutman
92cc6f96d4 Merge latest changes from upstream ENet 2023-07-25 22:03:42 -05:00
Cameron Gutman
77c5d5c282 Tune SO_RCVBUF logic
- Calculate desired SO_RCVBUF by packet size for the video socket
- Use the OS default SO_RCVBUF for audio and STUN sockets
2023-07-25 18:30:19 -05:00
Cameron Gutman
70a2e305bc Extend pen/touch APIs with contact area and orientation 2023-07-22 15:01:03 -05:00
Cameron Gutman
6f4f2607b3 Clarify API documentation 2023-07-22 12:34:02 -05:00
Cameron Gutman
d8b2b04bb2 Reuse pressure field in touch/pen events to provide hover distance 2023-07-22 12:33:19 -05:00
Cameron Gutman
27428e655b Move ServerCodecModeSupport values into public header 2023-07-16 15:30:55 -05:00
Cameron Gutman
9b5fbff7ba Only disable 4K H.264 RFI with GFE 2023-07-16 15:13:22 -05:00
Cameron Gutman
2ac25bebaa Send unreliable traffic as reliable when we have just one channel 2023-07-16 15:11:09 -05:00
Cameron Gutman
2d0badde9a Send zero state gyro events as reliable traffic 2023-07-12 01:05:23 -05:00
Cameron Gutman
dc803bcd33 Document the correct way to indicate arrival and removal of controllers 2023-07-09 15:24:56 -05:00
Cameron Gutman
a3b28eb4d7 Update ENet for UWP builds 2023-07-08 19:15:45 -05:00
Cameron Gutman
49fef03830 Change frameHeaderSize to uint32_t to avoid warning from promotion to signed int 2023-07-08 01:40:44 -05:00
Cameron Gutman
9205a87002 Improve validation of lastPacketPayloadLength field 2023-07-08 01:31:41 -05:00
Mariotaku
659202c3e5
fixed memcpy overlap (reported by AddressSanitizer) (#80)
* removed unneeded memcpy
2023-07-08 01:09:45 -05:00
Cameron Gutman
ed7d72c07d Fix single packet frame case for AV1 2023-07-06 01:41:15 -05:00
Cameron Gutman
190b08ecf4 Encode the final packet length in the frame header for AV1
Some decoders (Android) are very strict about trailing padding bytes.
2023-07-06 01:29:24 -05:00
Cameron Gutman
953971c9a3 Fix handling of AV1 keyframes 2023-07-05 18:45:29 -05:00
Cameron Gutman
f3b7edbd11 Overflow onto channel 0 rather than distributing
This allows the host to make some assumptions about channel IDs
2023-07-04 16:51:35 -05:00
Cameron Gutman
377d37503f Split controller motion events onto their own channels 2023-07-04 16:18:52 -05:00
Cameron Gutman
53c29f11ba Send mouse deltas reliably for now 2023-07-04 15:48:08 -05:00
Evgeniy S
befc9805ab Add workaround for missing last byte in RTSP message
Sometimes on android devices last byte is missing.
This is link to this bug in Goggle Issue Tracker:
https://issuetracker.google.com/issues/150758736?pli=1
2023-07-04 15:04:19 -05:00
Cameron Gutman
c8828d586c Don't send periodic pings as reliable traffic 2023-07-04 15:03:01 -05:00
Cameron Gutman
7608e8e69d Enforce setting serverCodecModeSupport field in SERVER_INFORMATION 2023-07-04 14:56:20 -05:00
Cameron Gutman
0095141e08 Split control data into multiple channels and optimize packet flags based on type of data
This can significantly performance on lossy networks by avoiding HOL blocking.
2023-07-04 14:49:21 -05:00
Cameron Gutman
7d59c6e14e Fix motionType value in motion packets 2023-07-04 14:18:27 -05:00
Cameron Gutman
54e1556c40 Constrain the reported controller number by the max gamepad count 2023-07-04 14:16:53 -05:00
Cameron Gutman
9ad56cdd8e Move serverCodecModeSupport into SERVER_INFORMATION struct 2023-07-02 23:54:04 -05:00
Cameron Gutman
effba1a16f Remove mention of enableHdr 2023-07-02 23:40:42 -05:00
Cameron Gutman
59a506c15a Only select 10-bit format if also compatible with client 2023-07-02 23:32:04 -05:00
Cameron Gutman
1125dc3dba Replace enableHdr option with directly receiving ServerCodecModeSupport value from XML 2023-07-02 23:28:10 -05:00
Cameron Gutman
e36bde4acc Implement AV1 codec support
This has a breaking change to StreamConfiguration that requires client updates.
2023-07-02 22:16:20 -05:00
Cameron Gutman
c0792168f5 Add LI_BATTERY_PERCENTAGE_UNKNOWN value 2023-07-02 16:42:09 -05:00
Cameron Gutman
a0f8c060c0 Introduce new protocol extensions for controller RGB LEDs and battery state 2023-07-02 14:38:54 -05:00
Cameron Gutman
c5dc45e144 Define an unknown tool type and clarify button-only events 2023-06-28 17:25:41 -05:00
Cameron Gutman
28d63b11dd Fix float values in pen events 2023-06-25 20:06:43 -05:00
Cameron Gutman
f8899f724d Add a touch event type for leaving hover 2023-06-25 16:58:12 -05:00
Cameron Gutman
8c447137d6 Fix controller arrival packet to actually contain the controller that arrived 2023-06-25 14:27:43 -05:00
Cameron Gutman
44c8b95400 Pen tilt is 0..90 not -90..90 2023-06-25 00:24:55 -05:00
Cameron Gutman
c8aac7f71c Define units for controller motion events 2023-06-24 21:28:43 -05:00
Cameron Gutman
de0efa861a Several fixes for touch and pen APIs 2023-06-24 21:25:48 -05:00
Cameron Gutman
5cbb6f210d Fix signness of pen tilt parameters 2023-06-24 15:14:17 -05:00
Cameron Gutman
812ec0e2b7 Allow exceeding 4 controllers for Sunshine hosts 2023-06-18 16:36:34 -05:00