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
Cameron Gutman
9bf09d681e
Plumb Sunshine feature flags SDP attribute for protocol extensions
2023-06-18 15:52:51 -05:00
Cameron Gutman
689450954c
Add pen and motion batching
2023-06-18 14:30:16 -05:00
Cameron Gutman
372eb94ed0
Expand button flags to support additional buttons with Sunshine
2023-06-18 14:03:29 -05:00
Cameron Gutman
7eea7a7971
Fix endianness issues for BE systems
2023-06-18 13:50:39 -05:00
Cameron Gutman
329c55d52f
Send pointer IDs instead of touch indices
2023-06-18 13:48:55 -05:00
Cameron Gutman
cd35abbae7
Fix build
2023-06-11 19:46:13 -05:00
Cameron Gutman
ce98d4fb2f
Introduce connection callbacks for trigger rumble and motion events
2023-06-11 19:42:02 -05:00
Cameron Gutman
4a48024dc8
Introduce new input extension functions for touch, pen, motion, and controller arrival
2023-06-11 19:38:22 -05:00
Cameron Gutman
7970925fe4
Introduce macro function to determine endianness
2023-06-11 19:33:24 -05:00
ns6089
284840bde7
Add support for sunshine host latency
2023-05-03 20:38:42 -05:00
Cameron Gutman
169078d0a9
Allow encoder to pick optimal ref frame count if RFI is supported by the decoder
2023-04-29 13:11:38 -05:00
Cameron Gutman
c9426a6a71
Add HDR and colorspace fields to DECODE_UNIT
2023-03-11 11:36:21 -06:00
Cameron Gutman
b77072d399
Don't use GFE modifier workaround with Sunshine
2023-02-25 13:11:54 -06:00
Cameron Gutman
d3cb8131d1
Revert "Send TCP FIN after completion of our RTSP request"
...
Existing servers already know how to parse our messages without this,
so we just risk breaking things with middleboxes that don't do half-closed
connections properly. We'll handle this better with encrypted RTSP.
This reverts commit 95e3e26d1297bdd9640ea491ef55ae371790794e.
2023-02-20 16:58:21 -06:00
Cameron Gutman
7e089435c7
Reduce max number of frame status reports per second
2023-02-20 16:48:12 -06:00
Cameron Gutman
55a6d58225
Fix leak
2023-02-20 16:42:23 -06:00
Cameron Gutman
207f981fd0
Send final FEC frame status info to Sunshine
...
This info will be used for dynamic FEC and dynamic video packet batch size.
2023-02-20 16:24:48 -06:00
Cameron Gutman
82105f2f8f
Declare packetFreed as volatile
2023-02-15 01:42:48 -06:00
Cameron Gutman
c88b1bcf8e
Fix integer truncation warning on MSVC
2023-02-15 01:33:32 -06:00
Cameron Gutman
54d46ca80f
Put backpressure on control stream sender when the window fills up
...
Without any backpressure, ENet will just let packets accumulate forever.
2023-02-14 23:02:18 -06:00