Merge pull request 'daemon: dlopen Kwiboo fork's soname 62 (FFmpeg 8.1 at /opt/fourier)' (#16) from noether/daemon-dlopen-kwiboo-soname62 into main

Reviewed-on: #16
This commit was merged in pull request #16.
This commit is contained in:
2026-05-21 19:20:22 +00:00
+24 -7
View File
@@ -11,14 +11,31 @@
#include <dlfcn.h> #include <dlfcn.h>
/* /*
* SONAME versions match Debian Trixie / FFmpeg 7.1.3 today. If * SONAME versions match the Kwiboo ffmpeg-v4l2-request-fourier
* the system FFmpeg changes major, the daemon needs a rebuild; * fork (FFmpeg 8.1) installed at the /opt/fourier prefix. The
* we could add fallback paths (.so.60, .so.59, ...) but for * fourier campaign's ld.so.conf.d/fourier.conf entry resolves
* Phase 8.3 the pinned version is fine. * these sonames from /opt/fourier/lib via the ld cache, so
* dlopen-by-soname works without LD_LIBRARY_PATH wrappers.
*
* Switched from Debian-stock soname 61/61/59 (FFmpeg 7.1.3) at
* 2026-05-21 to land daedalus-fourier kernel substitution into
* the production decode path via patches in the Kwiboo fork
* (see daedalus-v4l2#11 substitution arc): we own the fork
* source in marfrit-packages, so we can layer NEON-DSP
* substitution patches there for libavcodec/aarch64/h264dsp_init
* → daedalus_recipe_dispatch_* thunks. The Debian-stock 7.1.3
* is built outside the marfrit-packages source tree, which
* would have made layering substitution patches awkward.
*
* Note: libavutil bumps soname 59 → 60 between FFmpeg 7.1 and
* 8.1; libavformat + libavcodec each bump 61 → 62. The public
* API surface the daemon uses (avcodec_send_packet /
* receive_frame / AVCodecContext flags / AVFrame fields) is
* stable across the bump.
*/ */
#define LIBAVFORMAT_SONAME "libavformat.so.61" #define LIBAVFORMAT_SONAME "libavformat.so.62"
#define LIBAVCODEC_SONAME "libavcodec.so.61" #define LIBAVCODEC_SONAME "libavcodec.so.62"
#define LIBAVUTIL_SONAME "libavutil.so.59" #define LIBAVUTIL_SONAME "libavutil.so.60"
/* /*
* Resolve a symbol from a dlopen'd handle. Logs the failure * Resolve a symbol from a dlopen'd handle. Logs the failure