75 Commits

Author SHA1 Message Date
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
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
bd9c6834b7 Add support for adaptive resolution changes 2014-09-19 22:04: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
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
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
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
8d316ce9f0 Add fill screen flag for decoder renderer 2014-07-19 21:45:19 -07:00
Cameron Gutman
b629f674ca Improve audio robustness to packet reordering and duplication 2014-07-19 17:19:06 -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
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
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
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
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
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
92adbe0983 Update control protocol for GFE 2.0.1 2014-05-06 23:31:09 -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
Cameron Gutman
a39f4c5eab Use a single decoded audio buffer for direct submit audio renderers 2014-03-16 18:13:42 -04:00
Cameron Gutman
239dffcbdf Slightly reduce memory/GC pressure by using a smaller per-packet buffer of 1050 bytes instead of 1500 bytes 2014-03-13 21:53:52 -04:00
Cameron Gutman
3af3df0544 Reduce GC pressure significantly by using a single 100 byte buffer for all audio data instead of allocating 1500 bytes for each audio packet received 2014-03-13 21:53:10 -04:00
Cameron Gutman
7e30d043eb Fix handling packet loss in the second of a split frame 2014-03-13 01:31:47 -04:00
Cameron Gutman
c8c7512600 Hack around an issue where data gets added after the frame is thrown away 2014-02-27 01:31:07 -05:00
Cameron Gutman
50e7deeb32 Merge branch 'master' into logs
Conflicts:
	src/com/limelight/nvstream/av/audio/AudioDepacketizer.java
	src/com/limelight/nvstream/av/video/VideoDepacketizer.java
	src/com/limelight/nvstream/control/ControlStream.java
2014-02-26 16:22:04 -05:00
Cameron Gutman
e60420cb2c Update depacketizer to do reference frame invalidation more like the official streamer. This should reduce the frequency of IDR requests by waiting for network stabilization before requesting the IDR frames. We still request IDR frames because reference frame invalidation still doesn't work well. 2014-02-26 12:12:06 -05:00
Cameron Gutman
4fbe93e62d Set flags on the decode units that indicate what type of data the frame contains 2014-02-26 01:00:17 -05:00
Cameron Gutman
bc2ca0b386 Increase resilience to packet loss. IDR frames are no longer requested if error correction data was lost. A maximum of one IDR frame is requested per corrupt frame. Error correction data is used to recover from the loss of a single-packet frame. 2014-02-24 12:54:03 -05:00
Cameron Gutman
ccc3eeebe8 Remove the depacketizer thread again... 2014-02-19 20:59:31 -05:00
Cameron Gutman
63ee6ef79a Add support for direct submission of buffers to the renderers without a separate thread 2014-02-19 20:36:53 -05:00
Cameron Gutman
cdf634dc41 Display messages if we detect that the device is having issues streaming 2014-02-19 19:03:51 -05:00
Cameron Gutman
2d5083179c Revert "Remove depacketizer thread"
This reverts commit a2a4463c0b684fa54212fe497ac2a8931ebd8821.
2014-02-17 16:14:03 -05:00
Cameron Gutman
a96de39b28 Use packet flags to determine where frames end and begin instead of the packet index 2014-02-17 15:17:20 -05:00