v0.2.0
New features since v0.1.0:
- Tight encoding is no longer experimental and also more complete.
- The encoder employs multiple CPU cores, both for lossy and lossless
compression, which makes it considerably faster than ZRLE, even with
lossless compression. - Supports both lossy (JPEG) and lossless (DEFLATE) compression.
- Allows the client to choose the JPEG "quality" level.
- Allows the client to choose whether to enable lossy compression or not.
- The encoder employs multiple CPU cores, both for lossy and lossless
- Service-side resizing: the server can notify the client and resize buffers
when a different display mode is set. - The API has been prepared for adding multi-display suppport. It has not been
implemented, but the (hopefully) won't have to change when it is. - The library can now be linked statically.
- Version info is baked into the library, so applications linking to neatvnc
can report the version to the user. - The server can now looks up the address to which to bind using
getaddrinfo
I will try to keep the API & ABI stable from now on, but it depends on adoption
rate. If nothing else than wayvnc uses this library, then there is no point in
keeping it stable. Let me know if you want the API to be kept stable.
Andri Yngvason (59):
.gitignore: Add subprojects
Replace libuv with aml
examples: Add signal handler and clean up resources
README: Replace libuv with aml
Spawn as many workers as there are CPU cores
Merge pull request #24 from johnae/master
stream: Close if read() == 0
Make sure framebuffers are properly aligned
Add dtrace probe infrastructure
Add dtrace probes for framebuffer updates
tight: Add some error handling
tight: Limit rectangle max width according to spec
tight: Prepare for "basic" encoding method
tight: Implement bare minimum "basic" encoding
tight: Implement quality control
Replace miniz with system provided zlib
tight: Check quality level at start of each frame
Enable tight encoding by default
server: Add dtrace probe for stream_send inside update_fb_done
README: Add zlib to list of runtime dependencies
nvnc_fb: Add a mechanism for signaling that a frame is in use
Don't show partial frames to new clients
Fix turbojpeg dependency
Resolve host names in nvnc_open()
Revert "tight: Limit rectangle max width according to spec"
Enable SO_REUSEADDR again
Redesign framebuffer update loop
examples: draw: Draw a larget dot
tight: Don't drop MSB when encoding rect size
Don't render when a client is still encoding
meson: Let user choose x86_64 SIMD extension for release build
zrle: Replace an assert with return -1
tight: Replace an assert with return -1
fb: Add copyright notice
damage: Add copyright notice
raw-encoding: Add copyright notice
meson: Set -DNDEBUG for all other build types than debug or debugoptimized
Remove nvnc_set_dimensions()
Prepare API for multi-display support
tight: Allow lossy encoding with 16 bpp
meson_options: Set the default SIMD extension to sse2
Build benchmarks again
Fix version error handling
Use raw encoding by default if no encoding has been selected
Align with neatvnc API changes
Clean up dispatch hander on exit
tight: Re-implement with threads
Always enable tight, encoding but allow disabling lossy tight encoding
server: Assert that a client has a stream open when processing a message
Return failure if display buffer is not set in on_connect
Implement server-side resizing
stream: Ignore events after close instead of aborting
tight: Add method to resize encoder grid
Resize tight encoder on frame resize
stream: Add byte counters
Remove optimisation flags
Bake version info into library
README: Remove text about beta release
examples: Make all functions static
Jan Beich (1):
meson: allow static linking
John Axel Eriksson (1):
Remove libuv header include
Stefan Agner (5):
use static for functions not used outside this compile unit
add warning if a function is not declared
remove fb_lock/unlock
fix below zero message count check
fix build warnings when building without tls