Commit Graph
100 Commits
Author SHA1 Message Date
Cameron Gutman 7f587dc389 Thread priority tweaks: Ensure renderer threads have higher priorities than the receive threads. Increase the priority of the resync thread to just below the video renderer so the control packet can be emitted ASAP. Lower the priority of the loss stats thread. Increase the priority of the input thread slightly above normal. 2014-10-17 17:03:58 -07:00
Cameron Gutman 8dbb03114d Improve axis scaling algorithm to fix cardinal direction issues 2014-10-16 21:16:12 -07:00
Cameron Gutman 415e96dec6 Fix endianness of integer SDP attributes. Fix transferProtocol attributes. 2014-10-10 22:15:21 -07:00
Cameron Gutman abc7f135f3 Prevent a decoder stall from causing corruption of queued decode units 2014-10-10 21:15:50 -07:00
Cameron Gutman 4b93207def Improve ByteBufferDescriptor print functionality 2014-10-10 21:13:05 -07:00
Cameron Gutman f004ae6a41 Use the entry's queue time rather than calling currentTimeMillis() again 2014-10-10 18:21:41 -07:00
Cameron Gutman ac6120adc4 Send control messages as a single TCP packet because the streamer on the PC can choke if it doesn't receive the header and body at the same time 2014-10-10 18:14:43 -07:00
Cameron Gutman d9c2d58519 Don't bind to the RTP ports explicitly. GFE doesn't force us to use these port numbers anymore. 2014-10-07 23:14:48 -07:00
Cameron Gutman 22865b8af4 Don't localize the PIN string 2014-10-05 15:46:09 -07:00
Cameron Gutman 431ba06742 Scale controller axis values to match how Xinput reads them on the PC. Clients that support this must have proper deadzone support (incorrect deadzones will be noticeable) and set ControllerPacket.enableAxisScaling 2014-10-01 20:22:06 -07:00
Cameron Gutman ed8857552b Raise read timeout to 5 seconds and connect timeout to 3 seconds to avoid some spurious timeouts 2014-09-27 20:05:33 -07:00
Cameron Gutman 5f42ca66fe Add read timeouts to HTTP requests that should come back immediately if GFE is working properly 2014-09-27 15:45:13 -07:00
Cameron Gutman c9d003ca6d Use a single byte buffer to serialize input packets 2014-09-27 14:58:51 -07:00
Cameron Gutman 330f40cc18 Disable resolution scaling for now 2014-09-20 02:34:53 -07:00
Cameron Gutman 44366db4d5 Properly fix the timer crash 2014-09-20 02:34:06 -07:00
Cameron Gutman 93bf28b87d Fix weird double cancel crash. This might need more investigation later. 2014-09-19 22:22:22 -07:00
Cameron Gutman bd9c6834b7 Add support for adaptive resolution changes 2014-09-19 22:04:48 -07:00
Cameron Gutman 96ad2bcdef Update SDP generator for GFE 2.1.2 2014-09-19 19:37:37 -07:00
Cameron Gutman 14c03f0b37 Improve connection negotiation speed by caching serverinfo 2014-09-19 18:57:20 -07:00
Cameron Gutman 5bd30fe3dc Suppress connection warnings until 150 frames have come in 2014-09-17 01:58:41 -07:00
Cameron Gutman 5be499887d Fix a resource leak that was causing Limelight-Embedded to hang instead of exiting after using mDNS discovery 2014-09-16 19:17:25 -07:00
Cameron Gutman 7124963c56 Remove unnecessary byte buffer allocations in the most frequent control stream packets 2014-09-15 01:02:33 -07:00
Cameron Gutman 4377808896 Remove unnecessary byte buffer allocations in the input path 2014-09-14 23:58:42 -07:00
Cameron Gutman 50f8f78b8d Add support for vertical mouse scrolling 2014-09-03 22:52:48 -07:00
Cameron Gutman 1bb9a13c17 Generate a better message when a decoder fails to initialize 2014-09-03 20:41:21 -07:00
Cameron Gutman e7f1b822f7 Rename button constants to something reasonable 2014-09-01 14:02:53 -07:00
Cameron Gutman c9eee2e075 Rename NvController -> ControllerStream. Use a dedicated input thread rather than a thread pool for processing input. Batch analog axis updates and mouse moves. 2014-08-20 22:27:25 -07:00
Cameron Gutman 6556b3eb9b Make input packet fields package protected for batching 2014-08-20 21:25:08 -07:00
Cameron Gutman cc92f3829e Fix sequencing errors that lead to drops in audio or video for potentially long periods under the right conditions 2014-08-09 03:39:14 -07:00
Cameron Gutman 33ffbe151f Lower the DU limit back to 15 because 30 can exhaust the video ring buffer 2014-08-06 15:55:02 -07:00
Cameron Gutman 60db0ff775 Wait for an IDR frame after dropping video data due to the decoder being too slow 2014-08-06 15:54:35 -07:00
Cameron Gutman 7ecac185ac Remove an old debug message 2014-08-06 15:53:38 -07:00
Cameron Gutman b76495fa8f Send the newer loss stats packet 2014-08-05 22:28:04 -07:00
Cameron Gutman 463d4ad3fd Only generate 1 packet of FEC data per frame. Disable video resolution scaling on packet loss. 2014-08-04 10:20:49 -07:00
Cameron Gutman 0f0e41d5a4 Implement an RTP queue to handle out of order video and audio packets 2014-08-03 17:59:10 -07:00
Cameron Gutman 2d55562dd3 Improve tolerance to dropped packets 2014-07-31 15:20:43 -07:00
Cameron Gutman cbe40fde92 Prevent network degradation from changing stream resolution 2014-07-31 14:06:30 -07:00
Cameron Gutman 97e62fdd34 Properly detect packet loss within a frame 2014-07-31 10:42:16 -07:00
Cameron Gutman aa799342e5 Video stream updates for GFE 2.1.1 2014-07-31 01:32:15 -07:00
Cameron Gutman ae8cb18f63 Remote input encryption changes for GFE 2.1.1 2014-07-31 00:22:17 -07:00
Cameron Gutman 8f53b6f233 RTSP changes to support GFE 2.1.1 2014-07-31 00:20:56 -07:00
Cameron Gutman 9e385215ce Add support for selecting sops on or off 2014-07-21 22:49:57 -07:00
Cameron Gutman 378fbedfa4 Remove/change some messages 2014-07-21 22:49:28 -07:00
Cameron Gutman c84e063114 Update the packet loss message 2014-07-19 22:49:47 -07:00
Cameron Gutman 8d316ce9f0 Add fill screen flag for decoder renderer 2014-07-19 21:45:19 -07:00
Cameron Gutman 0019b93e8d Stop GFE from changing game settings 2014-07-19 21:42:16 -07:00
Cameron Gutman 2d66c6fb53 Let the bitrate scale from 1Mb to the maximum 2014-07-19 18:07:16 -07:00
Cameron Gutman b629f674ca Improve audio robustness to packet reordering and duplication 2014-07-19 17:19:06 -07:00
Cameron Gutman 670622dfd7 Reduce FEC data to 1 packet at max to lower bandwidth requirements 2014-07-19 16:02:17 -07:00
Cameron Gutman f35c2ead0f Fix video path with no renderer 2014-07-13 18:21:50 -07:00
Cameron Gutman 6b7b797089 Increase DU limits for bursty situations. Fix decode unit leak in audio path. 2014-07-12 19:16:39 -07:00
Cameron Gutman 15d4f6354d Fix mDNS recognition of PCs running GFE 2.1 2014-07-12 16:15:24 -07:00
Cameron Gutman 77cea99b35 "Fix" decode unit leak 2014-07-12 14:07:18 -07:00
Cameron Gutman 70b50bd096 Remove the remaining allocations in the AV paths 2014-07-12 13:37:53 -07:00
Cameron Gutman c2401e7a75 Remove object allocations from audio decoding path 2014-07-12 12:21:57 -07:00
Cameron Gutman b63c6223b0 Remove old MAC address finding code 2014-07-12 12:19:55 -07:00
Cameron Gutman bcf10cc0b2 Remove the create function for MdnsDiscoveryAgent because it can't throw IOException anymore 2014-07-04 15:09:46 -07:00
Cameron Gutman aaa73eb196 Fix a bug in the update function 2014-07-04 14:39:28 -07:00
Cameron Gutman 707c7a1a53 Fix interface changes while mDNS resolution is running 2014-07-04 12:12:50 -07:00
Cameron Gutman dcb3e1c0e4 Fix a few parsing issues with the serverinfo XML 2014-07-04 11:49:48 -07:00
Cameron Gutman 894110ba08 Wake on LAN support. Many fixes for Limelight Android 2.5. 2014-07-03 23:30:29 -07:00
Cameron Gutman a4dceb0b74 Add functions for decoders to return latency statistics 2014-06-30 21:10:27 -07:00
Cameron Gutman 1c82fdf048 Add flags back to the decode unit because TI OMAP devices need them 2014-06-30 21:03:16 -07:00
Cameron Gutman ec303e485f Add a function to retrieve box art for an NvApp 2014-06-29 23:49:06 -07:00
Cameron Gutman 1cdcc6d190 Add mDNS support with a patched version of jmDNS 3.4.1 2014-06-29 23:48:03 -07:00
Cameron Gutman ef1f44f873 Merge branch 'master' of github.com:s0ckz/limelight-common
Conflicts:
	src/com/limelight/nvstream/StreamConfiguration.java
