Andri Yngvason
7fb2215c0f
Use raw encoding by default if no encoding has been selected
...
This complies with the standard.
2020-05-31 22:56:27 +00:00
Andri Yngvason
569ad287c5
Fix version error handling
2020-05-29 20:18:05 +00:00
Stefan Agner
d2527e57f0
fix build warnings when building without tls
...
Fix trivial build warnings when building without TLS support.
2020-05-22 20:54:53 +00:00
Stefan Agner
8316994dfa
use static for functions not used outside this compile unit
...
Add static for all functions only used inside the individual compile
units. This helps the compiler to potentially inline these functions.
This allows to use neatvnc as a Meson subproject in Weston which has
-Wmissing-prototypes enabled by default.
2020-05-21 17:44:31 +00:00
Andri Yngvason
f3e09fd622
Prepare API for multi-display support
...
These changes are made now to make it possible to add multi-display
support in the future while keeping the public interface stable.
2020-04-12 18:16:19 +00:00
Andri Yngvason
737dd311a0
Remove nvnc_set_dimensions()
...
This information is now figured out based on the nvnc_fb passed into
nvnc_set_buffer()
2020-04-12 16:08:33 +00:00
Andri Yngvason
297e22b588
Don't render when a client is still encoding
2020-04-10 12:07:35 +00:00
Andri Yngvason
77b866096d
Redesign framebuffer update loop
...
Rendering may now only happen inside the rendering callback. The user is
also allowed to change out the entire buffer in the callback.
The callback is triggered by nvnc_damage_region(), nvnc_damage_whole()
and/or framebuffer update requests.
This fixes #26
2020-04-07 23:35:57 +00:00
Andri Yngvason
048b796ff5
Enable SO_REUSEADDR again
2020-04-06 18:29:17 +00:00
Andri Yngvason
1976221afe
Resolve host names in nvnc_open()
...
This fixes #23
2020-04-04 22:26:00 +00:00
Andri Yngvason
8fc5c18b28
Don't show partial frames to new clients
2020-04-04 14:00:03 +00:00
Andri Yngvason
f45f90ed9b
nvnc_fb: Add a mechanism for signaling that a frame is in use
2020-04-04 12:33:18 +00:00
Andri Yngvason
b0799f7490
server: Add dtrace probe for stream_send inside update_fb_done
2020-04-03 23:11:12 +00:00
Andri Yngvason
25626a9048
tight: Implement quality control
2020-04-03 20:09:26 +00:00
Andri Yngvason
17e0d6036f
tight: Implement bare minimum "basic" encoding
2020-04-03 00:18:54 +00:00
Andri Yngvason
cfb2abfc58
tight: Prepare for "basic" encoding method
2020-04-02 21:52:04 +00:00
Andri Yngvason
10a3fd6238
Add dtrace probes for framebuffer updates
2020-04-01 22:53:22 +00:00
Andri Yngvason
a77eb34fba
Spawn as many workers as there are CPU cores
2020-03-21 17:27:30 +00:00
Andri Yngvason
76e721c4cd
Replace libuv with aml
2020-03-21 16:59:10 +00:00
Andri Yngvason
7d2b295b4a
server: Read messages straight into message buffer
...
This avoids extra copying and removes a possible error condition that
would cause the connection to be closed
2020-01-25 16:42:10 +00:00
Andri Yngvason
547387f549
server: Close after sending VeNCrypt failure message
2020-01-25 16:04:04 +00:00
Andri Yngvason
b30a5516d3
server: Send the proper reason string on security handshake failure
2020-01-25 15:59:04 +00:00
Andri Yngvason
1687b8c701
server: Apply stream API change
2020-01-25 15:52:44 +00:00
Andri Yngvason
caf9fe0130
Remove unused code
2020-01-25 15:39:23 +00:00
Andri Yngvason
19e4e42036
Implement VeNCrypt with x509 plain authentication
2020-01-25 15:35:14 +00:00
Andri Yngvason
4ebd60b8cc
pixels: Delete useless code
2020-01-24 22:29:29 +00:00
Andri Yngvason
a80b314eea
server: Set the pixel format for the client if it hasn't specified one
2020-01-19 22:54:52 +00:00
Andri Yngvason
7fa074e60b
server: Close client if no frame encoding method is available
2020-01-19 21:27:17 +00:00
Andri Yngvason
ebfe4382ee
server: Use size_t for encoding indices
2020-01-19 19:17:15 +00:00
Scott Moreau
db6c063aea
Include sys/param.h for MIN definition
...
Fixes #11 .
2020-01-19 12:00:18 -07:00
Andri Yngvason
ad0ff6b27c
Make Tight encoding optional
2019-12-31 10:13:21 +00:00
Andri Yngvason
ee3f2fefff
server: Extract pixel format functions into pixels.c
2019-12-30 20:13:40 +00:00
Andri Yngvason
a0376f2fd4
Pass entire client structure to tight encoder
2019-12-30 17:48:22 +00:00
Andri Yngvason
d9f80ad196
server: Extract structure definitions into header
2019-12-30 17:22:19 +00:00
Andri Yngvason
8cd33d8a07
Add JPEG Tight encoding
2019-12-30 10:00:15 +00:00
Andri Yngvason
52f5510467
Send a correct reason string when disconnecting due to unsupported security type
2019-12-28 20:50:44 +00:00
Andri Yngvason
00450e0c9d
Clean up some memory leaks
2019-12-27 15:07:48 +00:00
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