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
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