Commit Graph

  • 7c346c3104 Fix handling of older GFE versions in surround sound mode Cameron Gutman 2021-06-20 14:55:44 -05:00
  • 5e3aa93479 Add a recording mode for debugging purposes Cameron Gutman 2021-06-20 11:15:30 -05:00
  • 75999a6e07 Add Video/Audio prefix to ThreadProc names Cameron Gutman 2021-06-20 10:36:05 -05:00
  • eff97414bf Perform the initial audio resync even if we hit the polling timeout Cameron Gutman 2021-06-19 16:44:48 -05:00
  • c680a60710 Disable audio FEC when using old GFE and Sunshine versions Cameron Gutman 2021-06-19 16:22:44 -05:00
  • fed1a899aa Add defines for RTP audio payload types Cameron Gutman 2021-06-19 16:08:18 -05:00
  • b58930c687 Don't start the decoder thread in pull-mode Cameron Gutman 2021-06-13 15:30:37 -05:00
  • 68c784445c Introduce optional pull-based API for video data Cameron Gutman 2021-06-13 15:14:38 -05:00
  • b2d4b2c61f Fix spurious exit of fast recovery mode when the stream starts Cameron Gutman 2021-06-12 18:33:20 -05:00
  • 9999156f26 Update ENet to avoid dependency on qwave.dll Cameron Gutman 2021-06-12 12:15:57 -05:00
  • ac9c4e82ac Introduce a list to cache freed input packet entries for reuse Cameron Gutman 2021-06-12 10:43:50 -05:00
  • a13eeddacf Fix Win32 release build Cameron Gutman 2021-06-09 20:38:22 -05:00
  • f01103af23 Add a free FEC block cache to avoid memory allocations Cameron Gutman 2021-06-09 20:29:05 -05:00
  • fb9aab0e57 Reimplement LBQ on condition variables Cameron Gutman 2021-06-09 19:59:52 -05:00
  • 71a267fd28 Change PltWaitForEvent to void return type Cameron Gutman 2021-06-09 19:35:55 -05:00
  • 61b4fc1fe7 Add condition variable support and reimplement PLT_EVENT with it for non-Win32 platforms Cameron Gutman 2021-06-09 19:28:46 -05:00
  • ccec4e8475 Add thread naming on macOS and iOS Cameron Gutman 2021-06-09 03:00:25 -05:00
  • b471edbb80 Add a fast path to drop the audio FEC block with in-order packets Cameron Gutman 2021-06-09 02:31:55 -05:00
  • c64ba99654 Fix build on GCC/Clang Cameron Gutman 2021-06-09 01:45:44 -05:00
  • 7b838dd692 Improve audio FEC queue timeout logic Cameron Gutman 2021-06-09 00:46:14 -05:00
  • ca7a6e7bbe Validate block size before writing data Cameron Gutman 2021-06-08 20:03:49 -05:00
  • 2228e4812d Improve debugging for A/V data loss and recovery Cameron Gutman 2021-06-08 20:01:58 -05:00
  • 5a71a4c092 Use 10ms packets for slow Opus decoders Cameron Gutman 2021-06-07 23:20:40 -05:00
  • 4e7b1e3c37 Merge pull request #60 from GaryOderNichts/wiiu-platform Cameron Gutman 2021-06-04 21:53:58 -05:00
  • e5b39af6a5 some Wii U changes GaryOderNichts 2021-06-05 01:59:58 +02:00
  • 0c66a50e2d Wii U platform support GaryOderNichts 2021-06-04 21:36:54 +02:00
  • 509a17dbc3 Perform PLC for each lost packet in the FEC block Cameron Gutman 2021-06-03 21:03:46 -05:00
  • a8aed6b344 Avoid spurious audio data loss warning on connection start Cameron Gutman 2021-06-03 21:02:27 -05:00
  • ef33aaa3c8 Fix queued packet leak when audio packet queue overflows Cameron Gutman 2021-06-02 22:05:45 -05:00
  • e9fd544ff4 Fix FEC queue state assert firing on shutdown Cameron Gutman 2021-06-02 20:11:20 -05:00
  • e3d4f4e91f Validate the Opus data in debug builds Cameron Gutman 2021-06-02 20:10:46 -05:00
  • ab51acb712 Only data shards should be eligible for immediate consumption Cameron Gutman 2021-06-02 19:50:22 -05:00
  • d0adb044cf Fix bugs discovered by FEC state validation logic Cameron Gutman 2021-06-02 19:36:57 -05:00
  • 565b170e00 Add FEC state validation in debug builds Cameron Gutman 2021-06-02 19:36:31 -05:00
  • 9361c325bb Rename RtpFecQueue to RtpVideoQueue to match RtpAudioQueue Cameron Gutman 2021-06-01 22:57:26 -05:00
  • 08e4a47fc2 Add FEC validation mode for audio FEC Cameron Gutman 2021-06-01 22:43:43 -05:00
  • dd3675db63 Fix mishandling of a completely missing FEC block Cameron Gutman 2021-06-01 21:31:48 -05:00
  • da7db59414 Fix freeing FEC block after wrapping seqnum with in-order FEC block Cameron Gutman 2021-06-01 21:16:18 -05:00
  • fde6b05618 Fix incorrect assert on sequence number wrap Cameron Gutman 2021-06-01 21:14:25 -05:00
  • 683208ddc8 Return all available audio data after FEC block timer expires Cameron Gutman 2021-06-01 20:01:26 -05:00
  • 3dff15b8c4 Fix memory leak when switching between immediate and queued audio packets Cameron Gutman 2021-06-01 19:33:56 -05:00
  • 4aa82b0a9f Fix Clang/GCC build Cameron Gutman 2021-06-01 18:39:19 -05:00
  • 89918324ce Implement audio FEC recovery support Cameron Gutman 2021-06-01 18:31:56 -05:00
  • 122ce4a568 Enable SO_RCVTIMEO for RTP sockets on Windows Cameron Gutman 2021-05-25 20:38:30 -05:00
  • d9ea208dea Avoid unlock and immediate relock of mutex Cameron Gutman 2021-05-25 19:57:06 -05:00
  • 1376c62e5f Remove declaration of old deleted function Cameron Gutman 2021-05-25 19:54:27 -05:00
  • 59484ea066 Reorder some internal structures to reduce padding Cameron Gutman 2021-05-25 19:54:03 -05:00
  • 46cea5011d Use GetModuleHandle() for kernel32.dll, since it's guaranteed to be loaded already Cameron Gutman 2021-05-25 19:40:14 -05:00
  • 4723f8ba7c Update ENet to avoid excessive retransmissions when RTT variance is 0 Cameron Gutman 2021-05-16 15:37:40 -05:00
  • d4e22bb4a6 Update ENet to fix inaccurate RTT values under 8 ms Cameron Gutman 2021-05-16 14:42:15 -05:00
  • daee5db7bc Use SleepEx() instead of WaitForSingleObjectEx() to implement PltSleepMs() Cameron Gutman 2021-05-16 11:41:38 -05:00
  • c057075eac Set minRequiredFecPackets to better handle lossy links at low bitrates Cameron Gutman 2021-05-16 09:27:50 -05:00
  • ed9301f3f8 Join the input thread without interrupting first Cameron Gutman 2021-05-15 22:56:44 -05:00
  • 431e188b07 Allow the input queue to drain before terminating the thread Cameron Gutman 2021-05-15 22:01:50 -05:00
  • 71c9ff0d91 Elide the wait if the queue head is already non-null Cameron Gutman 2021-05-15 21:31:45 -05:00
  • edf1838708 Expose RTT information from ENet Cameron Gutman 2021-05-15 13:58:54 -05:00
  • 5feb3b6f90 Dynamically adjust wait time to hit the next RTO Cameron Gutman 2021-05-15 12:47:20 -05:00
  • 50c0648de2 Run a full enet_host_service() rather than just enet_host_flush() on send Cameron Gutman 2021-05-15 12:26:01 -05:00
  • 97216e1704 Wait for ENet socket readability rather than just sleeping 10 ms Cameron Gutman 2021-05-15 00:15:16 -05:00
  • 43eb36e17a Simplify and improve graceful disconnect logic Cameron Gutman 2021-05-14 22:36:13 -05:00
  • 387ff48a65 Perform a graceful disconnection if the termination was locally initiated Cameron Gutman 2021-05-14 22:06:07 -05:00
  • 1b3c14a792 Increase maximum input queue size Cameron Gutman 2021-05-14 21:07:14 -05:00
  • 132833deeb Limit RTO to 2x RTT and fix early peer timeout expiration Cameron Gutman 2021-05-14 20:44:19 -05:00
  • a1a150c300 Refactor IDR/RFI requests to simplify code and fix race conditions Cameron Gutman 2021-05-14 20:41:20 -05:00
  • cd62147cdf Print a warning when the input queue reaches the maximum size Cameron Gutman 2021-05-14 20:36:25 -05:00
  • 7743899251 Optimize LBQ to avoid unnecessary syscalls Cameron Gutman 2021-05-14 18:42:01 -05:00
  • 5d09d43b08 Disable RFI at 4K until the problems are understood Cameron Gutman 2021-05-06 22:17:04 -05:00
  • ccaca624f3 Attempt to fix audio latency issues on some PCs Cameron Gutman 2021-05-04 10:21:41 -05:00
  • 65047ac0e2 Switch to VS2019 build images for CI Cameron Gutman 2021-04-29 17:54:22 -05:00
  • b0737b882d Adjust MSVC warning level Cameron Gutman 2021-04-29 17:51:20 -05:00
  • 179970a0d5 Behavior changes to CMakeLists.txt Mariotaku Lee 2021-04-29 00:47:32 +09:00
  • bc1b5a1b2f Fix Linux build Cameron Gutman 2021-04-29 17:40:13 -05:00
  • a000f9f8b8 Validate that claimed length doesn't exceed the actual length Cameron Gutman 2021-04-29 17:26:59 -05:00
  • 8f371343cd Consolidate includes Cameron Gutman 2021-04-29 17:22:15 -05:00
  • da68e64d9b Fix various MSVC warnings Cameron Gutman 2021-04-29 17:21:12 -05:00
  • 77ed77b93b Pull ENet changes from upstream Cameron Gutman 2021-04-29 09:44:32 -05:00
  • 252a50bb75 Disable WSAECONNRESET errors for UDP sockets on Windows Cameron Gutman 2021-04-28 20:37:20 -05:00
  • 7549243f40 Add the correct definition for ECONNREFUSED for Windows Cameron Gutman 2021-04-28 17:30:00 -05:00
  • 9c92c12fea Prevent errno.h from including incompatible error codes with Winsock codes Cameron Gutman 2021-04-28 17:29:33 -05:00
  • 3ae03998a2 Add retry logic for RTSP handshake connection refused error Cameron Gutman 2021-04-28 17:08:27 -05:00
  • 068f7aa9d9 Allow connection interruption during the RTSP handshake Cameron Gutman 2021-04-28 17:06:04 -05:00
  • bce9f82844 Fix strict aliasing violation (and save a byteswap on each packet) Cameron Gutman 2021-04-28 17:05:41 -05:00
  • fe205d838d Don't check for errors from sendto() in the ping threads Cameron Gutman 2021-04-28 17:04:44 -05:00
  • 83b1b17f87 Add specific logging for frames dropped completely Cameron Gutman 2021-04-27 17:39:00 -05:00
  • c1befbe2a8 Improve audio resync logic to use initial receive time rather send time Cameron Gutman 2021-04-26 22:43:49 -05:00
  • 33c4e98152 Adjust initial audio resync drop time based on connection handshake latency Cameron Gutman 2021-04-26 21:39:36 -05:00
  • 7174caf5f1 Implement support for multi-FEC frames Cameron Gutman 2021-04-26 20:36:07 -05:00
  • 9a5dbcf31c Create a second queue for completed FEC blocks Cameron Gutman 2021-04-26 20:26:16 -05:00
  • b33e9fbcde Fix list corruption on entry removal Cameron Gutman 2021-04-26 20:24:39 -05:00
  • ca4019c09f Refactor FEC queue in preparation for multi-block frame support Cameron Gutman 2021-04-26 17:09:50 -05:00
  • 8dab1ee300 Use stdint.h types for Video.h Cameron Gutman 2021-04-26 17:08:44 -05:00
  • ae92f15b0a Use SRW locks for our mutex on Windows Cameron Gutman 2021-04-25 15:04:12 -05:00
  • 13041e0323 Further optimization to avoid needless calls to EVP_aes_128_gcm() and EVP_aes_128_cbc() Cameron Gutman 2021-04-22 17:49:51 -05:00
  • 8354c403f4 Optimize OpenSSL backend to avoid redundant reinitialization Cameron Gutman 2021-04-22 17:34:48 -05:00
  • 29d2cc6d5b Improve MbedTLS implementation of AES-CBC Cameron Gutman 2021-04-22 17:08:35 -05:00
  • d7549cd953 Use array initializers compatible with MSVC Cameron Gutman 2021-04-22 00:32:41 -05:00
  • db81f1e512 Add support for audio stream encryption Cameron Gutman 2021-04-22 00:20:17 -05:00
  • 55cf1f8d30 Remove unnecessary calls to EVP_CIPHER_CTX_reset() Cameron Gutman 2021-04-22 00:17:46 -05:00
  • 625ec431eb Improve AES-CBC code in preparation for audio encryption Cameron Gutman 2021-04-21 23:59:14 -05:00
  • 3abd3af4b2 Convert 'supportsHevc' and 'enableHdr' fields to bool type Cameron Gutman 2021-04-21 23:32:43 -05:00