Commit Graph
100 Commits
Author SHA1 Message Date
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
Cameron Gutman c4d19edb4c Update to API 1.1 2015-06-17 23:21:58 -07:00
Cameron Gutman 43e6d35b8f Zero the direction array before batching 2015-06-01 01:29:20 -05:00
Cameron Gutman 2a0e5a0491 Fix mouse batching when the delta is negative 2015-05-29 16:40:53 -05:00
Cameron Gutman d79e63b3b7 Fix implicit declaration warnings about htons()/htonl() on *nix 2015-05-28 14:37:29 -05:00
Cameron Gutman a6cb892a28 Add support for controller and mouse movement batching 2015-05-28 10:13:26 -05:00
Cameron Gutman 626cbbf951 Update Xcode project file 2015-05-28 09:23:48 -05:00
Cameron Gutman da54ebf11f Fix remaining RTP queue bugs 2015-05-28 09:23:28 -05:00
Cameron Gutman 0b6727e92d Fix some RTP queue bugs 2015-05-28 09:06:51 -05:00
Cameron Gutman f837f24998 Fix false analysis warning 2015-05-28 08:45:47 -05:00
Cameron Gutman 956d6bb217 Add an RTP reordering queue to handle out of order packets 2015-05-28 08:32:51 -05:00
Cameron Gutman e50df23a0a Don't hardcode 60 FPS 2015-05-28 08:12:59 -05:00
Cameron Gutman f8df5030e1 Platform code cleanup 2015-05-28 06:23:19 -05:00
Cameron Gutman 601dd55d7c Save an allocation per video frame, audio packet, and input event by embedding an LBQ entry inside the linked data structure 2015-05-28 06:06:40 -05:00
Cameron Gutman fcd2a20e01 Fix a bug caught by -Wall that had us make an extra call for each video packet 2015-05-15 01:38:44 +00:00
Cameron Gutman dcc1b932de Update Xcode project 2015-05-13 23:05:40 -05:00
Cameron Gutman cd49cce4c5 Add comments to Limelight.h to provide some documentation 2015-05-13 22:00:10 -05:00
Cameron Gutman 64771ab6bc Don't declare a variable length array on the stack 2015-05-13 21:53:35 -05:00
Cameron Gutman 6b0f1aecc5 Allow callers of LiStartConnection() to omit passing callbacks they don't need 2015-05-13 21:51:33 -05:00
Cameron Gutman b071d91ea7 Merge pull request #4 from irtimmer/fix-include-platform
Case-sensative correct include of platform.h
2015-05-11 12:56:39 -05:00
Cameron Gutman d9c46b64ac Renaming projects to Moonlight 2015-04-21 21:43:39 -04:00
Cameron Gutman dc270ce988 Fix SDP bitrate attributes 2015-04-05 21:57:25 -04:00