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
Cameron Gutman
7947d8b75d
Add the config hack to make 1080p30 work with the CPU decoder
2014-04-07 18:52:17 -04:00
Cameron Gutman
3408e467d5
Fix starting AV stream on GFE 2.0
2014-04-07 18:51:57 -04:00
Cameron Gutman
a0237a19d9
Remove duplicate code
2014-04-07 18:51:01 -04:00
Cameron Gutman
eb15599c01
Only increment the ring index if data was successfully queued
2014-03-17 14:20:43 -04:00
Cameron Gutman
8c9d0d171c
Use ring buffers for audio and video handling to remove the last large allocations that were happening very frequently
2014-03-17 13:38:49 -04:00