Commit Graph
100 Commits
Author SHA1 Message Date
Cameron Gutman d408372c34 Switch to OpenSSL for input encryption with support for Gen 7 servers 2016-03-31 11:14:10 -04:00
Cameron Gutman 48a5d63045 Reorganize the folder structure and delete the Xcode build files 2016-03-31 07:22:03 -04:00
Cameron Gutman b7c7c98c45 Fix RTSP and control stream for Gen 7 servers 2016-03-29 22:21:18 -04:00
Cameron Gutman 58329dd0b2 Update common-c submodule to fix build without NO_MSGAPI 2016-03-27 22:48:51 -04:00
Cameron Gutman 3c94da1beb Fix a memory leak on OOS audio packets with a direct-submit audio player 2016-03-27 20:29:33 -04:00
Cameron Gutman ec4fc23cd7 Update to ENet compatible with PNaCl 2016-03-11 00:29:42 -08:00
Cameron Gutman 5d89f671e4 Add a note about the bundled enet submodule 2016-03-09 21:20:48 -08:00
Cameron Gutman 04b00f9e8a Fix the RTSP payload timeout being too aggressive 2016-03-08 13:13:25 -08:00
Cameron Gutman 5a92f72012 Update the ENet API to support IPv6 2016-03-07 14:33:35 -08:00
Cameron Gutman c03692c908 Additional error handling 2016-03-07 13:15:37 -08:00
Cameron Gutman daf3b992cc Update to the modified ENet API 2016-03-06 15:36:46 -08:00
Cameron Gutman 9d3fed1620 Change to our modified ENet fork 2016-03-06 15:29:02 -08:00
Cameron Gutman f91010b6e4 Fail message sending if the peer returned an error 2016-03-06 15:27:05 -08:00
Cameron Gutman eb9c881174 Set peer timeout to 10 seconds rather than the default 30 seconds 2016-03-06 15:24:36 -08:00
Cameron Gutman c42cae333d Send a best-effort disconnect event to let GFE know that we're gone. This increases reconnect reliability. 2016-03-04 03:19:19 -05:00
Cameron Gutman 3966d7ca82 Add ENet to Xcode project 2016-03-04 03:05:28 -05:00
Cameron Gutman b3337d3304 Add ENet as a submodule 2016-03-04 03:04:08 -05:00
Cameron Gutman ff6a70288b Fix an incorrect assertion 2016-03-04 03:00:02 -05:00
Cameron Gutman ef3c33c5b0 Fix warnings compiling in Xcode 2016-03-04 02:59:44 -05:00
Cameron Gutman 0a80deccde Implement control and input streams over ENet for GFE 2.11 2016-03-04 02:30:10 -05:00
Cameron Gutman 31ce0f5c87 Implement RTSP over ENet for GFE 2.11 2016-03-04 00:40:12 -05:00
Cameron Gutman c44cdffdd5 Fix compilation errors on Windows 2016-03-02 13:46:03 -05:00
Cameron Gutman 51e5b89018 Add H.265 video support 2016-03-02 06:25:19 -05:00
Cameron Gutman fbd58c60ea Disable dynamic resolution switching on Gen 5 servers 2016-02-28 14:19:03 -05:00
Cameron Gutman e1473d7a2d Fix mouse move packets on Gen 5 servers 2016-02-19 12:00:15 -05:00
Cameron Gutman 88edbd8dc1 Merge pull request #14 from irtimmer/gen5
Add support for Generation 5 servers (GFE 2.10.2+)
2016-02-19 11:45:33 -05:00
Cameron Gutman 40478fc19b Fix the bug causing the 4th controller to be unrecognized 2016-02-19 01:53:44 -05:00
Cameron Gutman a8d98284a7 When a decoder requests an IDR frame, don't submit another frame until the IDR frame arrives 2016-02-18 13:23:03 -05:00
Cameron Gutman c9d332089f Fix build with headers that only typedef fd_set without defining a struct fd_set type 2016-02-18 00:14:03 -05:00
Cameron Gutman c680a76289 Simplify thread management since we don't need thread alerts to cancel anymore 2016-02-16 19:58:56 -05:00
Cameron Gutman 00283a7267 Fix a race condition where PltCloseThread was called before the thread was inserted into the list 2016-02-16 19:35:54 -05:00
Cameron Gutman ca870694ba Fix uninitialized variable warning 2016-02-16 10:56:24 -05:00
Cameron Gutman 1bb1e47e8a FIONBIO is not supported under NaCl so only use non-blocking connect if available 2016-02-16 10:54:24 -05:00
Cameron Gutman 1662ce1ee8 Add timeouts for connect operations 2016-02-16 10:15:01 -05:00
Cameron Gutman 42af179770 Add a 10 second read timeout to the RTSP connection 2016-02-16 09:31:33 -05:00
Cameron Gutman 8b6ca3d89b Remove unsafe cancellation code from events 2016-02-16 09:17:59 -05:00
Cameron Gutman ac52faa6c2 Fix failure to restart after calling LiStopConnection 2016-02-16 09:04:21 -05:00
Cameron Gutman 9e592ad3c6 Simplify some Darwin-specific code paths 2016-02-16 08:59:54 -05:00
Cameron Gutman 5de8f4c98c Fix UDP thread terminations 2016-02-15 18:46:14 -05:00
Cameron Gutman ceb9504ade Fix another double free 2016-02-15 18:11:12 -05:00
Cameron Gutman 167d344e39 Add a shutdown function for UDP sockets 2016-02-15 17:45:29 -05:00
Cameron Gutman e5a6297d30 Kill TCP sockets in 2 stages to fix a race condition during socket closure 2016-02-15 17:26:34 -05:00
Cameron Gutman c18e334cd4 Fix control stream shutdown 2016-02-15 17:12:27 -05:00
Cameron Gutman 343eeccaa9 Fix double-free of packet buffer 2016-02-15 17:11:42 -05:00
Cameron Gutman 67b70e9cbd Implement queue shutdown 2016-02-15 17:00:31 -05:00
Cameron Gutman cb43494cd0 Fix buffer leak when the audio receive thread dies 2016-02-15 16:19:40 -05:00
Cameron Gutman a933886537 Fix build on Windows 2016-02-15 16:05:59 -05:00
Cameron Gutman d7f40ec39b Begin work to remove use of thread cancellation for NaCl 2016-02-15 15:58:42 -05:00
Cameron Gutman b2be459ff3 Don't call sigaction() when building for NaCl 2016-02-15 12:51:37 -05:00
Cameron Gutman cbbe251f50 Code within extern "C" should not be indented 2016-02-15 12:50:18 -05:00
Cameron Gutman 21ec3f0270 Build fixes for NaCl SDK 2016-02-12 21:17:08 -05:00
Cameron Gutman dfdfe4f0f6 Fix inconsistent whitespace 2016-02-06 23:46:47 -05:00
Cameron Gutman 349d1baa53 We might as well just keep the bitrate constant rather than doing all the complex logic to decide on a minimum. The dynamic scaling behavior is awful anyway. 2015-10-27 00:20:23 -07:00
Cameron Gutman 81ecd32e83 Add a comment about the mapping array order 2015-10-25 18:53:49 -07:00
Cameron Gutman b1f861ccfd Fix RTSP handshake issues with GFE 2.7 due to the addition of many new SDP attributes 2015-10-25 13:25:32 -07:00
Cameron Gutman a13e68b042 Add support for 5.1 surround sound with GFE 2.7 2015-10-25 13:08:20 -07:00
Cameron Gutman 1b3b57ed2f Update Xcode project file 2015-09-28 19:21:59 -07:00
Cameron Gutman 81f8e5427a Request 1 slice per frame when not using slicing 2015-08-17 23:02:04 -07:00
Cameron Gutman 19849a1ac5 Use a macro for specifying the slices per frame capability to allow for configurable slicing 2015-08-16 12:11:10 -07:00
Cameron Gutman 2d35d7262f Merge pull request #12 from irtimmer/disableSlicing
Place slicing behind a flag as not all video decoders support it.
2015-08-16 11:40:41 -07:00
Cameron Gutman a97e7c962a Add a better description to the new remote streaming field and rename to it be more clear about what it means 2015-08-16 10:23:48 -07:00
Cameron Gutman cc8eae2c41 Merge pull request #13 from irtimmer/remoteOptimizations
Add SDP optimizations for remote connections
2015-08-16 10:07:58 -07:00
Cameron Gutman ad7d0ef218 Add helper functions to zero callback and configuration structures for better source compatibility with future versions 2015-08-15 10:06:00 -07:00
Cameron Gutman 7500382c26 Make the audio receive buffer 6400 bytes. At 1200 bytes, audio on my Pi 2 was constantly hiccupping because there wasn't enough of a cushion to allow time for decoding to happen in many cases. 2015-08-12 00:19:07 -07:00
Cameron Gutman 4855b5a83d Remove a useless log message 2015-08-12 00:09:17 -07:00
Cameron Gutman 47104f93c2 Revert the encoding bitrate hack 2015-08-12 00:05:42 -07:00
Cameron Gutman 425e9f0484 Fix an RTP queue bug that can cause extended packet delays when the last packet ages out of the queue 2015-08-11 22:49:49 -07:00
Cameron Gutman a083e0b46d Fix reference frame invalidation bugs 2015-08-11 21:34:28 -07:00
Cameron Gutman 71f923f062 Guard reference frame invalidation behind a video renderer capability flag and do some refactoring and bugfixes to the new code 2015-08-11 19:57:06 -07:00
Cameron Gutman beb7ccb456 Merge branch 'invalidateFrames' of https://github.com/irtimmer/moonlight-common-c 2015-08-11 19:24:11 -07:00
Cameron Gutman 0f2897b1f8 Fix typo in define 2015-08-11 19:21:04 -07:00
Cameron Gutman 2504f3b7ce Initialize lastSeq when initializing the audio stream 2015-08-11 19:20:10 -07:00
Cameron Gutman 4f8595b527 Fix compilation warnings 2015-08-11 19:18:13 -07:00
Cameron Gutman c421740ded Merge pull request #10 from irtimmer/bufferSize
Reduce audio receive buffer size
2015-08-11 19:14:06 -07:00
Cameron Gutman bc57d54e54 Merge pull request #9 from irtimmer/combineReceiveDecodeThread
Combine receive and decode thread
2015-08-11 19:12:14 -07:00
Cameron Gutman de37896c22 Merge pull request #8 from irtimmer/fixFirstPacketDrop
Fix skipping first video packet
2015-08-11 08:38:21 -07:00
Cameron Gutman b79ee8ca46 Use the IDR frame request packet on Gen 4 servers. This solves the issue of IDR frames breaking after 0xFFFFF frames (4.85 hours at 60 FPS) 2015-08-04 23:43:10 -07:00
Cameron Gutman b9597d696a Run the client's connectionTerminated() callback on a separate thread to avoid deadlocking if LiStopConnection() is invoked from the callback 2015-08-04 23:38:38 -07:00
Cameron Gutman a41c064cab Fix for the fix :/ 2015-07-31 00:14:22 -07:00
Cameron Gutman f95f152439 Fix a bug that could cause the cleanup() callback to be erroneously invoked without a prior call to setup() or init() 2015-07-31 00:05:22 -07:00
Cameron Gutman 89c49a76cb Remove vcxproj 2015-07-29 16:48:10 -07:00
Cameron Gutman d67071cf0e Implement a new safer Limelog for Windows 2015-07-20 19:11:56 -05:00
Cameron Gutman a29fb05f6c Remove unused parameter 2015-07-20 19:11:49 -05:00
Cameron Gutman 437645da13 Apply SDP changes from the Java common library.
- Use the default vqos.bw.flags value - commit 8c83042
- Enable slicing to speed up some decoders - commit f21c8a8
2015-07-20 17:33:29 -07:00
Cameron Gutman a1d2faa4db Enable assertions in debug Xcode builds 2015-07-20 17:29:44 -07:00
Cameron Gutman 109e3ca537 Add assert support for *NIX platforms. Asserts are now disabled by default. Define LC_DEBUG to enable them. 2015-07-15 03:40:47 -04:00
Cameron Gutman cc9614645c Merge branch 'xcode-7.0' 2015-07-08 23:42:35 -07:00
Cameron Gutman 04e441ea06 Explicitly define the deployment target of 8.0 2015-07-08 23:37:53 -07:00
Cameron Gutman 1cd17536db Fix leak of video fragments if the frame queue reaches the size limit 2015-07-02 00:07:49 -05:00
Cameron Gutman 25612824ca Revert to legacy Windows behavior since Windows 10 allows CreateThread in Universal apps 2015-06-30 23:24:49 -07:00
Cameron Gutman 7814cb3fae Remove incorrect assert 2015-06-30 22:19:28 -07:00
Cameron Gutman 97a499fc50 Fix build errors and warnings on Windows 2015-06-30 20:53:23 -07:00
Cameron Gutman 678afd9c30 Fix busy loop if a spurious signal of the queue event happens 2015-06-25 20:18:05 -07:00
Cameron Gutman 3a9e37832a Specify signedness behavior of char in the API. Fixes backwards scrolling on Rasbian where char is unsigned by default 2015-06-25 20:10:15 -07:00
Cameron Gutman a5f59d206e Improve debugging and error codes 2015-06-24 22:52:26 -07:00
Cameron Gutman fc68cfd438 Merge branch 'master' into api-1.1 2015-06-22 21:12:47 -07:00
Cameron Gutman 1c0f573489 Fix uninitialized memory usage (caught by Valgrind) 2015-06-22 21:07:07 -07:00
Cameron Gutman f8b394c23d Change host parameter to const char* type 2015-06-19 22:11:38 -04:00
Cameron Gutman 0bb461ac85 Set AI_ADDRCONFIG during DNS resolution 2015-06-17 23:48:25 -07:00
Cameron Gutman 789eac8e6a Fix Windows build 2015-06-17 23:29:51 -07:00