Skip to content

Releases: any1/neatvnc

v0.5.3

23 Aug 22:42
Compare
Choose a tag to compare
Andri Yngvason (3):
      Revert "h264-encoder: Add 30 bit color depth formats"
      server: Fix encoding selection for sw frames

v0.5.2

23 Aug 21:28
Compare
Choose a tag to compare
Andri Yngvason (3):
      stream: Remove stray ampersand in tls handshake failure code path
      resampler: Use transformed width as destination stride

v0.5.1

09 Jul 21:48
Compare
Choose a tag to compare
Andri Yngvason (3):
      meson: Use partial_dependency() for libdrm cflags
      test: meson: Add missing libdrm_inc dependency

Jan Beich (1):
      server: add missing header after f20ffb5e1efe

v0.5.0

09 Jul 18:23
Compare
Choose a tag to compare

Highlights

  • H.264 Encoding
  • UNIX Sockets
  • New framebuffer submission API
  • Automatic buffer transforms
  • Client side cursor rendering
  • Now accepts DMA-BUFs
  • Presentation time stamps
  • New internal encoder abstraction layer

Shortlog

Andri Yngvason (92):
      Add libdrm include path to cflags
      Display Patreon account on GitHub page
      fb: Add hold/release logic
      Notify the user when an fb is released
      Add a buffer pool
      Remove nvnc_set_render_fn
      fb: Use special context pointer for release callback
      fb_pool: Fix reference counting error
      server: process fb update requests in fb update request message handler
      Add a cleanup callback to nvnc_set_userdata
      fb_pool: Return true from resize when dimensions change
      display & fb_pool: Clean up memory leaks
      examples: draw: Use new buffer submission API
      Remove damage checker
      .gitignore: add .vimrc and sandbox
      Add a stride parameter to nvnc_fb
      Add a API function to get the pixel size of nvnc_fb
      Add API function for creating nvnc_fb from an pre-allocated buffer
      Remove nvnc_fb_flags
      fb: Fix buffer allocation
      Add gbm_bo nvnc_fb type
      pixels: Add fourcc_to_pixman_fmt
      Add transform utility functions from wayvnc
      fb: Add transform attribute
      Re-sample transformed framebuffers
      transform-util: Add dimensions transform function
      resampler: Transform output buffer dimensions based on input transform
      resampler: Make resampler object opaque
      resampler: Track buffer damage
      Add damage refinery from wayvnc
      fb: Fix mapped gbm buffer stride
      fb: Unmap released fbs
      display: Clean up transformed damage region
      Create encoder abstraction
      Remove unused headers
      Add offset coordinates to encoders
      Move update header out of encoders
      Create h264-encoder
      rfb-proto: Add identifier for Open H.264
      Create an Open h.264 encoder
      API: Add nvnc_fb_get_type
      encoder: Add push/pull encoder interface
      Plug open h264
      encoder: Add impl flags
      open-h264: Set "ignores-damage" flag
      server: Keep a count of clients that use damage
      display: Only run damage refinery when it's needed
      h264-encoder: Automatically find a render node
      enc-util: Round up division in calc_bytes_per_cpixel
      pixels: Add 10-bits-per-colour formats
      h264-encoder: Add 30 bit color depth formats
      pixels: Add function to extract alpha mask
      Add a cursor encoder
      Implement client side cursor rendering
      examples: draw: Add a client-side cursor
      pixels: Handle different endianness for alpha mask
      cursor: Fix alpha mask stride
      Add some unit tests for pixel conversions
      test: pixels: Add a unit test for pixel32_to_cpixel
      pixels: Add function to convert drm format to string
      pixels: Add function to get rfb pixel format name
      examples: draw: Handle different endianness for cursor colour
      cursor: Map cursor buffers before access
      cursor: Use the right scan-line length when width != stride
      Add width and height arguments to nvnc_set_cursor
      Implement hiding cursors
      Add back damage argument to nvnc_set_cursor
      h264-encoder: Fix copy-pasta
      server: Decrement n_pending_requests after dispathing encoding job
      h264-encoder: Fully flush output packets
      Add presentation timestamps
      resampler: Extract function: resample_now()
      cursor: Handle rotated cursors
      Call encoder.on_done in a function
      Add simple logging system
      Use new logging system
      server: Promote some log levels
      open-h264: Convert to normal encoder
      display: Add dtrace probes
      resampler: Add dtrace probes
      open-h264: Add dtrace probes
      server: Add dtrace probes with pts
      open-h264: unref result when finished with it
      h264-encoder: Call on_packet_ready last in on_work_done
      server: Reset encoder callback on frame done
      h264-encoder: Clean up current_packet in destroy
      server: Log encoder choices
      server: Turn off Nagle's algorithm
      h264-encoder: Add dtrace probes
      meson_options: Enable h264 by default
      Integrate libav into logging framework
      h264-encoder: Set quality

Harm te Hennepe (1):
      Don't call gbm symbols when they are not available

Jan Beich (1):
      server: consistently use builtin byteswap after 53f88894d52a

Marco Felsch (1):
      meson: Fix host leakage

Ryan Farley (1):
      Support UNIX sockets

v0.4.0

06 Dec 14:20
Compare
Choose a tag to compare

This release adds support for the qemu extended key event. When this is also supported by the client, key codes will be used instead of symbols which eliminates the need for reverse key code lookup on the server-side.

Aisha Tammy (1):
      add systemtap option for sys/std.h

Andri Yngvason (6):
      rfb-proto: Add qemu key event extension
      Add qemu extended key events
      Notify client about qemu key capability
      Decrement pending requests when sending pseudo frames
      Translate XT keycodes to linux keycodes
      Release v0.4.0

v0.3.2

27 Sep 17:41
Compare
Choose a tag to compare

This release fixes a bug with tight encoding reported by Jeroen Hofstee (@jhofstee) who also tracked down the cause of the bug. The issue was that if multiple clients connected to the server and requested tight encoding, frame updates to the clients stalled because each client would hold onto one worker thread while encoding took place.

Andri Yngvason (10):
      Add common utilities for encoders
      tight: Use encoder utils
      zrle: Use encoder utils
      raw-encoder: Use encder utils
      server: Refactor schedule_client_update_fb
      server: Move pixel format conversion out of do_client_update_fb
      server: Extract finish_fb_update() from on_client_update_fb_done()
      tight: Don't block 1 worker while encoding tiles
      tight: Hold fb and client refs while encoding
      Release v0.3.2

v0.3.0: server: Fix possible crash on fragmented packet messages

22 Sep 21:00
Compare
Choose a tag to compare

This release fixes a crash due to incorrect handling of fragmented packets and adds copy & paste support.

Scott Moreau (2):
      server: Add remaining support for simple copy/paste
      server: Fix possible crash on fragmented packet messages

v0.2.0

27 Jul 19:08
Compare
Choose a tag to compare

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