mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-01-15 19:06:17 +00:00
Compare commits
2 Commits
c9abd937e8
...
7175dcf7ba
| Author | SHA1 | Date | |
|---|---|---|---|
| 7175dcf7ba | |||
| f07486cb11 |
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@@ -9,11 +9,11 @@ pipeline {
|
||||
name 'DISTRO'
|
||||
values 'ubuntu-22.04', 'ubuntu-24.04',
|
||||
'debian-12', 'fedora-42',
|
||||
'ogarcia/archlinux-latest'
|
||||
'archlinux-latest'
|
||||
}
|
||||
axis {
|
||||
name 'ARCH'
|
||||
values 'amd64', 'arm64'
|
||||
values 'arm64', 'amd64'
|
||||
}
|
||||
}
|
||||
stages {
|
||||
|
||||
13
lib/build.sh
13
lib/build.sh
@@ -179,12 +179,13 @@ ffmpeg 7cd1edeaa410d977a9f1ff8436f480cb45b80178 git https://github.com/
|
||||
hdr10plus_tool 1.7.1 tar.gz https://github.com/quietvoid/hdr10plus_tool/archive/refs/tags/${ver}.${ext}
|
||||
dovi_tool 2.3.0 tar.gz https://github.com/quietvoid/dovi_tool/archive/refs/tags/${ver}.${ext}
|
||||
libsvtav1 3.0.2 tar.gz https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${ver}/SVT-AV1-v${ver}.${ext}
|
||||
libsvtav1_psy 3.0.2 tar.gz https://github.com/psy-ex/svt-av1-psy/archive/refs/tags/v${ver}.${ext} dovi_tool,hdr10plus_tool
|
||||
libsvtav1_psy 3.0.2 tar.gz https://github.com/psy-ex/svt-av1-psy/archive/refs/tags/v${ver}.${ext} dovi_tool,hdr10plus_tool,cpuinfo
|
||||
librav1e 0.8.1 tar.gz https://github.com/xiph/rav1e/archive/refs/tags/v${ver}.${ext}
|
||||
libaom 3.12.1 tar.gz https://storage.googleapis.com/aom-releases/libaom-${ver}.${ext}
|
||||
libvmaf 3.0.0 tar.gz https://github.com/Netflix/vmaf/archive/refs/tags/v${ver}.${ext}
|
||||
libopus 1.5.2 tar.gz https://github.com/xiph/opus/releases/download/v${ver}/opus-${ver}.${ext}
|
||||
libdav1d 1.5.1 tar.xz http://downloads.videolan.org/videolan/dav1d/${ver}/dav1d-${ver}.${ext}
|
||||
cpuinfo latest git https://github.com/pytorch/cpuinfo/
|
||||
'
|
||||
BUILDS_CONF+="libc ${libcVer} tar.xz"
|
||||
BUILDS_CONF+=' https://ftpmirror.gnu.org/glibc/glibc-${ver}.${ext}'
|
||||
@@ -401,6 +402,16 @@ build_librav1e() {
|
||||
}
|
||||
|
||||
### CMAKE ###
|
||||
build_cpuinfo() {
|
||||
cmake \
|
||||
"${CMAKE_FLAGS[@]}" \
|
||||
-DCPUINFO_BUILD_UNIT_TESTS=OFF \
|
||||
-DCPUINFO_BUILD_MOCK_TESTS=OFF \
|
||||
-DCPUINFO_BUILD_BENCHMARKS=OFF \
|
||||
-DUSE_SYSTEM_LIBS=ON || return 1
|
||||
ccache make -j"${JOBS}" || return 1
|
||||
${SUDO_MODIFY} make -j"${JOBS}" install || return 1
|
||||
}
|
||||
build_libsvtav1() {
|
||||
cmake \
|
||||
"${CMAKE_FLAGS[@]}" \
|
||||
|
||||
@@ -4,7 +4,7 @@ VALID_DOCKER_IMAGES=(
|
||||
'ubuntu-22.04' 'ubuntu-24.04'
|
||||
'fedora-41' 'fedora-42'
|
||||
'debian-12'
|
||||
'ogarcia/archlinux-latest'
|
||||
'archlinux-latest'
|
||||
)
|
||||
DOCKER_WORKDIR='/workdir'
|
||||
DOCKER_RUN_FLAGS=(
|
||||
@@ -78,13 +78,15 @@ docker_build_image() {
|
||||
PLATFORM="${PLATFORM:-$(echo_platform)}"
|
||||
|
||||
for distro in "${DISTROS[@]}"; do
|
||||
image_tag="$(set_distro_image_tag "${distro}")"
|
||||
echo_info "sourcing package manager for ${image_tag}"
|
||||
echo_info "sourcing package manager for ${distro}"
|
||||
|
||||
# custom multi-arch image for archlinux
|
||||
test "${distro}" == 'archlinux-latest' && \
|
||||
distro='ogarcia/archlinux-latest'
|
||||
# docker expects colon instead of dash
|
||||
dockerDistro="${distro//-/:}"
|
||||
# specific file for evaluated package manager info
|
||||
distroPkgMgr="${DOCKER_DIR}/$(bash_basename "${distro}")-pkg_mgr)"
|
||||
distroPkgMgr="${DOCKER_DIR}/$(bash_basename "${distro}")-pkg_mgr"
|
||||
# get package manager info
|
||||
|
||||
# TODO REMOVE
|
||||
@@ -147,6 +149,7 @@ docker_build_image() {
|
||||
|
||||
} >"${dockerfile}"
|
||||
|
||||
image_tag="$(set_distro_image_tag "${distro}")"
|
||||
docker buildx build \
|
||||
--platform "${PLATFORM}" \
|
||||
-t "${image_tag}" \
|
||||
@@ -208,29 +211,35 @@ docker_run_image() {
|
||||
check_docker || return 1
|
||||
|
||||
for distro in "${DISTROS[@]}"; do
|
||||
image_tag="$(set_distro_image_tag "${distro}")"
|
||||
# custom multi-arch image for arch
|
||||
test "${distro}" == 'archlinux-latest' && \
|
||||
distro='ogarcia/archlinux-latest'
|
||||
# docker expects colon instead of dash
|
||||
dockerDistro="${distro//-/:}"
|
||||
|
||||
# TODO REMOVE
|
||||
if is_root_owned "${IGN_DIR}"; then
|
||||
docker run \
|
||||
"${DOCKER_RUN_FLAGS[@]}" \
|
||||
"${image_tag}" \
|
||||
"${dockerDistro}" \
|
||||
chown -R "$(id -u):$(id -g)" "${DOCKER_WORKDIR}"/gitignore
|
||||
fi
|
||||
if ! echo_if_fail ls; then
|
||||
docker run \
|
||||
"${DOCKER_RUN_FLAGS[@]}" \
|
||||
"${image_tag}" \
|
||||
"${dockerDistro}" \
|
||||
chown -R "$(id -u):$(id -g)" "${DOCKER_WORKDIR}"/gitignore
|
||||
fi
|
||||
testfile="${PREFIX}/ffmpeg-build-testfile"
|
||||
if ! touch "${testfile}" 2>/dev/null; then
|
||||
docker run \
|
||||
"${DOCKER_RUN_FLAGS[@]}" \
|
||||
"${image_tag}" \
|
||||
"${dockerDistro}" \
|
||||
chown -R "$(id -u):$(id -g)" "${DOCKER_WORKDIR}"/gitignore
|
||||
fi
|
||||
|
||||
image_tag="$(set_distro_image_tag "${distro}")"
|
||||
|
||||
# if a docker registry is defined, pull from it
|
||||
if [[ ${DOCKER_REGISTRY} != '' ]]; then
|
||||
docker_login || return 1
|
||||
|
||||
Reference in New Issue
Block a user