Commit graph

5 commits

Author SHA1 Message Date
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
El
4af9af0f67
VNC-151 Add H264VAAPIEncoder and ScreenEncoderManager implementation. Remove unused include 2026-01-29 00:02:32 +00:00
El
e61f941ab8
VNC-151 Add error handling for sws_scale calls 2026-01-29 00:02:25 +00:00
El
ec31f51773
VNC-151 Use RAII wrappers for FFmpeg contexts 2026-01-29 00:02:23 +00:00
El
a6309e37fa
VNC-151 Add FfmpegFrameFeeder class for managing video playback and frame processing 2026-01-29 00:02:16 +00:00