44 Commits

Author SHA1 Message Date
Cameron Gutman
4c67631ea5 Add negotiation logic for 4K and H.265 2015-12-12 17:18:15 -08:00
Cameron Gutman
920154b4b6 Add support for requesting an H265 stream (negotiation TBD) 2015-12-12 02:16:05 -08:00
Cameron Gutman
df59c99f80 Reference count packets in the RTP queue so they don't get overwritten while queued 2015-10-31 15:27:33 -07:00
Cameron Gutman
c19ff71c9a Add experimental reference frame invalidation support 2015-08-11 21:12:34 -07:00
Cameron Gutman
b3503cdede Reduce GCs and CPU usage by avoiding HashSet and LinkedList usage in the depacketizer. Also avoid atomic ref count operations for direct submit decoders. 2015-03-25 00:14:48 -04:00
Cameron Gutman
1ac6439690 Use an unsynchronized buffer list to cut down on overhead when using direct submit video renderers 2015-03-09 01:38:22 -05:00
Cameron Gutman
2d5328fc24 Pass through the correct refresh rate now that people are doing sensible things with it 2015-02-13 17:07:14 -05:00
Cameron Gutman
ec39f22ad8 Fix packet type for legacy controller packets and privatize some constants to prevent this bug from happening again 2015-02-02 18:06:05 -05:00
Cameron Gutman
8235717502 Fix streaming from GFE 2.1.x 2015-01-25 21:33:24 -05:00
Cameron Gutman
aee255a6ee Backwards compatibility for video and control stream to GFE 2.1.x 2015-01-25 17:59:23 -05:00
Cameron Gutman
daf7598774 Use a single context object instead of passing around tons of objects. Start of GFE 2.1.x backwards compatibility. 2015-01-25 17:34:28 -05:00
Cameron Gutman
79ddfc65d5 Remove unused import 2015-01-22 14:17:33 -05:00
Cameron Gutman
6acb1fd92a Initial support for GFE 2.2.2+ 2015-01-22 14:13:02 -05:00
Cameron Gutman
021cfd1737 Lower the maximum RTP queuing delay to 10 ms instead of 40 ms to reduce the number of frames dropped when a packet is lost 2014-11-27 21:52:03 -06:00
Cameron Gutman
3a3ac83ab5 Change timing of video initialization to prevent an ICMP port unreachable message on start that could tear down a NAT hole 2014-11-20 19:04:58 -08:00
Cameron Gutman
ff4570abac Reorder video stream initialization to vastly reduce the chance we'd miss the initial IDR frame 2014-11-19 10:42:29 -08:00
Cameron Gutman
67c726a141 Lower the rate of UDP pings to 2 per second rather than 10 per second 2014-11-15 00:29:00 -08:00
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
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
abc7f135f3 Prevent a decoder stall from causing corruption of queued decode units 2014-10-10 21:15:50 -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
1bb9a13c17 Generate a better message when a decoder fails to initialize 2014-09-03 20:41:21 -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
aa799342e5 Video stream updates for GFE 2.1.1 2014-07-31 01:32:15 -07:00
Cameron Gutman
f35c2ead0f Fix video path with no renderer 2014-07-13 18:21:50 -07:00
Cameron Gutman
00e81e87de Allow renderer initialization to indicate failure 2014-06-29 11:38:27 -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
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
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
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
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
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
2d5083179c Revert "Remove depacketizer thread"
This reverts commit a2a4463c0b684fa54212fe497ac2a8931ebd8821.
2014-02-17 16:14:03 -05:00
Iwan Timmer
82ae042f1c Remove depacketizer thread 2014-01-22 15:23:38 +01: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
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
Cameron Gutman
ce1494895e Commit of common limelight core with bindings based on HEAD of RenderScript-Renderer 2013-12-05 12:57:49 -05:00