mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-04-29 10:52:47 -04:00
[ENG-867] Remove unnecessary encoders from our FFmpeg bundle (#1061)
* Greatly improve our ffmpeg build * Remove not needed deps * Remove libpng from windows ffmpeg build
This commit is contained in:
committed by
GitHub
parent
942bf50638
commit
f433995de6
24
.github/scripts/ffmpeg-windows/scripts.d/20-brotli.sh
vendored
Executable file
24
.github/scripts/ffmpeg-windows/scripts.d/20-brotli.sh
vendored
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/google/brotli.git"
|
||||
SCRIPT_COMMIT="50ebce107f5b1eb36760c7ec2d4726ec56784373"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
|
||||
cd brotli
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \
|
||||
-DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBROTLI_DISABLE_TESTS=ON \
|
||||
-DBROTLI_BUNDLED_MODE=OFF \
|
||||
..
|
||||
|
||||
ninja -j"$(nproc)"
|
||||
ninja install
|
||||
}
|
||||
25
.github/scripts/ffmpeg-windows/scripts.d/20-iconv.sh
vendored
Normal file
25
.github/scripts/ffmpeg-windows/scripts.d/20-iconv.sh
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://git.savannah.gnu.org/git/libiconv.git"
|
||||
SCRIPT_TAG="v1.17"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" libiconv
|
||||
cd libiconv
|
||||
|
||||
retry-tool ./gitsub.sh pull
|
||||
(unset CC CFLAGS GMAKE && ./autogen.sh)
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--enable-extra-encodings
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
)
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
}
|
||||
@@ -12,13 +12,8 @@ ffbuild_dockerbuild() {
|
||||
--static
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
export CC="${FFBUILD_CROSS_PREFIX}gcc"
|
||||
export AR="${FFBUILD_CROSS_PREFIX}ar"
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
export CC="${FFBUILD_CROSS_PREFIX}gcc"
|
||||
export AR="${FFBUILD_CROSS_PREFIX}ar"
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
|
||||
@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/xz-mirror/xz.git"
|
||||
SCRIPT_REPO="https://github.com/tukaani-project/xz.git"
|
||||
SCRIPT_TAG="v5.4.3"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
@@ -10,22 +10,22 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh --no-po4a --no-doxygen
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--enable-small
|
||||
--disable-xz
|
||||
--disable-xzdec
|
||||
--disable-lzmadec
|
||||
--disable-lzmainfo
|
||||
--disable-lzma-links
|
||||
--disable-scripts
|
||||
--disable-doc
|
||||
--disable-symbol-versions
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/google/brotli.git"
|
||||
SCRIPT_COMMIT="ed1995b6bda19244070ab5d331111f16f67c8054"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
|
||||
cd brotli
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF ..
|
||||
ninja -j"$(nproc)"
|
||||
ninja install
|
||||
}
|
||||
@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--disable-oggtest
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/Netflix/vmaf.git"
|
||||
SCRIPT_COMMIT="5ee0051cd7b1337e033558910c30525d73edfd76"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vmaf
|
||||
cd vmaf
|
||||
|
||||
# Kill build of unused and broken tools
|
||||
echo > libvmaf/tools/meson.build
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--buildtype=release
|
||||
--default-library=static
|
||||
-Dbuilt_in_models=true
|
||||
-Denable_tests=false
|
||||
-Denable_docs=false
|
||||
-Denable_avx512=true
|
||||
-Denable_float=true
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--cross-file=/cross.meson
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
meson "${myconf[@]}" ../libvmaf
|
||||
ninja -j"$(nproc)"
|
||||
ninja install
|
||||
|
||||
sed -i 's/Libs.private:/Libs.private: -lstdc++/; t; $ a Libs.private: -lstdc++' "$FFBUILD_PREFIX"/lib/pkgconfig/libvmaf.pc
|
||||
}
|
||||
@@ -10,6 +10,7 @@ ffbuild_dockerbuild() {
|
||||
mkdir build && cd build
|
||||
|
||||
local myconf=(
|
||||
--cross-file=/cross.meson
|
||||
-Denable_docs=false
|
||||
-Denable_tools=false
|
||||
-Denable_tests=false
|
||||
@@ -19,15 +20,6 @@ ffbuild_dockerbuild() {
|
||||
--default-library=shared
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--cross-file=/cross.meson
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
meson "${myconf[@]}" ..
|
||||
ninja -j"$(nproc)"
|
||||
ninja install
|
||||
@@ -37,5 +29,5 @@ ffbuild_dockerbuild() {
|
||||
|
||||
mkdir -p /opt/dlls/
|
||||
cp -nav /opt/dav1d/* /opt/dlls/
|
||||
rm -r /opt/dlls/lib/pkgconfig
|
||||
rm -r /opt/dlls/include /opt/dlls/lib/pkgconfig
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/ultravideo/kvazaar.git"
|
||||
SCRIPT_TAG="v2.2.0"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" kvazaar
|
||||
cd kvazaar
|
||||
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
echo "Cflags.private: -DKVZ_STATIC_LIB" >>"$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc
|
||||
}
|
||||
@@ -10,6 +10,7 @@ ffbuild_dockerbuild() {
|
||||
autoreconf -i
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
@@ -17,15 +18,6 @@ ffbuild_dockerbuild() {
|
||||
--disable-sherlock265
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://svn.code.sf.net/p/lame/svn/trunk/lame"
|
||||
SCRIPT_REV="6507"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
retry-tool sh -c "rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame"
|
||||
cd lame
|
||||
|
||||
autoreconf -i
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--enable-nasm
|
||||
--disable-gtktest
|
||||
--disable-cpml
|
||||
--disable-frontend
|
||||
--disable-decoder
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
export CFLAGS="$CFLAGS -DNDEBUG"
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
}
|
||||
@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--disable-extra-programs
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/xiph/theora.git"
|
||||
SCRIPT_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" theora
|
||||
cd theora
|
||||
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
--disable-examples
|
||||
--disable-oggtest
|
||||
--disable-vorbistest
|
||||
--disable-spec
|
||||
--disable-doc
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
}
|
||||
@@ -1,39 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp"
|
||||
SCRIPT_TAG="v1.3.1-rc1"
|
||||
SCRIPT_REPO="https://github.com/webmproject/libwebp.git"
|
||||
SCRIPT_TAG="1.3.1"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" webp
|
||||
cd webp
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" libwebp
|
||||
cd libwebp
|
||||
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
--enable-libwebpmux
|
||||
--disable-libwebpextras
|
||||
--disable-libwebpdemux
|
||||
--enable-everything
|
||||
--disable-sdl
|
||||
--disable-gl
|
||||
--disable-png
|
||||
--disable-jpeg
|
||||
--disable-tiff
|
||||
--disable-gif
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/xiph/rav1e.git"
|
||||
SCRIPT_TAG="v0.6.6"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" rav1e
|
||||
cd rav1e
|
||||
|
||||
local myconf=(
|
||||
--prefix=/opt/rav1e
|
||||
--library-type=cdylib
|
||||
--release
|
||||
)
|
||||
|
||||
if [[ -n "$FFBUILD_RUST_TARGET" ]]; then
|
||||
unset PKG_CONFIG_LIBDIR
|
||||
|
||||
export CC="gcc"
|
||||
export CXX="g++"
|
||||
export TARGET_CC="${FFBUILD_CROSS_PREFIX}gcc"
|
||||
export TARGET_CXX="${FFBUILD_CROSS_PREFIX}g++"
|
||||
export CROSS_COMPILE=1
|
||||
export TARGET_CFLAGS="$CFLAGS"
|
||||
export TARGET_CXXFLAGS="$CFLAGS"
|
||||
unset CFLAGS
|
||||
unset CXXFLAGS
|
||||
|
||||
myconf+=(
|
||||
--target="$FFBUILD_RUST_TARGET"
|
||||
)
|
||||
cat <<EOF >$CARGO_HOME/config.toml
|
||||
[target.$FFBUILD_RUST_TARGET]
|
||||
linker = "${FFBUILD_CROSS_PREFIX}gcc"
|
||||
ar = "${FFBUILD_CROSS_PREFIX}ar"
|
||||
EOF
|
||||
fi
|
||||
|
||||
cargo cinstall -v "${myconf[@]}"
|
||||
|
||||
chmod 644 /opt/rav1e/lib/*rav1e*
|
||||
|
||||
sed -i "s@^prefix=/opt/rav1e\$@prefix=${FFBUILD_PREFIX}@" /opt/rav1e/lib/pkgconfig/rav1e.pc
|
||||
cp -nav /opt/rav1e/* "${FFBUILD_PREFIX}/"
|
||||
|
||||
mkdir -p /opt/dlls/
|
||||
cp -nav /opt/rav1e/* /opt/dlls/
|
||||
rm -r /opt/dlls/lib/pkgconfig
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://git.code.sf.net/p/soxr/code"
|
||||
SCRIPT_TAG="0.1.3"
|
||||
ARTIFACT_URL='https://sourceforge.net/projects/soxr/files/soxr-0.1.3-Source.tar.xz'
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" soxr
|
||||
retry-tool sh -c "rm -rf soxr && mkdir -p soxr && curl -LSs '${ARTIFACT_URL}' | tar -xJf- --strip-components=1 -C soxr"
|
||||
cd soxr
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/njh/twolame.git"
|
||||
SCRIPT_COMMIT="90b694b6125dbe23a346bd5607a7fb63ad2785dc"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" twolame
|
||||
cd twolame
|
||||
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
touch doc/twolame.1
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--with-pic
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--disable-sndfile
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
sed -i 's/Cflags:/Cflags: -DLIBTWOLAME_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/twolame.pc
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://github.com/mirror/x264.git"
|
||||
SCRIPT_COMMIT="eaa68fad9e5d201d42fde51665f2d137ae96baf0"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" x264
|
||||
cd x264
|
||||
|
||||
local myconf=(
|
||||
--disable-cli
|
||||
--enable-static
|
||||
--enable-pic
|
||||
--disable-lavf
|
||||
--disable-swscale
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--cross-prefix="$FFBUILD_CROSS_PREFIX"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="https://bitbucket.org/multicoreware/x265_git.git"
|
||||
SCRIPT_COMMIT="34532bda12a3a3141880582aa186a59cd4538ae6"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
git clone "$SCRIPT_REPO" x265
|
||||
cd x265
|
||||
git checkout "$SCRIPT_COMMIT"
|
||||
|
||||
local common_config=(
|
||||
-DCMAKE_INSTALL_PREFIX="/opt/x265"
|
||||
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN"
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DENABLE_CLI=OFF
|
||||
-DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy
|
||||
)
|
||||
|
||||
mkdir 8bit 10bit 12bit
|
||||
cmake -S source -B 12bit -G Ninja \
|
||||
"${common_config[@]}" \
|
||||
-DHIGH_BIT_DEPTH=ON \
|
||||
-DEXPORT_C_API=OFF \
|
||||
-DENABLE_SHARED=OFF \
|
||||
-DENABLE_STATIC=ON \
|
||||
-DMAIN12=ON
|
||||
ninja -C 12bit -j"$(nproc)"
|
||||
|
||||
cmake -S source -B 10bit -G Ninja \
|
||||
"${common_config[@]}" \
|
||||
-DENABLE_HDRDENABLE_HDR10_PLUS=ON \
|
||||
-DHIGH_BIT_DEPTH=ON \
|
||||
-DEXPORT_C_API=OFF \
|
||||
-DENABLE_SHARED=OFF \
|
||||
-DENABLE_STATIC=ON
|
||||
ninja -C 10bit -j"$(nproc)"
|
||||
|
||||
cmake -S source -B 8bit -G Ninja \
|
||||
"${common_config[@]}" \
|
||||
-DEXTRA_LIB='x265_main10.a;x265_main12.a' \
|
||||
-DENABLE_HDRDENABLE_HDR10_PLUS=ON \
|
||||
-DEXTRA_LINK_FLAGS=-L. \
|
||||
-DENABLE_SHARED=ON \
|
||||
-DENABLE_STATIC=OFF \
|
||||
-DLINKED_10BIT=ON \
|
||||
-DLINKED_12BIT=ON
|
||||
|
||||
ln -s ../10bit/libx265.a 8bit/libx265_main10.a
|
||||
ln -s ../12bit/libx265.a 8bit/libx265_main12.a
|
||||
|
||||
ninja -C 8bit -j"$(nproc)"
|
||||
|
||||
ninja -C 8bit install
|
||||
|
||||
sed -ri 's/^(Libs.private:.*)$/\1 -lstdc++/' /opt/x265/lib/pkgconfig/x265.pc
|
||||
sed -i "s@^prefix=/opt/x265\$@prefix=${FFBUILD_PREFIX}@" /opt/x265/lib/pkgconfig/x265.pc
|
||||
cp -nav /opt/x265/* "${FFBUILD_PREFIX}/"
|
||||
|
||||
mkdir -p /opt/dlls/
|
||||
cp -nav /opt/x265/* /opt/dlls/
|
||||
rm -r /opt/dlls/lib/pkgconfig
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_REPO="http://svn.xvid.org/trunk/xvidcore"
|
||||
SCRIPT_REV="2198"
|
||||
|
||||
ffbuild_dockerbuild() {
|
||||
retry-tool sh -c "rm -rf xvid && svn checkout --username 'anonymous' --password '' '${SCRIPT_REPO}@${SCRIPT_REV}' xvid"
|
||||
cd xvid
|
||||
|
||||
cd build/generic
|
||||
|
||||
# The original code fails on a two-digit major...
|
||||
sed -i -e 's/GCC_MAJOR=.*/GCC_MAJOR=10/' \
|
||||
-e 's/GCC_MINOR=.*/GCC_MINOR=0/' \
|
||||
configure.in
|
||||
|
||||
./bootstrap.sh
|
||||
|
||||
local myconf=(
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
if [[ $TARGET == win* ]]; then
|
||||
rm "$FFBUILD_PREFIX"/{bin/libxvidcore.dll,lib/libxvidcore.dll.a}
|
||||
elif [[ $TARGET == linux* ]]; then
|
||||
rm "$FFBUILD_PREFIX"/lib/libxvidcore.so*
|
||||
fi
|
||||
}
|
||||
@@ -11,21 +11,13 @@ ffbuild_dockerbuild() {
|
||||
./autogen.sh
|
||||
|
||||
local myconf=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
--prefix="$FFBUILD_PREFIX"
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
)
|
||||
|
||||
if [[ $TARGET == win* || $TARGET == linux* ]]; then
|
||||
myconf+=(
|
||||
--host="$FFBUILD_TOOLCHAIN"
|
||||
)
|
||||
else
|
||||
echo "Unknown target"
|
||||
return 255
|
||||
fi
|
||||
|
||||
./configure "${myconf[@]}"
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
|
||||
@@ -8,6 +8,9 @@ ffbuild_dockerbuild() {
|
||||
|
||||
cd ffmpeg
|
||||
|
||||
# Broken configs:
|
||||
# --enable-lto (Broken on Windows)
|
||||
|
||||
./configure \
|
||||
--cpu="x86_64" \
|
||||
--arch='x86_64' \
|
||||
@@ -16,23 +19,36 @@ ffbuild_dockerbuild() {
|
||||
--pkg-config=pkg-config \
|
||||
--pkg-config-flags="--static" \
|
||||
--cross-prefix="$FFBUILD_CROSS_PREFIX" \
|
||||
--disable-alsa \
|
||||
--disable-static \
|
||||
--disable-debug \
|
||||
--disable-doc \
|
||||
--disable-htmlpages \
|
||||
--disable-txtpages \
|
||||
--disable-manpages \
|
||||
--disable-podpages \
|
||||
--disable-indevs \
|
||||
--disable-libplacebo \
|
||||
--disable-neon-clobber-test \
|
||||
--disable-network \
|
||||
--disable-outdevs \
|
||||
--disable-parser=avs2 \
|
||||
--disable-parser=avs3 \
|
||||
--disable-postproc \
|
||||
--disable-programs \
|
||||
--disable-libwebp \
|
||||
--disable-sdl2 \
|
||||
--disable-metal \
|
||||
--disable-network \
|
||||
--disable-openssl \
|
||||
--disable-schannel \
|
||||
--disable-static \
|
||||
--disable-securetransport \
|
||||
--disable-xlib \
|
||||
--disable-libxcb \
|
||||
--disable-libxcb-shm \
|
||||
--disable-libxcb-xfixes \
|
||||
--disable-libxcb-shape \
|
||||
--disable-libv4l2 \
|
||||
--disable-v4l2-m2m \
|
||||
--disable-vaapi \
|
||||
--disable-vdpau \
|
||||
--disable-w32threads \
|
||||
--disable-xmm-clobber-test \
|
||||
--disable-neon-clobber-test \
|
||||
--enable-amf \
|
||||
--enable-avcodec \
|
||||
--enable-avfilter \
|
||||
@@ -42,31 +58,23 @@ ffbuild_dockerbuild() {
|
||||
--enable-ffnvcodec \
|
||||
--enable-gpl \
|
||||
--enable-gray \
|
||||
--enable-iconv \
|
||||
--enable-inline-asm \
|
||||
--enable-libdav1d \
|
||||
--enable-libjxl \
|
||||
--enable-libkvazaar \
|
||||
--enable-libmp3lame \
|
||||
--enable-libopenjpeg \
|
||||
--enable-libopus \
|
||||
--enable-librav1e \
|
||||
--enable-libshaderc \
|
||||
--enable-libsoxr \
|
||||
--enable-libtheora \
|
||||
--enable-libtwolame \
|
||||
--enable-libvmaf \
|
||||
--enable-libvorbis \
|
||||
--enable-libvpl \
|
||||
--enable-libvpx \
|
||||
--enable-libwebp \
|
||||
--enable-libx264 \
|
||||
--enable-libx265 \
|
||||
--enable-libxvid \
|
||||
--enable-libzimg \
|
||||
--enable-lzma \
|
||||
--enable-openal \
|
||||
--enable-opencl \
|
||||
--enable-opengl \
|
||||
--enable-optimizations \
|
||||
--enable-pic \
|
||||
--enable-postproc \
|
||||
--enable-pthreads \
|
||||
|
||||
@@ -19,12 +19,8 @@ ffbuild_dockerbuild() {
|
||||
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DWITH_X265=ON \
|
||||
-DWITH_X265_PLUGIN=OFF \
|
||||
-DWITH_DAV1D=ON \
|
||||
-DWITH_DAV1D_PLUGIN=OFF \
|
||||
-DWITH_RAV1E=ON \
|
||||
-DWITH_RAV1E_PLUGIN=OFF \
|
||||
-DWITH_LIBDE265=ON \
|
||||
-DWITH_LIBDE265_PLUGIN=OFF \
|
||||
-DWITH_LIBSHARPYUV=ON \
|
||||
@@ -45,4 +41,6 @@ ffbuild_dockerbuild() {
|
||||
"${FFBUILD_CROSS_PREFIX}gendef" libheif.dll
|
||||
|
||||
"${FFBUILD_CROSS_PREFIX}dlltool" -m i386:x86-64 -d libheif.def -l heif.lib -D libheif.dll
|
||||
|
||||
mv libheif.def heif.lib ../lib/
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user