1015 Commits

Author SHA1 Message Date
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
Sunguk Lee
93707b42e9
vita: Redefine network error codes
temporary patch until merge vitasdk/newlib#38
2018-07-22 06:01:46 +09:00
Sunguk Lee
53352c1a8e
vita: No more need redefine INADDR_ANY 2018-07-22 05:54:32 +09:00
Cameron Gutman
dabf0e9c23
Merge pull request #36 from d3m3vilurr/refix-alloca
Add NEED_ALLOCA macro
2018-07-21 12:19:42 -07:00
Sunguk Lee
41248aad1e
Add NEED_ALLOCA macro
since a9438d1f5e, project introduced alloca calls.
but in [BSD manpage][1], this function is machine and compiler dependent.
also if use newlib or glibc, this function requires `alloca.h` unlike bsd
system.

this patch just revert alloca call except MSC case.

[1]: https://www.freebsd.org/cgi/man.cgi?alloca
2018-07-22 03:17:00 +09: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
Cameron Gutman
bf737dc959 Plumb clientRefreshRateX100 for modern GFE versions 2018-02-03 21:56:52 -08:00
Cameron Gutman
cafc4d8125 Fix ENet comments 2018-01-19 20:25:54 -08:00
Cameron Gutman
75f5477c85 Use RTSP over TCP for GFE 3.12 and later 2018-01-09 23:06:36 -08:00
Cameron Gutman
a0b500a834 Centralize logic to use UDP for RTSP and append Host option if we use TCP 2018-01-09 22:04:08 -08:00
Cameron Gutman
cde117df06 Allocate enough buffer space for high quality audio packets from GFE 3.12 2018-01-09 19:46:19 -08:00
Cameron Gutman
f6ae7fc2b4 Improve decoder compatibility by using num_ref_frames=1 when RFI is disabled. Fixes decoder hangs on Amlogic SoCs. 2017-11-30 23:38:49 -08:00
Cameron Gutman
deb0e69d64 HDR is a Gen7 feature 2017-11-30 23:26:32 -08:00
Cameron Gutman
069f1475b6 Refactor reference frame invalidation checks into one function 2017-11-30 23:14:11 -08:00
Cameron Gutman
26fe1cb22c Separate H.265 video format for SDR and HDR formats 2017-11-25 12:12:38 -08:00
Cameron Gutman
1c386a8987 Fix race condition that could result in loss of NALUs in an IDR frame
Unfortunately, this was a design flaw in the way we handled IDR frames
NALUs. Because we split them all up and handled them as separate
"frames" in the system, some of them could be discarded due to a
video decode unit overflow, for example, and cause the decoder to get
confused due to receiving an SPS without a following PPS.

To address this, NALUs in the IDR frame are always delivered together
as one frame. The SPS, PPS, and VPS are now in separate buffers in
the IDR frame's buffer list and tagged as such with the new buffer
type field. The IDR frames themselves have a new frame type field
which marks them as special frames that clients may need to process
in a special way.

This will likely be a breaking change for your clients!
2017-11-18 14:00:25 -08:00
Cameron Gutman
314a5937f4 Set encoder feature flags to disable split frame encode on GFE 3.10 2017-11-10 00:09:15 -08:00
Cameron Gutman
a135ceaa9a Add support for HDR streaming 2017-10-11 23:21:43 -07:00
Cameron Gutman
d2229fd6a8 Update SDP attributes for better 4K streaming 2017-10-11 23:00:01 -07:00
Cameron Gutman
c0596ad1df Add the ability for clients to reduce bitrate when HEVC is used 2017-09-25 21:36:23 -07:00
Cameron Gutman
957b1de1ad Fix double-free and memory leak in RTSP option parsing failure path 2017-09-02 16:09:22 -07:00
Cameron Gutman
454fdccffc Fix possible lost wakeups by acquring event mutex in signal path 2017-08-20 00:28:15 -07:00
Cameron Gutman
e3dadc3c08 Fix a couple files with bogus permissions 2017-08-20 00:28:15 -07:00
Cameron Gutman
047cdca847 Update README.md 2017-08-14 00:13:37 -07:00
Cameron Gutman
9c37b57510 Use a 24-bit rounding mask to correctly round SPI and restore SPI asserts 2017-06-11 14:52:56 -07:00
Cameron Gutman
c51bfdc9cb Remove packet loss reporting, since it will be unreliable due to the FEC queue in front of the depacketizer 2017-06-11 14:50:21 -07:00
Cameron Gutman
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 2017-06-11 13:30:32 -07:00
Cameron Gutman
05c0fd68e3 Merge pull request #31 from irtimmer/audio_context
Add audio context and flags
2017-06-11 13:25:09 -07:00
Cameron Gutman
fdb256185a Merge pull request #32 from irtimmer/customlog
Use application callback instead of standard error stream for logging
2017-06-11 13:22:51 -07:00
Cameron Gutman
88f95c7871 Remove a dangerous short cast that was causing incorrect wrapping of the packet index and a few other unnecessary casts 2017-06-11 12:55:44 -07:00
Iwan Timmer
10e0acba4a Use application callback instead of standard error stream for logging 2017-06-11 18:02:39 +02:00
Cameron Gutman
99cfae7acc Add receive time to decode unit 2017-06-10 16:08:52 -07:00