diff --git a/scripts.d/45-vmaf.sh b/scripts.d/45-vmaf.sh new file mode 100755 index 0000000..f5c2621 --- /dev/null +++ b/scripts.d/45-vmaf.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +VMAF_REPO="https://github.com/Netflix/vmaf" +VMAF_COMMIT="5e4743c613af1209949e92ff065a18537acdb573" + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerstage() { + to_df "ADD $SELF /stage.sh" + to_df "RUN run_stage" +} + +ffbuild_dockerbuild() { + git-mini-clone "$VMAF_REPO" "$VMAF_COMMIT" vmaf + cd vmaf + + mkdir build && cd build + + local myconf=( + --prefix="$FFBUILD_PREFIX" + --buildtype=release + --default-library=static + -Denable_tests=false + -Denable_docs=false + -Denable_avx512=true + ) + + if [[ $TARGET == win* ]]; then + myconf+=( + --cross-file=/cross.meson + ) + else + echo "Unknown target" + return -1 + fi + + meson "${myconf[@]}" ../libvmaf + ninja -j"$(nproc)" + ninja install + + sed -i 's/Libs.private:/Libs.private: -lstdc++/' "$FFBUILD_PREFIX"/lib/pkgconfig/libvmaf.pc + + if [[ $TARGET == win* ]]; then + rm "$FFBUILD_PREFIX"/bin/libvmaf* "$FFBUILD_PREFIX"/lib/libvmaf.dll.a + else + echo "Unknown target" + return -1 + fi + + cd ../.. + rm -rf vmaf +} + +ffbuild_configure() { + echo --enable-libvmaf +} + +ffbuild_unconfigure() { + echo --disable-libvmaf +}