v0.9.0
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