Commit Graph

134 Commits (0cdbf6a602caf99802439b5653128ba15a7566d7)

Author SHA1 Message Date
Andri Yngvason 875cd5af7b Stop reading from a client as soon as an error occurs on the socket 2019-12-27 13:57:40 +00:00
Andri Yngvason bfb1cd9fc9 Don't buffer up multiple outgoing frames
It's pointless to send multiple frames in a single buffer. It just
overloads the client.
2019-12-23 12:11:00 +00:00
Andri Yngvason 4ebf4623cb Fix read buffer and drop older outgoing frames 2019-12-23 09:33:29 +00:00
Andri Yngvason 80b1f3cb4c Re-format using clang-format 2019-10-20 22:13:51 +00:00
Andri Yngvason 05ff0c1514 Don't send an update that hasn't been requested 2019-10-12 17:29:08 +00:00
Andri Yngvason 6dec7287f7 Tune deflate 2019-10-12 16:42:59 +00:00
Andri Yngvason 007578052c Use Z_BEST_SPEED for ZRLE
The default strategy loads the CPU too much when streaming at 60 FPS.
2019-10-12 15:47:38 +00:00
Andri Yngvason b54bc178f0 Fix decoding of encoding message 2019-10-08 18:12:57 +00:00
Andri Yngvason 9501a1da64 Keep a reference to the framebuffer while it is in a worker. 2019-10-08 17:53:12 +00:00
Andri Yngvason 4beaf88a35 Turn around frame update model
Keeping a framebuffer for clients to request from seems to be a better fit for
the VNC standard.
2019-10-07 20:29:12 +00:00
Andri Yngvason 3196a7a46b Make nvnc_fb opaque 2019-10-07 17:39:54 +00:00
Andri Yngvason 40f16fe63b Add raw encoding
It's useful for debugging
2019-09-19 18:14:26 +00:00
Andri Yngvason 083eaaf20a Make sure that the client object outlives the encoding worker task 2019-09-18 22:16:40 +00:00
Andri Yngvason 8973ce5637 Return error from update when there are no pending clients 2019-09-18 21:21:37 +00:00
Andri Yngvason 7d4af0e741 Encode on worker threads 2019-09-15 21:53:10 +00:00
Andri Yngvason 3ce98968bb Add macros for compatibility with older libdrm 2019-09-10 18:17:45 +00:00
Andri Yngvason 55051310d6 Guard against unsupported pixel formats 2019-09-08 16:48:05 +00:00
Andri Yngvason ac2adbb721 Fix check for closing clients in fb update 2019-09-08 16:46:13 +00:00
Andri Yngvason 73987c2f17 Add modifier to do y-inversion during encoding 2019-09-08 15:19:56 +00:00
Andri Yngvason 6046949726 Add license and copyright notices 2019-09-07 16:51:07 +00:00
Andri Yngvason b6f29b036c Allocate framebuffer per client 2019-09-06 20:33:55 +00:00
Andri Yngvason 18062f08d2 Don't send anything to clients that don't have active requests 2019-09-06 20:17:03 +00:00
Andri Yngvason b10c6c2a5a Implement closing of other clients 2019-09-06 20:07:09 +00:00
Andri Yngvason 6660df4d8d Free encoded frames after sending them 2019-09-06 19:26:30 +00:00
Andri Yngvason ff67e2fed3 zrle: Keep the stream alive per connection
Otherwise the client doesn't want to play with the server.
2019-09-01 19:55:11 +00:00
Andri Yngvason 20139f617d Add callbacks for new clients and when clients go away 2019-08-31 23:30:08 +00:00
Andri Yngvason ed5dadd203 Use client specific pointers in callbacks 2019-08-31 23:16:55 +00:00
Andri Yngvason 8cb192c0ad Remove some printouts 2019-08-29 22:08:30 +00:00
Andri Yngvason fd6f47c93c Clean some things up and add more interface functions 2019-08-29 21:47:02 +00:00
Andri Yngvason 6d195dd484 Only linear framebuffers supported as is 2019-08-29 14:02:29 +00:00
Andri Yngvason 33324c9373 Create an interface 2019-08-28 22:46:47 +00:00
Andri Yngvason f31b5a6915 Add benchmark for zrle 2019-08-27 22:29:46 +00:00
Andri Yngvason b8e90d3665 zrle: Encode into vector 2019-08-27 21:49:28 +00:00
Andri Yngvason 980c437f3c Set up a directory structure 2019-08-27 19:42:52 +00:00