Skip to content

v0.9.0

Compare
Choose a tag to compare
@any1 any1 released this 19 Nov 11:15
· 22 commits to master since this release

Highlights

  • A v4l2m2m based H.264 encoder that works on Raspberry Pi 1 to 4,
    sponsored by Raspberry Pi Ltd.
  • Extended clipboard for UTF-8 text was implemented by Attila Fidan.
  • Listening on a pre-bound file descriptor, implemented by Attila Fidan.
  • The continuous updates extension was implemented by Philipp Zabel.
  • We now have simple bandwidth estimation and improved frame pacing.
  • Methods for rating pixel formats and modifiers have according to Neat VNC's
    preferences have been added.
  • The Qemu/VMWare LED state extensions have been implemented.
  • H.264 encoders will now encode the correct colour space into the elementary
    stream.

Bug fixes

  • Some memory leaks and reference counting errors have been eradicated.
  • A race between resizing events and framebuffer updates that would cause a
    buffer with the previous size to be sent after a resize event has been fixed.
  • Buffers with 24 bits per pixel will now result in 32 bpp being reported to
    the client because 24 bpp is not allowed by the protocol. Nvidia users should
    now be able to use a wider selection of clients as a result of this change.

Breaking changes

There are no breaking changes this release.

Shortlog

Alfred Wingate (1):
      server: Remove undeclared variable from tracing macro

Andri Yngvason (72):
      meson: Bump minor version to 0.9
      Rename h264-encoder.c -> h264-encoder-ffmpeg-impl.c
      Create abstract h264 encoder interface
      Implement v4l2m2m h264 encoder
      h264-v4l2m2m: Update copyright
      FUNDING.yml: Add github sponsors
      Implement qemu/vmware LED state
      Split up crypto code
      stream-tcp: Remove unused function prototype
      Move stream implementations into directory
      Move websocket code into stream/ws
      Move encoders into src/enc
      Move stream headers into own directory
      Move encoder headers into own directory
      crypto: Add copyright notices
      Extract rsa-aes out of server.c
      Extract apple-dh out of server.c
      Extract vencrypt out of server.c
      Lose Lena
      test-images: Add madrill.png to replace Lena
      Add sanity check for chosen security type
      Check if h264 encoder exists before using it
      resampler: Use PIXMAN_OP_SRC instead of PIXMAN_OP_OVER
      enc: raw: Keep reference to encoder in worker
      enc: h264: ffmpeg: Specify sRGB colorspace
      enc: h264: ffmpeg: Convert to BT.709
      enc: h264: encoder: Make destroy idempotent
      Move continuous update check out of switch-cases
      enc: h264: v4l2m2m: Free self on failure
      stream: tcp: Don't flush recursively
      stream: gnutls: Don't flush recursively
      Revert "stream: gnutls: Don't flush recursively"
      enc: Add fb hold for raw, tight and zrle
      server: Don't hold ref client in encoder
      enc: h264: ffmpeg: Remove redundant vec_destroy
      fb: Make unref & release idempotent
      server: Don't hold onto buffer in client
      Don't reference count client objects
      server: Wait for encoder to finish on nvnc_close
      Implement fence messages
      Estimate min_rtt during initial handshake
      Create a bandwidth estimator
      Drop frames when client falls too far behind
      server: Estimate client's bandwidth
      Limit rate based on in-flight data and bandwidth estimate
      server: Don't set SO_SNDBUF
      enc: h264: ffmpeg: Fix comment
      enc: h264: ffmpeg: Set color space on buffersrc
      enc: h264: ffmpeg: Remove sample_aspect_ratio from struct
      enc: h264: ffmpeg: Use sanctioned method for getting hw_frames_ctx
      enc: zrle: Make room for palette
      enc: zrle: Discard oversized packed tiles
      enc: h264: ffmpeg: Add version ifdefs for buffersrc params
      server: Return request-forwarded from resize request
      Wrap encoder results into single object
      Attach resize events to outgoing video frames
      Send ping instead of dummy fence when client connects
      enc: Remove n_rects from encoder struct
      server: Use correct op for cont'd damage check
      server: Extract client damage check into function
      Add methods to rate pixel formats
      Derive depth from pixfmt max values
      Only allow a curated set of modifiers
      Don't wait forever for encoder to finish
      Allow tls XOR crypto to be enabled
      server: Fix pixman const errors
      pixels: Define fourcc_mod_is_vendor
      Clean up release build compiler warnings
      meson: Add run_command check argument
      Nudge 24 bpp to 32 bpp when reporting to client
      Keep reported pixel format
      server: Fix find_highest_client_depth

Attila Fidan (2):
      server: Support opening from a bound socket fd
      server: Implement Extended Clipboard (UTF-8 text)

Jeroen Hofstee (2):
      enc: tight: Fix the size of the tile
      Send queued message when switching to continues updates

Ontje Lünsdorf (1):
      server: Do not unlink an externally managed fd

Philipp Zabel (1):
      Add continuous update support