mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2026-07-17 16:36:49 +00:00
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. |
||
|---|---|---|
| .. | ||
| benchmark.cxx | ||
| benchmark.h | ||
| FfmpegFrameFeeder.cpp | ||
| FfmpegFrameFeeder.h | ||