90 Commits

Author SHA1 Message Date
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
Cameron Gutman
26809c4b6b Decode parameter set NALs with the slow path so the SPS fixup hack still works 2014-02-17 13:57:15 -05:00
Cameron Gutman
0cce5b021e New video depacketizer that runs in O(1) time 2014-02-17 13:39:18 -05:00
Cameron Gutman
d54c1b07ce Merge pull request #3 from irtimmer/direct_decode
Reassemble NAL's early
2014-02-17 12:14:55 -05:00
Aaron Neyer
e188e1dd04 Merge branch 'master' of github.com:limelight-stream/limelight-common into logs
* 'master' of github.com:limelight-stream/limelight-common:
  Revert "Lower queued decode unit limit to resync faster if the renderers get behind. Lower the audio receive buffer size since it was unneccessarily large."
  Update README.md
  Revert the DU_LIMIT changes due to variance in platform audio rendering speed
  Lower queued decode unit limit to resync faster if the renderers get behind. Lower the audio receive buffer size since it was unneccessarily large.
  Drop code compliance to Java 1.5. Minor annotation changes for 1.5 compliance.
  Remove depacketizer thread
  add gpl
2014-02-02 20:24:50 -05:00
Iwan Timmer
ae18e00b13 Reassemble NAL's early 2014-02-03 00:30:44 +01:00
Cameron Gutman
c18b6ec00b Revert "Lower queued decode unit limit to resync faster if the renderers get behind. Lower the audio receive buffer size since it was unneccessarily large."
This reverts commit 255d65b148c21d1f4e9415922013f6ff91f5236a.
2014-01-24 15:33:18 -05:00
Cameron Gutman
dfa3be78e4 Revert the DU_LIMIT changes due to variance in platform audio rendering speed 2014-01-22 17:08:01 -05:00
Cameron Gutman
932bb1145b Lower queued decode unit limit to resync faster if the renderers get behind. Lower the audio receive buffer size since it was unneccessarily large. 2014-01-22 17:01:37 -05:00
Iwan Timmer
82ae042f1c Remove depacketizer thread 2014-01-22 15:23:38 +01:00
Aaron Neyer
f95cd60cfd Created LimeLog as a wrapper around javas logger 2014-01-12 20:23:18 -05:00
Cameron Gutman
6a695d2c72 Fix H264 decoding artifacts when a frame has fewer than 3 bytes of padding at the end 2014-01-11 14:27:46 -05:00
Cameron Gutman
042f67506c Remove the SPS hack from common, since it introduces compatibility problems for some devices 2014-01-10 00:27:35 -06:00
Cameron Gutman
3201fac36c Fix import warnings 2014-01-08 20:45:18 -06:00
Iwan Timmer
b32899f101 Use a byte buffer for audio to minimize buffer copy's 2014-01-07 20:40:21 +01:00
Cameron Gutman
b4a0f81eda Fixup bitstream_restriction_flag and max_dec_frame_buffering in the SPS to fix decoding latency issues on Tegra and the Raspberry Pi 2014-01-06 22:52:11 -06:00
Cameron Gutman
666fbecc01 Use a 60 FPS redraw rate even if the stream is 30 FPS to reduce stutter 2013-12-29 01:41:17 -05:00
Cameron Gutman
b0d5b9c767 Remove AvcDecoder from the shared code 2013-12-28 16:42:02 -05:00
Cameron Gutman
3648c0f26a Fix print vs println typo 2013-12-28 16:41:39 -05:00
Cameron Gutman
f1b4fdd8b0 Restore the old O(N) video depacketizer to fix artifacting. Add warnings for when the decode unit queue overflows. 2013-12-27 00:05:05 -05:00
Cameron Gutman
12658f4fb0 Update VideoDecoderRenderer interface with redrawRate and additional configuration flags 2013-12-26 17:28:37 -05:00
Cameron Gutman
48f8a05bae Increase the default receive buffers for the RTP sockets to avoid dropping packets while the receive thread is suspended by the OS scheduler. Windows uses particularly small (8KB) receive buffers by default which this should work around. 2013-12-19 14:50:50 -05:00
Cameron Gutman
4701c22b67 Create a StreamConfiguration class and use it to send correct information about the requested resolution and refresh rate to the various streaming components and the target PC. 2013-12-19 04:24:45 -05:00
Cameron Gutman
7f841c1fca Allow reuse of the UDP ports to avoid conflicts with GFE 2013-12-11 23:33:52 -05:00
Diego Waxemberg
29909e07e8 added render api for limelight-pc 2013-12-07 20:09:57 -05:00
Cameron Gutman
ce1494895e Commit of common limelight core with bindings based on HEAD of RenderScript-Renderer 2013-12-05 12:57:49 -05:00