diff --git a/scripts.d/50-libcuframes.sh b/scripts.d/50-libcuframes.sh new file mode 100644 index 0000000..c236462 --- /dev/null +++ b/scripts.d/50-libcuframes.sh @@ -0,0 +1,44 @@ +#!/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.1" + +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 +}