Commit Graph
100 Commits
Author SHA1 Message Date
Cameron Gutman b91ab53219 Connection reuse is broken in GFE's server (requests always get reissued on a new connection) so just turn it off 2016-01-02 17:34:29 -06:00
Cameron Gutman 6eeb7ae5b2 Add UUID on serverinfo and add a TODO for HTTP serverinfo 2016-01-02 16:50:22 -06:00
Cameron Gutman 0436179020 Use UUID string in pairing and switch to HTTP for pairing (like Shield Hub) 2016-01-02 16:47:10 -06:00
Cameron Gutman c92cae51c8 Add UUID to URL queries (like recent Shield Hub version do) 2016-01-02 16:30:24 -06:00
Cameron Gutman 57da68c0e2 Remove uniqueId parameter from NvHTTP.getServerInfo 2016-01-02 16:28:58 -06:00
Cameron Gutman 67dc2ef9ab Properly handle 4K detection on GFE 2.8 2015-12-16 16:39:38 -08:00
Cameron Gutman 6459579f15 Change decoder failure warning 2015-12-13 13:04:07 -08:00
Cameron Gutman 5112179fca Check for GFE version attribute before enabling 4K 2015-12-13 12:18:42 -08:00
Cameron Gutman b640564689 Slicing seems to cause some artifacting issues, so I'm disabling it for now 2015-12-12 21:06:38 -08:00
Cameron Gutman 763f8938b3 Lower bitrate to 75% of original when streaming H.265 2015-12-12 21:06:19 -08:00
Cameron Gutman 4c67631ea5 Add negotiation logic for 4K and H.265 2015-12-12 17:18:15 -08:00
Cameron Gutman 920154b4b6 Add support for requesting an H265 stream (negotiation TBD) 2015-12-12 02:16:05 -08:00
Cameron Gutman d8c7d10ed6 Add H265 support to depacketizer 2015-12-12 01:32:07 -08:00
Cameron Gutman adcffa62d8 Refactor depacketizer to avoid H264 and AVC references -- no behavior changes 2015-12-12 00:06:37 -08:00
Cameron Gutman 260d716eb8 Fix broken app launching and resuming on GFE 2.8 2015-11-11 16:28:58 -08:00
Cameron Gutman fc1c26b5d7 Fix video corruption caused by the first packet in the IDR frame getting chained multiple times, resulting in the reference count of other packets in the I-frame returning to zero prematurely 2015-10-31 15:29:52 -07:00
Cameron Gutman df59c99f80 Reference count packets in the RTP queue so they don't get overwritten while queued 2015-10-31 15:27:33 -07:00
Cameron Gutman 8a465edad9 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:18:18 -07:00
Cameron Gutman 9b9020b512 Adjust bitrate lower bounds to match the default resolution bitrate to fix image quality issues at the very beginning of the stream 2015-10-26 17:33:01 -07:00
Cameron Gutman b9ac48532f Throw an exception if an invalid audio configuration is specified 2015-10-23 13:17:32 -07:00
Cameron Gutman 886ef425e6 Finish 5.1 surround sound support 2015-10-18 15:25:16 -07:00
Cameron Gutman fbd61d2a21 Transition to the Opus Multistream Decoder API 2015-10-17 17:15:22 -07:00
Cameron Gutman 469dcab5c7 Revert "Allow more time for the SSL handshake to take place"
This reverts commit dfde7b136e37fc9d8249bf758858b9da6c61c489.
2015-10-11 14:54:18 -07:00
Cameron Gutman fd1cb52f5f Allow more time for the SSL handshake to take place 2015-10-10 18:13:11 -07:00
Cameron Gutman 5175e68b99 Fix some issues with the new behavior of jmDNS 3.4.2 2015-08-17 22:38:01 -07:00
Cameron Gutman 64aa01b2cf Move to vanilla jmDNS 3.4.2 which fixes a bunch of mDNS issues and doesn't require a patch to work 2015-08-17 19:13:38 -07:00
Cameron Gutman 63964ba6a7 Use monotonic system time for all timestamps 2015-08-17 18:33:05 -07:00
Cameron Gutman e82683b0f4 Build for Java 1.7 compliance 2015-08-13 20:21:55 -07:00
Cameron Gutman 4b2299ed02 Update OkHttp and Okio libraries 2015-08-13 20:21:41 -07:00
Cameron Gutman 4a4f89a992 Revert the encoding bitrate hack 2015-08-12 00:05:54 -07:00
Cameron Gutman d3a7bba666 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:10 -07:00
Cameron Gutman 8bd6582d07 Fix off by one in reference frame invalidation 2015-08-11 21:33:06 -07:00
Cameron Gutman 875089305b Start frame number must be 0 for proper invalidation if the first frame is dropped 2015-08-11 21:26:35 -07:00
Cameron Gutman c19ff71c9a Add experimental reference frame invalidation support 2015-08-11 21:12:34 -07:00
Cameron Gutman 36c320a584 Fix skipping first video packet 2015-08-11 08:42:21 -07:00
Cameron Gutman 316b8c56f1 Improve IDR frame requests for Gen 4 servers to use the proper IDR frame request packet 2015-08-04 22:22:53 -07:00
Cameron Gutman 2cf3855d35 Use the default vqos.bw.flags value sent by GFE 2015-07-18 17:05:15 -07:00
Cameron Gutman 13ec16c606 Update for GFE 2.4.5.54 support. The HTTPS /serverinfo query is now only available to paired clients. As a result, we catch the cert validation error and failover to HTTP. It's ugly but I don't see another way to do it. 2015-06-15 10:22:00 -07:00
Cameron Gutman 7d150e7e89 Fix a bug in RTP queue found when porting to moonlight-common-c 2015-06-15 09:51:59 -07:00
Cameron Gutman 7d61948d91 Take Moonlight out of messages displayed to the user for third party app support 2015-06-15 09:51:15 -07:00
Cameron Gutman 73de3cc91d Renaming projects to Moonlight 2015-04-21 21:43:27 -04:00
Cameron Gutman d71cbe344a Fix missing closes of Closeables caught by StrictMode 2015-03-29 23:00:41 -04:00
Cameron Gutman dbe01a17d2 Enable slicing again on GFE 2.4 to reduce latency on Qualcomm devices 2015-03-25 00:31:30 -04:00
Cameron Gutman b3503cdede Reduce GCs and CPU usage by avoiding HashSet and LinkedList usage in the depacketizer. Also avoid atomic ref count operations for direct submit decoders. 2015-03-25 00:14:48 -04:00
Cameron Gutman 1ac6439690 Use an unsynchronized buffer list to cut down on overhead when using direct submit video renderers 2015-03-09 01:38:22 -05:00
Cameron Gutman c481841ddf Change VideoDecoderRenderer to an abstract class so future interface changes can be made without breaking clients 2015-03-09 01:37:08 -05:00
Cameron Gutman 678269c561 Create a new UnsynchronizedPopulatedBufferList implementation that can be used for better direct submit performance 2015-03-09 01:35:53 -05:00
Cameron Gutman 83e874cdb6 Fix off-by-one to make printed buffers nicer 2015-03-08 22:21:11 -05:00
Cameron Gutman 90fc5797d5 Fix NvApp constructor 2015-02-27 14:11:15 -05:00
Cameron Gutman fcfcce88dd Use an NvApp in the StreamConfiguration so it can be directly used by NvConnection 2015-02-27 14:08:39 -05:00
Cameron Gutman fb8fc54bb1 Use App IDs for app lookups and deprecate the old name-based lookup function 2015-02-27 13:29:41 -05:00
Cameron Gutman a4ec619e5a Add back the capability to get box art with NvHTTP 2015-02-27 01:15:21 -05:00
Cameron Gutman 8fb2622b66 Throw an exception if the received app list XML was incomplete 2015-02-26 17:58:03 -05:00
Cameron Gutman e6527de786 Trim strings retrieved from the applist XML 2015-02-25 19:56:56 -05:00
Cameron Gutman 3f7e4d817f Allow verbose mode to be enabled at runtime 2015-02-25 19:56:20 -05:00
Cameron Gutman 6eaabc84aa Improve verbose debugging 2015-02-25 19:55:16 -05:00
Cameron Gutman 814557435d Print a better message if attempting to quit another device's stream 2015-02-25 19:54:35 -05:00
Cameron Gutman 2d5328fc24 Pass through the correct refresh rate now that people are doing sensible things with it 2015-02-13 17:07:14 -05:00
Cameron Gutman 95c82c5cc5 Fix a nasty bug in multiple controller support that could cause phantom inputs on controller 0 2015-02-12 21:06:37 -05:00
Cameron Gutman fe907b0271 Handle NumberFormatExceptions from parseInt() 2015-02-11 17:24:27 -05:00
Cameron Gutman 7ae74a6a18 Never return an NvApp object that has no app ID assigned 2015-02-09 00:10:56 -05:00
Cameron Gutman 9772049295 Initialize the app name to empty string because it may not be present 2015-02-09 00:09:40 -05:00
Cameron Gutman ec39f22ad8 Fix packet type for legacy controller packets and privatize some constants to prevent this bug from happening again 2015-02-02 18:06:05 -05:00
Cameron Gutman 51343a171d Add multiple controller support 2015-02-01 04:37:35 -05:00
Cameron Gutman 9988330613 Add some new common functions for app list caching 2015-01-30 18:27:15 -05:00
Cameron Gutman 8235717502 Fix streaming from GFE 2.1.x 2015-01-25 21:33:24 -05:00
Cameron Gutman 3d29d76cd4 Fix broken streaming on Gen 4 servers 2015-01-25 21:21:58 -05:00
Cameron Gutman cde5367f38 Tweak network packet loss message and threshold algorithm 2015-01-25 18:37:07 -05:00
Cameron Gutman 466463ebc3 Add SDP backwards compatibility 2015-01-25 18:12:25 -05:00
Cameron Gutman aee255a6ee Backwards compatibility for video and control stream to GFE 2.1.x 2015-01-25 17:59:23 -05:00
Cameron Gutman daf7598774 Use a single context object instead of passing around tons of objects. Start of GFE 2.1.x backwards compatibility. 2015-01-25 17:34:28 -05:00
Cameron Gutman 6de5cf8925 Disable deadzone scaling because it's pretty broken 2015-01-25 17:02:00 -05:00
Cameron Gutman 52e5817327 Fix flags so bitrate scales up properly on GFE 2.2.2 2015-01-22 14:51:28 -05:00
Cameron Gutman 79ddfc65d5 Remove unused import 2015-01-22 14:17:33 -05:00
Cameron Gutman 6acb1fd92a Initial support for GFE 2.2.2+ 2015-01-22 14:13:02 -05:00
Cameron Gutman bd2a1b8886 Improve streaming QoS 2014-12-02 00:54:52 -08:00
Cameron Gutman 021cfd1737 Lower the maximum RTP queuing delay to 10 ms instead of 40 ms to reduce the number of frames dropped when a packet is lost 2014-11-27 21:52:03 -06:00
Cameron Gutman 5fc438a0be Update XPP3 and OkHttp libraries 2014-11-23 23:26:12 -08:00
Cameron Gutman 3a3ac83ab5 Change timing of video initialization to prevent an ICMP port unreachable message on start that could tear down a NAT hole 2014-11-20 19:04:58 -08:00
Cameron Gutman ff4570abac Reorder video stream initialization to vastly reduce the chance we'd miss the initial IDR frame 2014-11-19 10:42:29 -08:00
Cameron Gutman c819f2f0e3 Request a new IDR frame immediately if we've been waiting for one for 120 frames 2014-11-19 10:40:39 -08:00
Cameron Gutman c2cdb1264d Remove equals and hashCode from computer details 2014-11-17 19:00:07 -08:00
Cameron Gutman c0e95ea18b Add count methods to PopulatedBufferList 2014-11-16 12:04:43 -08:00
Cameron Gutman f21a81d7ac Add support back for specifying max packet size 2014-11-15 01:23:33 -08:00
Cameron Gutman 67c726a141 Lower the rate of UDP pings to 2 per second rather than 10 per second 2014-11-15 00:29:00 -08:00
Cameron Gutman ff5f50e3ec Assign the frame start time when we get a slow path frame 2014-11-13 22:17:02 -08:00
Cameron Gutman 022a08f5a1 Throw proper exceptions when an HTTP request fails 2014-11-13 21:56:07 -08:00
Cameron Gutman 52f81274f0 Disable FEC to remove padding from the video stream 2014-11-11 17:42:18 -08:00
Cameron Gutman 35a50209be Revert "Fix waiting for IDR frames"
This reverts commit 37f0abfcd1e1490315e2f321db7d313d91e29cc6.
2014-11-11 17:04:48 -08:00
Cameron Gutman 9728c136f5 Revert "Also use the slow path for the last packet in each frame because it may be padded"
This reverts commit f2e7995747a5ed195926e88ee494602f6a09d9cf.
2014-11-11 16:59:42 -08:00
Cameron Gutman bacd1d81fd Build with Java 1.6 2014-11-11 12:59:20 -08:00
Cameron Gutman f36227b506 Fix waiting for IDR frames 2014-11-11 01:09:15 -08:00
Cameron Gutman debd840db4 Start the video renderer earlier to give it time to warm up 2014-11-11 00:49:18 -08:00
Cameron Gutman 1531629fcd Also use the slow path for the last packet in each frame because it may be padded 2014-11-10 23:59:23 -08:00
Cameron Gutman 7bc325fa08 Add an Android TLS hack to fix GFE 2.1.4 and migrate to OkHttp classes for HTTPS 2014-11-10 21:58:03 -08:00
Cameron Gutman 2cc2d05c2f Display the app name instead of "starting app" 2014-11-06 20:48:08 -08:00
Cameron Gutman 1df03e137b Make network packet loss toast more tolerable 2014-11-06 20:40:33 -08:00
Cameron Gutman b0169b0edf Use a builder for StreamConfiguration to avoid further breaking changes to the constructor. Add support for local audio playback mode. 2014-11-02 20:52:09 -08:00
Cameron Gutman ae79f03e61 Add a hashCode function for ComputerDetails 2014-11-02 14:22:03 -08:00
Cameron Gutman 77a587abe8 Fix box art URL 2014-10-22 21:24:11 -04:00