Commit Graph
100 Commits
Author SHA1 Message Date
Cameron Gutman ea135be05a Only test TCP ports if the hostname resolves to multiple addresses 2019-10-12 19:09:28 -07:00
Cameron Gutman 93ce13e43f Update enet submodule to 93b080b053 2019-10-12 15:14:30 -07:00
Cameron Gutman 0cc66748ea Merge pull request #45 from d3m3vilurr/vita-newlib
vita: Apply newlib changes
2019-10-05 10:51:26 -07:00
Cameron Gutman 7de68207f0 Fix control stream connection error on multi-homed hosts 2019-09-14 14:06:34 -07:00
Cameron Gutman 438b4f87d3 Rewrite STUN code to avoid requiring TCP and use multiple servers in parallel 2019-08-13 17:51:11 -07:00
Cameron Gutman 4daf496bb4 Merge pull request #42 from d3m3vilurr/vita-getaddrinfo
vita: Apply getaddrinfo
2019-08-13 17:47:03 -07:00
Cameron Gutman 6750cde2ab Test STUN server via TCP to allow fallback if it's unreachable 2019-08-07 23:13:27 -07:00
Cameron Gutman a9780361a3 Fix high-quality surround sound breaking audio when streaming over the Internet or IPv6 2019-08-04 15:05:40 -07:00
Cameron Gutman c322ed9437 Terminate with the given error code if the disconnect timeout expires instead of -1 2019-07-23 23:41:48 -04:00
Cameron Gutman 25dfbcfd41 Implement isPrivateNetworkAddress() for IPv6 2019-07-15 00:16:17 -07:00
Cameron Gutman 6245934462 Fix streaming from Gen 3 servers 2019-07-05 21:01:14 -07:00
Cameron Gutman 801aaf43d6 Fix video on GFE 3.19 2019-05-27 01:27:50 -07:00
Cameron Gutman dffe51e885 Add LiGetPendingVideoFrames() and LiGetPendingAudioFrames() 2019-05-07 20:25:26 -07:00
Cameron Gutman 59481c085a Add support for requesting 20 ms audio frames for slow Opus decoders 2019-05-04 15:33:48 -07:00
Cameron Gutman 1154cb1d3d Name our threads on Windows 2019-05-03 20:55:20 -07:00
Cameron Gutman 31aa893acd Name our threads on Linux 2019-05-03 18:54:40 -07:00
Cameron Gutman e01617cd17 Remove unused variable 2019-05-02 19:41:59 -07:00
Cameron Gutman a7d4537274 Fix receive time corruption after f395d305 2019-04-30 23:15:40 -07:00
Cameron Gutman 4a82762118 Assert that LENTRY_INTERNAL can fit in the reserved space 2019-04-27 14:09:55 -07:00
Cameron Gutman 0b8dc80823 Fetch receive time only once per frame instead of once per packet 2019-04-26 21:51:17 -07:00
Cameron Gutman fe7cb006da Improve FEC queue packet submission and retrieval from O(n) to O(1) 2019-04-25 23:02:01 -07:00
Cameron Gutman f395d3056a Eliminate a copy and allocation for each incoming video packet 2019-04-25 22:07:03 -07:00
Cameron Gutman c87d4a755e Add a workaround to get low bandwidth stereo working again and a cap flag to never request HQ audio 2019-04-25 01:03:27 -07:00
Cameron Gutman d6971983aa Use an interruptible sleep to allow our threads to exit sooner 2019-04-06 15:26:59 -07:00
Cameron Gutman 9220fcb8e8 Require 2 intervals of 15% frame loss or one of 30% frame loss to trigger the poor connection warning 2019-04-06 12:23:36 -07:00
Cameron Gutman 40fa4ef3c8 Reduce NAT keepalive packet rate after connection is established 2019-03-24 12:54:41 -07:00
Cameron Gutman e9bc1070b7 Tune thresholds for poor connection warning 2019-03-18 20:21:02 -07:00
Cameron Gutman c9745855fd Track leaks of mutexes and events for debugging 2019-03-17 12:56:27 -07:00
Cameron Gutman 71a69204e9 Add a connection status callback to notify when the connection becomes lossy 2019-03-17 01:37:09 -07:00
Cameron Gutman 4a7d28038d Deprecate connection listener message callbacks 2019-03-17 01:34:04 -07:00
Cameron Gutman 6eb17a8e73 Fix build warnings 2019-02-26 23:44:10 -08:00
Cameron Gutman 8755529b1a Add support for high-resolution scroll events 2019-02-26 18:48:13 -08:00
Cameron Gutman 708a513256 Initialize platform sockets in LiFindExternalAddressIP4() 2019-02-22 20:59:54 -08:00
Cameron Gutman 1673093316 Update ENet submodule to remove redundant Vita error codes 2019-02-17 09:54:29 -08:00
Cameron Gutman 83d7f675a7 Fix sign extension bug in connection termination error code 2019-02-12 22:24:18 -08:00
Cameron Gutman a016474acc Update documentation in Limelight.h 2019-02-10 02:59:07 -08:00
Cameron Gutman eb6bfe0205 Ensure graceful ENet disconnect after handling pending receives 2019-02-10 02:19:15 -08:00
Cameron Gutman b7ce1bedbe Handle ENet disconnect events after receives 2019-02-10 01:42:49 -08:00
Cameron Gutman 6232935a1a Optimize sendMessageEnet() with fewer allocations and less time holding locks 2019-02-10 01:09:27 -08:00
Cameron Gutman cf4de951cb Use the termination reason from the server when calling the termination callback 2019-02-10 00:49:03 -08:00
Cameron Gutman aa9610847e Ensure termination error code is propagated properly 2019-02-09 21:30:16 -08:00
Cameron Gutman ad5dd9c940 Request haptics data from server 2019-02-09 02:16:59 -08:00
Cameron Gutman fa86e76978 Implement gamepad rumble support 2019-02-08 19:13:53 -08:00
Cameron Gutman 924fdaf2db Fix bugs in ByteBuffer API and add BbAdvanceBuffer() 2019-02-08 19:01:51 -08:00
Cameron Gutman dc21e28e1f Fix parsing XOR-MAPPED-ADDRESS if the optional comprehension bit is set 2019-01-22 17:35:53 -08:00
Cameron Gutman 12eebe0039 Wait for first IDR frame before enabling RFI 2019-01-19 14:44:48 -08:00
Cameron Gutman a653f4d3e0 Fix IDR frame dropping race condition which seems to occur frequently with GFE 3.17 2019-01-18 01:50:39 -08:00
Cameron Gutman 9360adb39a Fix invalid reference frame invalidation payload when dropping an early frame
This bug causes the request to be discarded on GFE 3.17.
2019-01-18 01:37:02 -08:00
Cameron Gutman f884003066 Avoid accumulating audio latency from audio captured by the host before we're ready to play it 2019-01-06 13:24:36 -08:00
Cameron Gutman 610c00bf2d Only start the audio UDP ping thread when we are ready to accept samples 2019-01-03 19:59:53 -08:00
Cameron Gutman 9fc962eb61 Use strict bitrate logic only in remote streaming mode 2019-01-01 18:45:01 -08:00
Cameron Gutman 64096db415 Include FEC overhead in specified bitrate 2019-01-01 18:21:30 -08:00
Cameron Gutman 860393536d Ensure a connection termination callback is not invoked due to calling LiInterruptConnection() 2018-12-28 15:28:56 -08:00
Cameron Gutman dd49e5bbfd Fix video bitrate being capped at initialBitrateKbps 2018-12-21 15:07:18 -08:00
Cameron Gutman 80eba25bb9 Update readme with new URL 2018-12-03 21:37:11 -08:00
Cameron Gutman edbaa43c2c Fix back-to-back calls of LiSendMultiControllerEvent() not working properly 2018-11-25 14:50:51 -08:00
Cameron Gutman e8dd103ed9 Use existing cleanup path for handling early-out errors 2018-11-22 12:52:11 -08:00
Cameron Gutman e741a12a25 Ensure RemoteAddrString is nulled out just in case LiStopConnection() is called 2018-11-21 21:31:18 -08:00
Cameron Gutman 639ff18dbb Allow automatic detection of remote streaming 2018-11-21 20:52:50 -08:00
Cameron Gutman 42df6475c8 Catch forgetting to initialize packetSize field 2018-11-21 20:36:49 -08:00
Cameron Gutman 396b02a94d Test each address returned in the getaddrinfo() call and stop blindly preferring IPv4
Fixes NAT64 on iOS 12 and probably other obscure configurations
2018-11-16 00:37:38 -08:00
Cameron Gutman d9210a6a9a Fix buffer overflow when connecting to an IPv4 address 2018-11-16 00:30:36 -08:00
Cameron Gutman 8665d80697 Don't expect responses for ENet control messages to fix GFE 3.16 2018-11-15 12:55:22 -08:00
Cameron Gutman 11ea2b1053 Add more distinguishable error codes for STUN 2018-10-28 17:19:40 -07:00
Cameron Gutman 0eed722635 Add a simple STUN function for resolving external WAN addresses 2018-10-26 19:20:40 -07:00
Cameron Gutman cd6b636dca Don't call a null pointer if a logging function is called before LiStartConnection() 2018-10-26 19:17:53 -07:00
Cameron Gutman 9396f6c528 Move resolveHostName() into PlatformSockets.c 2018-10-26 17:02:45 -07:00
Cameron Gutman 558ba488e8 Add X1 and X2 mouse buttons which are now apparently working 2018-10-03 17:54:24 -07:00
Cameron Gutman 487a62f58c Fix MSVC build issues 2018-09-25 00:56:43 -07:00
Cameron Gutman dd7820f100 Add LiGetMillis() for clients to use for latency calculation 2018-09-25 00:47:22 -07:00
Cameron Gutman b2ebba2167 Only disable split encode on older GFE versions 2018-09-22 20:22:10 -07:00
Cameron Gutman 718d6a4b28 Correctly declare the OPUS_MULTISTREAM_CONFIGURATION as const for AudioRendererInit functions 2018-09-13 06:18:14 -07:00
Cameron Gutman 8743ce5d08 Improve encoding rate steps for PC native resolutions 2018-09-05 18:40:47 -07:00
Cameron Gutman 884b8d0a95 Additional fixes for corrupt FEC recovery handling 2018-09-05 12:04:39 -07:00
Cameron Gutman 9c1d7ffb70 Detect packets that aren't correctly recovered by FEC 2018-09-05 01:06:25 -07:00
Cameron Gutman dbbb88af09 More FEC fixes 2018-09-04 22:27:44 -07:00
Cameron Gutman ddab05c56e Assert that recovered packets are valid 2018-09-04 22:13:37 -07:00
Cameron Gutman ea0f06ded0 Derive bufferHighestSequenceNumber from the FEC info to ensure it's always accurate 2018-09-04 20:20:32 -07:00
Cameron Gutman 6e633498c3 Fix decoding of large FEC index values (greater than 255) 2018-09-04 18:46:22 -07:00
Cameron Gutman fa7b23f339 Catch RTP FEC queue corruption earlier 2018-09-04 15:56:02 -07:00
Cameron Gutman 4a3521cfc6 Fix depacketizer state corruption if state is dropped in the middle of a frame 2018-09-04 14:35:56 -07:00
Cameron Gutman b9290449b4 Fix queue state error (and subsequent assert) when the queue advances after a constraint violation upon reception of a packet behind the new lowest entry 2018-08-29 08:24:58 -07:00
Cameron Gutman feb46b978e Handle EINTR to fix streaming with GDB attached 2018-08-10 15:51:17 -07:00
Cameron Gutman 72bbbb7549 Add Moonlight PC reference to readme 2018-08-06 21:34:12 -07:00
Cameron Gutman fc124b60ce Enable slicing on HEVC if the client requests it 2018-08-04 16:37:57 -07:00
Cameron Gutman 679f6e83bb Fix HEVC streams requiring a higher bitrate to enable high quality surround audio 2018-07-27 19:04:25 -07:00
Cameron Gutman 4c47dd74ad Revert "Reduce audio bitrate when streaming with a low video bitrate" due to breakage on GFE 3.14.1 2018-07-27 19:02:27 -07:00
Cameron Gutman d55b6bb502 Update ENet with Vita fix 2018-07-27 00:52:44 -07:00
Cameron Gutman 219d87486e Check for both EWOULDBLOCK and EAGAIN for OSes where those values differ 2018-07-21 16:12:38 -07:00
Cameron Gutman ebd0b2d3b1 Merge pull request #37 from d3m3vilurr/fix-vita
Fix vita connecting problems
2018-07-21 15:33:54 -07:00
Cameron Gutman dabf0e9c23 Merge pull request #36 from d3m3vilurr/refix-alloca
Add NEED_ALLOCA macro
2018-07-21 12:19:42 -07:00
Cameron Gutman 6e7965f013 Use SO_RCVTIMEO to avoid the overhead of an extra syscall per packet 2018-07-16 00:46:40 -07:00
Cameron Gutman a9438d1f5e Fix build on MSVC 2018-06-23 19:44:56 -07:00
Cameron Gutman 77b277d05e Inform the host of disconnect immediately so it can clean up properly 2018-06-09 21:37:42 -07:00
Cameron Gutman ed134f07d3 Fix crash when using DR_NEEDS_IDR on a non-direct submit decoder 2018-06-01 16:59:06 -07:00
Cameron Gutman b528ef7921 Fix uninitialized variable warning when using an invalid audio configuration 2018-05-28 10:46:42 -07:00
Cameron Gutman c1b954da1f Fix channel mapping error in 5.1 high quality mode 2018-05-27 20:03:08 -07:00
Cameron Gutman a8b01d6c29 Enable high quality surround sound when the video bitrate is over 15 Mbps 2018-05-27 18:45:09 -07:00
Cameron Gutman 783af66324 Reduce audio bitrate when streaming with a low video bitrate 2018-05-27 17:29:20 -07:00
Cameron Gutman c4692a5b5f Rework sequencing code and fix audio dropout across 64K boundary in the process 2018-02-19 00:16:32 -08:00