Commit Graph

  • a653f4d3e0 Fix IDR frame dropping race condition which seems to occur frequently with GFE 3.17 Cameron Gutman 2019-01-18 01:50:39 -08:00
  • 9360adb39a Fix invalid reference frame invalidation payload when dropping an early frame Cameron Gutman 2019-01-18 01:37:02 -08:00
  • f884003066 Avoid accumulating audio latency from audio captured by the host before we're ready to play it Cameron Gutman 2019-01-06 13:24:36 -08:00
  • 610c00bf2d Only start the audio UDP ping thread when we are ready to accept samples Cameron Gutman 2019-01-03 19:59:53 -08:00
  • 9fc962eb61 Use strict bitrate logic only in remote streaming mode Cameron Gutman 2019-01-01 18:45:01 -08:00
  • 64096db415 Include FEC overhead in specified bitrate Cameron Gutman 2019-01-01 18:21:30 -08:00
  • 860393536d Ensure a connection termination callback is not invoked due to calling LiInterruptConnection() Cameron Gutman 2018-12-28 15:28:56 -08:00
  • dd49e5bbfd Fix video bitrate being capped at initialBitrateKbps Cameron Gutman 2018-12-21 15:07:18 -08:00
  • 0006beb32b Fixes RTSP session id parsing issue. (#39) Chandler Lattin 2018-12-14 19:53:28 -05:00
  • 80eba25bb9 Update readme with new URL Cameron Gutman 2018-12-03 21:37:11 -08:00
  • edbaa43c2c Fix back-to-back calls of LiSendMultiControllerEvent() not working properly Cameron Gutman 2018-11-25 14:50:51 -08:00
  • e8dd103ed9 Use existing cleanup path for handling early-out errors Cameron Gutman 2018-11-22 12:52:11 -08:00
  • e741a12a25 Ensure RemoteAddrString is nulled out just in case LiStopConnection() is called Cameron Gutman 2018-11-21 21:31:18 -08:00
  • 639ff18dbb Allow automatic detection of remote streaming Cameron Gutman 2018-11-21 20:52:50 -08:00
  • 42df6475c8 Catch forgetting to initialize packetSize field Cameron Gutman 2018-11-21 20:36:49 -08:00
  • 396b02a94d Test each address returned in the getaddrinfo() call and stop blindly preferring IPv4 Cameron Gutman 2018-11-16 00:37:38 -08:00
  • d9210a6a9a Fix buffer overflow when connecting to an IPv4 address Cameron Gutman 2018-11-16 00:30:36 -08:00
  • 8665d80697 Don't expect responses for ENet control messages to fix GFE 3.16 Cameron Gutman 2018-11-15 12:55:22 -08:00
  • 11ea2b1053 Add more distinguishable error codes for STUN Cameron Gutman 2018-10-28 17:18:08 -07:00
  • 0eed722635 Add a simple STUN function for resolving external WAN addresses Cameron Gutman 2018-10-26 19:20:40 -07:00
  • cd6b636dca Don't call a null pointer if a logging function is called before LiStartConnection() Cameron Gutman 2018-10-26 19:17:53 -07:00
  • 9396f6c528 Move resolveHostName() into PlatformSockets.c Cameron Gutman 2018-10-26 17:02:45 -07:00
  • 558ba488e8 Add X1 and X2 mouse buttons which are now apparently working Cameron Gutman 2018-10-03 17:54:24 -07:00
  • 487a62f58c Fix MSVC build issues Cameron Gutman 2018-09-25 00:56:43 -07:00
  • dd7820f100 Add LiGetMillis() for clients to use for latency calculation Cameron Gutman 2018-09-25 00:47:22 -07:00
  • b2ebba2167 Only disable split encode on older GFE versions Cameron Gutman 2018-09-22 20:22:10 -07:00
  • 718d6a4b28 Correctly declare the OPUS_MULTISTREAM_CONFIGURATION as const for AudioRendererInit functions Cameron Gutman 2018-09-13 06:18:14 -07:00
  • 8743ce5d08 Improve encoding rate steps for PC native resolutions Cameron Gutman 2018-09-05 18:40:47 -07:00
  • 884b8d0a95 Additional fixes for corrupt FEC recovery handling Cameron Gutman 2018-09-05 12:04:39 -07:00
  • 9c1d7ffb70 Detect packets that aren't correctly recovered by FEC Cameron Gutman 2018-09-05 01:06:25 -07:00
  • dbbb88af09 More FEC fixes Cameron Gutman 2018-09-04 22:27:44 -07:00
  • ddab05c56e Assert that recovered packets are valid Cameron Gutman 2018-09-04 22:13:37 -07:00
  • ea0f06ded0 Derive bufferHighestSequenceNumber from the FEC info to ensure it's always accurate Cameron Gutman 2018-09-04 20:06:04 -07:00
  • 6e633498c3 Fix decoding of large FEC index values (greater than 255) Cameron Gutman 2018-09-04 18:46:22 -07:00
  • fa7b23f339 Catch RTP FEC queue corruption earlier Cameron Gutman 2018-09-04 15:56:02 -07:00
  • 4a3521cfc6 Fix depacketizer state corruption if state is dropped in the middle of a frame Cameron Gutman 2018-09-04 14:33:18 -07:00
  • 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 Cameron Gutman 2018-08-29 08:24:58 -07:00
  • feb46b978e Handle EINTR to fix streaming with GDB attached Cameron Gutman 2018-08-10 15:51:17 -07:00
  • 72bbbb7549 Add Moonlight PC reference to readme Cameron Gutman 2018-08-06 21:34:12 -07:00
  • fc124b60ce Enable slicing on HEVC if the client requests it Cameron Gutman 2018-08-04 16:37:38 -07:00
  • 679f6e83bb Fix HEVC streams requiring a higher bitrate to enable high quality surround audio Cameron Gutman 2018-07-27 19:04:25 -07:00
  • 4c47dd74ad Revert "Reduce audio bitrate when streaming with a low video bitrate" due to breakage on GFE 3.14.1 Cameron Gutman 2018-07-27 19:02:27 -07:00
  • d55b6bb502 Update ENet with Vita fix Cameron Gutman 2018-07-27 00:52:44 -07:00
  • 219d87486e Check for both EWOULDBLOCK and EAGAIN for OSes where those values differ Cameron Gutman 2018-07-21 16:12:38 -07:00
  • ebd0b2d3b1 Merge pull request #37 from d3m3vilurr/fix-vita Cameron Gutman 2018-07-21 15:33:54 -07:00
  • 93707b42e9 vita: Redefine network error codes Sunguk Lee 2018-07-22 06:00:17 +09:00
  • 53352c1a8e vita: No more need redefine INADDR_ANY Sunguk Lee 2018-07-22 02:51:16 +09:00
  • dabf0e9c23 Merge pull request #36 from d3m3vilurr/refix-alloca Cameron Gutman 2018-07-21 12:19:42 -07:00
  • 41248aad1e Add NEED_ALLOCA macro Sunguk Lee 2018-07-22 02:52:55 +09:00
  • 6e7965f013 Use SO_RCVTIMEO to avoid the overhead of an extra syscall per packet Cameron Gutman 2018-07-16 00:42:55 -07:00
  • a9438d1f5e Fix build on MSVC Cameron Gutman 2018-06-23 19:14:56 -07:00
  • 77b277d05e Inform the host of disconnect immediately so it can clean up properly Cameron Gutman 2018-06-09 21:37:42 -07:00
  • ed134f07d3 Fix crash when using DR_NEEDS_IDR on a non-direct submit decoder Cameron Gutman 2018-06-01 16:59:06 -07:00
  • b528ef7921 Fix uninitialized variable warning when using an invalid audio configuration Cameron Gutman 2018-05-28 10:46:42 -07:00
  • c1b954da1f Fix channel mapping error in 5.1 high quality mode Cameron Gutman 2018-05-27 20:03:08 -07:00
  • a8b01d6c29 Enable high quality surround sound when the video bitrate is over 15 Mbps Cameron Gutman 2018-05-27 18:45:09 -07:00
  • 783af66324 Reduce audio bitrate when streaming with a low video bitrate Cameron Gutman 2018-05-27 17:29:20 -07:00
  • c4692a5b5f Rework sequencing code and fix audio dropout across 64K boundary in the process Cameron Gutman 2018-02-19 00:16:32 -08:00
  • bf737dc959 Plumb clientRefreshRateX100 for modern GFE versions Cameron Gutman 2018-02-03 21:56:52 -08:00
  • cafc4d8125 Fix ENet comments Cameron Gutman 2018-01-19 20:25:54 -08:00
  • 75f5477c85 Use RTSP over TCP for GFE 3.12 and later Cameron Gutman 2018-01-09 23:01:55 -08:00
  • a0b500a834 Centralize logic to use UDP for RTSP and append Host option if we use TCP Cameron Gutman 2018-01-09 22:04:08 -08:00
  • cde117df06 Allocate enough buffer space for high quality audio packets from GFE 3.12 Cameron Gutman 2018-01-09 19:46:19 -08:00
  • f6ae7fc2b4 Improve decoder compatibility by using num_ref_frames=1 when RFI is disabled. Fixes decoder hangs on Amlogic SoCs. Cameron Gutman 2017-11-30 23:38:49 -08:00
  • deb0e69d64 HDR is a Gen7 feature Cameron Gutman 2017-11-30 23:26:32 -08:00
  • 069f1475b6 Refactor reference frame invalidation checks into one function Cameron Gutman 2017-11-30 23:14:11 -08:00
  • 26fe1cb22c Separate H.265 video format for SDR and HDR formats Cameron Gutman 2017-11-25 12:12:38 -08:00
  • 1c386a8987 Fix race condition that could result in loss of NALUs in an IDR frame Cameron Gutman 2017-11-13 10:15:43 -08:00
  • 314a5937f4 Set encoder feature flags to disable split frame encode on GFE 3.10 Cameron Gutman 2017-11-10 00:09:15 -08:00
  • a135ceaa9a Add support for HDR streaming Cameron Gutman 2017-10-11 23:21:43 -07:00
  • d2229fd6a8 Update SDP attributes for better 4K streaming Cameron Gutman 2017-10-11 22:59:30 -07:00
  • c0596ad1df Add the ability for clients to reduce bitrate when HEVC is used Cameron Gutman 2017-09-25 21:36:23 -07:00
  • 957b1de1ad Fix double-free and memory leak in RTSP option parsing failure path Cameron Gutman 2017-09-02 16:09:22 -07:00
  • 454fdccffc Fix possible lost wakeups by acquring event mutex in signal path Cameron Gutman 2017-08-20 00:24:51 -07:00
  • e3dadc3c08 Fix a couple files with bogus permissions Cameron Gutman 2017-08-20 00:05:30 -07:00
  • 047cdca847 Update README.md Cameron Gutman 2017-08-14 00:13:37 -07:00
  • 9c37b57510 Use a 24-bit rounding mask to correctly round SPI and restore SPI asserts Cameron Gutman 2017-06-11 14:52:56 -07:00
  • c51bfdc9cb Remove packet loss reporting, since it will be unreliable due to the FEC queue in front of the depacketizer Cameron Gutman 2017-06-11 14:50:21 -07:00
  • 3579265560 The SPI assert can still wrap on a long running stream and doesn't provide a ton of value anyway, so let's just kill it Cameron Gutman 2017-06-11 13:30:32 -07:00
  • 05c0fd68e3 Merge pull request #31 from irtimmer/audio_context Cameron Gutman 2017-06-11 13:25:09 -07:00
  • fdb256185a Merge pull request #32 from irtimmer/customlog Cameron Gutman 2017-06-11 13:22:51 -07:00
  • 88f95c7871 Remove a dangerous short cast that was causing incorrect wrapping of the packet index and a few other unnecessary casts Cameron Gutman 2017-06-11 12:55:44 -07:00
  • 10e0acba4a Use application callback instead of standard error stream for logging Iwan Timmer 2017-06-11 18:02:39 +02:00
  • 99cfae7acc Add receive time to decode unit Cameron Gutman 2017-06-10 16:08:52 -07:00
  • 4113108f23 Remove extra depacketizer code handling packet sequencing since RTP FEC queue does that now Cameron Gutman 2017-06-10 15:52:20 -07:00
  • b83cafe845 Ensure FEC is always enabled Cameron Gutman 2017-06-10 15:51:05 -07:00
  • 4134ea3c23 Prevent the depacketizer from receiving parity packets Cameron Gutman 2017-06-10 15:42:51 -07:00
  • 6fb3472aec Add a frame number field to the decode unit struct Cameron Gutman 2017-06-10 13:41:21 -07:00
  • c386569754 Remove length prefix on video buffers Cameron Gutman 2017-06-10 12:41:03 -07:00
  • af6f13c7fa Use clock_gettime() for better timestamps on platforms that support it Cameron Gutman 2017-06-10 12:07:25 -07:00
  • c01deff683 Fix LC_DEBUG not working if NDEBUG is defined Cameron Gutman 2017-06-08 18:50:21 -07:00
  • 634031839c Use isBefore() for sequence number comparison Cameron Gutman 2017-06-08 00:30:29 -07:00
  • 965657523d Improve debug output during frame loss Cameron Gutman 2017-06-07 22:49:54 -07:00
  • 6b2de18481 Don't wait for a parity packet to submit a completed frame Cameron Gutman 2017-06-07 22:46:13 -07:00
  • 3deba8de7e Reduce video latency by 1 frame by not waiting for the next frame to signal us to give the current frame to the decoder. Also avoid giving partially reconstructed frames to the depacketizer because it can get confused with certain packet loss patterns. Cameron Gutman 2017-06-07 21:52:49 -07:00
  • 1a2996a49a Various minor fixes to the FEC queue Cameron Gutman 2017-06-07 21:48:04 -07:00
  • 4791f62688 Add additional asserts that were useful for debugging corruption caused by the bug fixed in a499413221 Cameron Gutman 2017-06-06 02:55:25 -07:00
  • a499413221 Fix the buffer data packets value being truncated on very large frames causing an out of bounds buffer access in reed_solomon_reconstruct() Cameron Gutman 2017-06-06 02:07:13 -07:00
  • 9a7519937e Remove unused memory allocation Cameron Gutman 2017-06-06 00:49:46 -07:00
  • e2c6104251 Fix build error with LC_DEBUG defined Cameron Gutman 2017-06-05 22:26:38 -07:00