Commit graph

421 commits

Author SHA1 Message Date
Matt McClaskey
714edd295e
Merge remote-tracking branch 'origin/master' into bugfix/VNC-325-hw-h-264-nvenc-performs-poorly 2026-06-04 15:17:43 +00:00
El
c2a9d60664
VNC-325 Add support for codec type ID in video encoding and decoding 2026-05-31 23:17:04 +00:00
El
1ded8df1cb
VNC-325 Simplify encoder configuration 2026-05-28 10:19:39 +00:00
Matthew McClaskey
c7bcefbd9f Merge branch 'feature/VNC-14_direct_drive_mouse' into 'master'
Resolve VNC-14 "Feature/ direct drive mouse"

Closes VNC-14

See merge request kasm-technologies/internal/KasmVNC!236
2026-05-28 09:10:02 +00:00
Matt McClaskey
cb72f051f1
VNC-14 refactor: move force-game-mode notification into SMsgHandler supports* pattern 2026-05-26 10:03:38 +00:00
Matt McClaskey
a34b523b56
fix c++ access violation 2026-05-22 11:43:12 +00:00
Matt McClaskey
0a0d0d3bb1
Call recheckPerms for directMouseEvent 2026-05-21 09:24:17 +00:00
Matt McClaskey
763a6f4972
VNC-14 addressed code review comments 2026-05-19 19:07:57 +00:00
Baldvin Kovacs
c01476e117
Drop avcodec_close for FFmpeg 8 compatibility
avcodec_close() was deprecated in FFmpeg 3.x and removed in FFmpeg 8.0.
Its absence makes FFmpeg::FFmpeg()'s D_LOOKUP_SYM throw, which causes
the constructor to set available=false and disables the entire hardware
video encoding path. KasmVNC then logs:

  ffmpeg: Failed to load symbol avcodec_close
  VNCServerST: Hardware video encoding acceleration capability: unavailable

avcodec_close was only referenced from one site
(common/rfb/benchmark/FfmpegFrameFeeder.cpp's destructor), and that call
was redundant: codec_ctx_guard is a unique_ptr whose deleter calls
avcodec_free_context, which already releases the codec internally.

Remove the dlsym, the typedef, the struct member, and the wrapper, and
default the benchmark destructor (the guard handles cleanup). No runtime
behavior change on FFmpeg <= 7; restores hardware encode on FFmpeg >= 8.
2026-05-19 10:55:12 +00:00
Matt McClaskey
c76c3be9ee
back out old relative cursor code 2026-05-13 15:46:33 +00:00
Matt McClaskey
9050929aa9
VNC-14 Update to relative mouse for better UX and app compatibility 2026-05-13 10:09:09 +00:00
El
243784d5e5
VNC-151 Fix screenshot timer logic to ensure proper interval handling 2026-05-08 18:24:19 +00:00
El
11214a870a
VNC-151 Adjust screenshot timer initialization and interval handling 2026-05-08 18:24:19 +00:00
El
39d5b1b7ba
VNC-151 Refactor screenshot handling 2026-05-08 18:24:19 +00:00
El
adc4ea79fc
VNC-151 Refactor screenshot handling 2026-05-08 18:24:19 +00:00
El
585f3896a2
VNC-151 Handle AVERROR_EOF 2026-05-08 18:24:19 +00:00
El
2c2b89e3f9
VNC-151 Refactor ScreenEncoderManager 2026-05-08 18:24:19 +00:00
El
a96f45b51c
VNC-151 Fix crash 2026-05-08 18:24:19 +00:00
El
ee942a5417
VNC-151 Refactor stopwatch macros and improve debug logging for frame timing 2026-05-08 18:24:19 +00:00
El
cf92c66c3b
VNC-355 Closing secondary monitor closes the connection 2026-05-08 18:24:19 +00:00
El
fe789c482a
VNC-151 Increase MAX_SCREENS limit up to 8 2026-05-08 18:24:19 +00:00
El
a68db7be59
VNC-151 Add static_assert for Encoder and Codec enum count consistency 2026-05-08 18:24:19 +00:00
El
9302c205b0
VNC-333 Revert Remove h.265 SW from KasmVNC 2026-05-08 18:24:19 +00:00
El
5c2822deab
VNC-346 Fix missing screenMutex unlock for an edge case 2026-05-08 18:24:19 +00:00
El
d60e86ef73
VNC-151 Simplify timeval diff calculation 2026-05-08 18:24:19 +00:00
El
6bc7de499d
VNC-151 Add static_assert 2026-05-08 18:24:19 +00:00
El
7a19d05ab0
VNC-346 Refactor screen management 2026-05-08 18:24:19 +00:00
El
e324407d14
VNC-349 Add additional cursor-related conditions to SMsgWriter 2026-05-08 18:22:14 +00:00
El
3f7b49c44f
VNC-151 Replace sws_scale with libyuv for ARGB to I420 2026-05-08 18:22:14 +00:00
El
b6eb3b703e
VNC-151 Use arena 2026-05-08 18:22:14 +00:00
El
c6e01c96ad
VNC-151 Add ENABLE_DEBUG_ENCODERS option for extended encoder debug logging 2026-05-08 18:22:14 +00:00
El
78302ac52a
VNC-151 Refactor 2026-05-08 18:22:14 +00:00
El
3adae2871b
VNC-151 Refactor libyuv usage 2026-05-08 18:22:14 +00:00
El
ed089a5fe6
VNC-151 Refactor libyuv usage 2026-05-08 18:22:14 +00:00
El
9413c7257d
VNC-328 HW AV1 (NVENC) video quality refinements 2026-05-08 18:22:13 +00:00
El
1a61ebfe3c
VNC-151 Adjust NVENC rate control mode 2026-05-08 18:22:13 +00:00
El
49a40b0432
VNC-151 Adjust NVENC rate control mode 2026-05-08 18:22:13 +00:00
El
2d8a3cdb3f
VNC-151 Adjust NVENC rate control mode 2026-05-08 18:22:13 +00:00
El
cce3ebc75e
VNC-151 Adjust NVENC encoder settings for low-latency and improve rate control configuration 2026-05-08 18:22:13 +00:00
El
b8a9889467
VNC-333 Remove h.265 SW from KasmVNC 2026-05-08 18:22:13 +00:00
El
d4af227b41
VNC-330 Fix decoder recovery and improve video frame handling 2026-05-08 18:22:13 +00:00
El
e6e9afa30d
VNC-151 Ensure accurate HW frame pts assignment 2026-05-08 18:22:13 +00:00
El
4a1af0e57f
VNC-324 Update allowed quality ranges for AV1, H.264, and H.265 encoders in EncoderConfiguration 2026-05-08 18:22:13 +00:00
El
8f1df27110
VNC-151 Allow AV1 VA API encoder 2026-05-08 18:22:13 +00:00
El
63e6b81362
VNC-151 Small refactor 2026-05-08 18:22:13 +00:00
El
83a54e665f
VNC-151 Replace vlog.debug with DEBUG_LOG 2026-05-08 18:22:13 +00:00
El
a6f0cb47a4
VNC-151 Add support for configurable encoder profiles in EncoderConfiguration 2026-05-08 18:22:13 +00:00
El
7fd0c184a5
VNC-151 Add support for configurable encoder profiles in EncoderConfiguration 2026-05-08 18:22:13 +00:00
El
c5ab9ceb7b
VNC-151 Refactor encoder configuration to use quality ranges 2026-05-08 18:22:13 +00:00
El
564baa6a54
VNC-151 Introduce DEBUG_LOG macro for debug encoder logging 2026-05-08 18:22:13 +00:00