Skip to content

v0.2.0

Compare
Choose a tag to compare
@any1 any1 released this 27 Jul 19:08
· 358 commits to master since this release

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.
  • 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