Cameron Gutman
4113108f23
Remove extra depacketizer code handling packet sequencing since RTP FEC queue does that now
2017-06-10 15:52:20 -07:00
Cameron Gutman
b83cafe845
Ensure FEC is always enabled
2017-06-10 15:51:05 -07:00
Cameron Gutman
4134ea3c23
Prevent the depacketizer from receiving parity packets
2017-06-10 15:42:51 -07:00
Cameron Gutman
6fb3472aec
Add a frame number field to the decode unit struct
2017-06-10 13:41:21 -07:00
Cameron Gutman
c386569754
Remove length prefix on video buffers
2017-06-10 12:55:50 -07:00
Cameron Gutman
af6f13c7fa
Use clock_gettime() for better timestamps on platforms that support it
2017-06-10 12:07:25 -07:00
Cameron Gutman
c01deff683
Fix LC_DEBUG not working if NDEBUG is defined
2017-06-08 18:50:21 -07:00
Cameron Gutman
634031839c
Use isBefore() for sequence number comparison
2017-06-08 00:30:29 -07:00
Cameron Gutman
965657523d
Improve debug output during frame loss
2017-06-07 22:49:54 -07:00
Cameron Gutman
6b2de18481
Don't wait for a parity packet to submit a completed frame
2017-06-07 22:46:13 -07:00
Cameron Gutman
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.
2017-06-07 21:52:49 -07:00
Cameron Gutman
1a2996a49a
Various minor fixes to the FEC queue
2017-06-07 21:48:04 -07:00
Cameron Gutman
4791f62688
Add additional asserts that were useful for debugging corruption caused by the bug fixed in a499413221
2017-06-06 02:55:25 -07:00
Cameron Gutman
a499413221
Fix the buffer data packets value being truncated on very large frames causing an out of bounds buffer access in reed_solomon_reconstruct()
2017-06-06 02:07:13 -07:00
Cameron Gutman
9a7519937e
Remove unused memory allocation
2017-06-06 00:49:46 -07:00
Cameron Gutman
e2c6104251
Fix build error with LC_DEBUG defined
2017-06-05 22:26:38 -07:00
Iwan Timmer
d3fe286eb7
Add audio context and flags
2017-05-28 15:34:56 +02:00
Cameron Gutman
6e31c21815
Round down the specified packet size to the nearest multiple of 16 rather than forcing 1024 all the time
2017-05-26 21:17:43 -07:00
Cameron Gutman
86447399a9
Add start and stop callbacks for audio and video renderers
2017-05-21 12:50:53 -07:00
Cameron Gutman
92951e1309
Add LiInterruptConnection() to interrupt LiStartConnection()
2017-05-21 12:24:22 -07:00
Cameron Gutman
9ebb429f66
Fix null check typo
2017-05-21 10:59:47 -07:00
Cameron Gutman
b3b5ee1c2c
Fix use of enetMutex during connection failure
2017-05-21 10:52:44 -07:00
Cameron Gutman
109472e4ab
Fix bogus queue assert firing on failed connection
2017-05-21 10:37:34 -07:00
Cameron Gutman
eaf3355c96
Reduce socket read timeout to 100 ms to allow LiStopConnection() to complete faster
2017-05-21 10:29:00 -07:00
Cameron Gutman
7ee9ea4e11
Fix RFI invalidating an extra frame each time
2017-05-21 10:11:07 -07:00
Cameron Gutman
bfd368769e
Force an IDR frame request when the decode unit queue overflows
2017-05-20 17:32:02 -07:00
Cameron Gutman
2d7bf5be82
Fix state cleanup if LiStartConnection() fails
2017-05-18 09:52:50 -07:00
Cameron Gutman
ec6c569130
Split reference frame invalidation support capabilities into codec-specific options
2017-05-15 23:11:37 -07:00
Cameron Gutman
7aeaefd24f
Add Limelog support under Android
2017-05-15 00:45:12 -07:00
Cameron Gutman
20821e7eb6
Leave the zero padding bytes on FEC-recovered packets alone. Decoders are required to cope with trailing zero bytes in NALUs and they are not safe to remove because they may actually be part of the byte stream itself.
2017-05-11 20:10:20 -07:00
Cameron Gutman
417c8be124
Add missing license
2017-05-10 10:13:06 -07:00
Cameron Gutman
fe52c1848a
Prevent FEC from breaking after 64K frames
2017-05-07 22:27:15 -07:00
Cameron Gutman
8a2b24e57a
Fix frame queue corruption when trying to skip a frame with no buffers
2017-05-07 20:39:36 -07:00
Cameron Gutman
1439d53619
Remove unused function
2017-05-07 13:17:32 -07:00
Cameron Gutman
998650e53a
Merge pull request #26 from d3m3vilurr/fix-build-openssl-1.0.x
...
Remove defines of EVP_CIPHER_CTX_new and EVP_CIPHER_CTX_free
2017-05-06 16:08:45 -07:00
Cameron Gutman
1eed2a65cb
Merge pull request #28 from d3m3vilurr/fix-crash-on-vita
...
vita: Increate thread stack size
2017-05-06 16:05:06 -07:00
Cameron Gutman
e7f8fd165e
Fix unintentionally crashing the streamer when requesting FEC with packets sizes over 1024
2017-05-06 16:01:35 -07:00
Cameron Gutman
ff4dbbb26d
Fix compilation errors, warnings, and cosmetic stuff
2017-05-06 15:43:43 -07:00
Sunguk Lee
5ab67fb864
vita: Increate thread stack size
...
readsolomon require large stack memory for the [decode][1]
lazy calucation: 0x105f9
- dataDecodeMatrix: 255 * 255
- subShards: 255 * 4
- outputs: 255 * 4
Fixes #27
[1]: https://github.com/moonlight-stream/moonlight-common-c/blob/9bf8d36/reedsolomon/rs.c#L500-L502
2017-05-05 18:53:16 +09:00
Sunguk Lee
a24e29c9ad
Remove defines of EVP_CIPHER_CTX_new and EVP_CIPHER_CTX_free
...
These functions defined since 0.9.8b
2017-05-05 16:26:57 +09:00
Iwan Timmer
9bf8d361a1
Forward Error Correction ( #24 )
...
* Preperation for FEC by adding new queue which buffers whole frames
* Add code for creating recovered RTP packet
* Add checks before repair missing packets
* Initial implementation for single FEC packet
* Implement FEC for multiple packets
2017-05-04 21:22:30 -07:00
Iwan Timmer
dbb7cee399
Compatibility fix for OpenSSL 1.1 ( #25 )
...
* Compatibility fix for OpenSSL 1.1
* Don't allocate new cipher context for every input packet
* Readd support for OpenSSL 1.0
2017-05-04 21:20:03 -07:00
Cameron Gutman
8d2dccf4ca
Correctly transmit the number of controllers attached to the client
2017-02-04 20:09:34 -08:00
Cameron Gutman
f1adbc1e6b
Apparently we're back to 8 byte first frame headers on GFE 3.2
2016-12-13 20:24:34 -08:00
Cameron Gutman
de915efaaf
Wiggle the mouse at connection start to wake the display up
2016-12-13 20:23:32 -08:00
Cameron Gutman
bd825776b3
Add support for GFE 3.0.7
2016-10-05 17:31:19 -07:00
Cameron Gutman
f57bd745b4
API update to provide enough information to support GFE 3.0.7
2016-10-05 17:23:59 -07:00
Cameron Gutman
ed2c4e716b
Update enet submodule with Vita support
2016-10-05 16:45:07 -07:00
Sunguk Lee
ba27e97698
Add vita environment ( #22 )
...
* vita: initial port
* vita: implement events, enable input thread
* vita: gethostbyname
* vita: Enable audio
* vita: Fix thread crash on discoonect process
* vita: Handle cannot create thread
* vita: now use newlib's socket apis
* vita: Refactoring for moonlight-stream/moonlight-common-c
* Fix review things
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2436093
- vita may not support IPv6; so add LC_ASSERT them.
- define inet_ntop to sceNetInetNtop
- guard about failure of sceKernelCreateMutex or sceKernelCreateCond
- remove meanless macros
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2444677
- !*mutex to *mutex
- remove useless LC_ASSERT then change to use inet_ntop
in vita system not defined `sockaddr_in6`, so just use `sockaddr_in` instead this.
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2445642
- define sin6_addr
2016-10-05 16:43:33 -07:00
Cameron Gutman
293c6a7274
Fix IDR frame requests on Gen 3 servers
2016-09-24 13:07:30 -07:00