#!/bin/bash # cuframes — CUDA IPC zero-copy frames library + FFmpeg input demuxer. # Static build для FFmpeg-Builds pipeline. # # Подключается через FFmpeg демуксер cuframesdec.c (требует patched FFmpeg — # см. addins/cuframes.sh). SCRIPT_REPO="https://git.goldix.org/gx/cuframes.git" # Pinned tag — explicit version для reproducibility builds. Bump для use new lib. SCRIPT_COMMIT="v0.3.3" ffbuild_enabled() { # Включаем только если addin cuframes активен (он экспортирует FFBUILD_HAS_CUFRAMES) [[ -n "${FFBUILD_HAS_CUFRAMES:-}" ]] } ffbuild_dockerbuild() { git clone --depth 1 --branch "$SCRIPT_COMMIT" "$SCRIPT_REPO" cuframes cd cuframes # Static-only build чтобы FFmpeg линковал .a (не .so) cmake -B build -S . -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ -DBUILD_TESTING=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TOOLS=OFF \ -DBUILD_FFMPEG_FILTER=OFF \ -DBUILD_PYTHON_BINDINGS=OFF cmake --build build -j"$(nproc)" cmake --install build # Удаляем shared библиотеки — FFmpeg должен линковать только static rm -f "$FFBUILD_PREFIX"/lib*/libcuframes.so* } ffbuild_configure() { echo --enable-libcuframes } ffbuild_unconfigure() { echo --disable-libcuframes }