2014-06-29 12:25:10 -07:00
Cameron Gutman 00e81e87de Allow renderer initialization to indicate failure 2014-06-29 11:38:27 -07:00
Cameron Gutman 2f082b9f85 Fix (currently) harmless bug in initial frame parsing 2014-06-29 11:24:20 -07:00
Cameron Gutman c9e5230e37 Allow configuration of maximum packet size 2014-06-22 17:06:28 -07:00
Cameron Gutman 86e2657613 Stop allocating RtpPacket and VideoPacket objects in the reassembly path 2014-06-22 13:52:40 -07:00
Cameron Gutman 6c5ec3d2e9 Store the timestamp of the first packet received in the decode unit 2014-06-19 19:09:00 -07:00
Cameron Gutman 38423a9f37 Refactor the video decoding path so the DecoderRenderer handles pulling decode units instead of dedicating a separate thread for this 2014-06-19 18:28:48 -07:00
Cameron Gutman 7b10e52808 Set the receive thread's priority to maximum 2014-06-15 20:38:28 -07:00
Cameron Gutman 890ee846f7 Move Base64 encoding responsibilities out to the CryptoProviders for Android 2014-06-15 20:11:34 -07:00
Cameron Gutman 6a92ea74fc Cleanup and bugfix pairing code. 2014-06-15 18:54:32 -07:00
Cameron Gutman 07cf96c5ce Add support for secure pairing and input encryption to fix GFE 2.1 compatibility.
TODO:
Needs a LimelightCryptoProvider implementation for each platform to work.
Untested (and probably broken) on Android.
Needs more testing in general, especially in corner cases.
2014-06-15 04:40:47 -07:00
Cameron Gutman 4a2ee91700 Update Jar 2014-05-23 00:06:22 -04:00
Cameron Gutman 8e9d605248 Clamp to min = max so we can eliminate the time taken to scale the bitrate up to the ceiling 2014-05-12 20:00:52 -05:00
Cameron Gutman a4e6738353 Update the A/V loss message 2014-05-12 19:42:00 -05:00
Cameron Gutman 0f815a0085 Fix variable names in the ConnectionStatusListener interface 2014-05-12 19:41:04 -05:00
Cameron Gutman 0c8c108bd1 Add support for sending proper packet loss statistics for server-side bandwidth scaling 2014-05-11 18:49:20 -05:00
Cameron Gutman 04941212cd Tweak some config to improve QoS when streaming 1080p30 over a so-so connection 2014-05-11 13:51:35 -04:00
Cameron Gutman 9ad45a3ca3 Update TinyRTSP Jar to work on Java 1.6 2014-05-11 13:40:58 -04:00
Cameron Gutman 176c8e9b93 Remove the deviceName field to fix a warning 2014-05-11 13:33:51 -04:00
Cameron Gutman f537588228 Don't use the devicename parameter when pairing anymore. It's not using since GFE 2.0.0 and it can cause problems if invalid characters get added to the URL 2014-05-11 13:31:04 -04:00
Cameron Gutman e593c04001 Increase the size of the receive buffer for video data 2014-05-11 13:29:51 -04:00
Cameron Gutman 1095d7808c Increase the size of the video ring buffer for high bitrate streaming 2014-05-11 13:29:20 -04:00
Cameron Gutman d29dccba69 Stick to the older minimum when not using 1080p60 2014-05-07 23:56:38 -04:00
Cameron Gutman a4098919b9 Add support for selecting maximum stream bitrate 2014-05-07 02:11:46 -04:00
Cameron Gutman 09e7ff0582 Update TinyRTSP 2014-05-07 00:23:16 -04:00
Cameron Gutman 09177be8f7 Drop the maximum bitrate of 720p60 to 13 Mbps 2014-05-07 00:22:57 -04:00
Cameron Gutman eaa08bada4 Convert byte[] to char[] manually since IBM437 isn't available on some platforms 2014-05-07 00:22:32 -04:00
Cameron Gutman 5f93d55dab Don't convert IP string back into an InetAddress just leave it an InetAddress 2014-05-06 23:54:03 -04:00
Cameron Gutman dfc0d518f8 Display an error if the PC is running a GFE version less than 2.0.1. 2014-05-06 23:40:09 -04:00
Cameron Gutman eace3a0bf0 Update config to fix 720p60 and 1080p 2014-05-06 23:31:36 -04:00
Cameron Gutman 92adbe0983 Update control protocol for GFE 2.0.1 2014-05-06 23:31:09 -04:00
Cameron Gutman aadbc3dd01 Update TinyRTSP 2014-05-06 21:31:36 -04:00
Cameron Gutman d01a28c57f Initial work on updating for GFE 2.0.1's new RTSP-based handshake protocol 2014-05-06 21:18:57 -04:00
Cameron Gutman 4ee99a78b2 GFE 2.0.1 appears to have a bug where it drops all paired devices when the serverinfo query is sent with a uniqueid argument. Stop doing that to fix Limelight with GFE 2.0.1. 2014-05-06 10:21:17 -04:00
Cameron Gutman bd9b37a5a0 Fix IPv6 incompatibility in HTTP code due to using raw IPv6 addresses in string format 2014-04-13 20:22:53 -04:00