Skip to content

Commit 47b7f14

Browse files
committed
Add static-libxeve image for FFmpeg 9 builds.
0 parents  commit 47b7f14

11 files changed

Lines changed: 167 additions & 0 deletions

File tree

‎.github/dependabot.yml‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: docker
4+
directory: /
5+
schedule:
6+
interval: daily
7+
- package-ecosystem: github-actions
8+
directory: /
9+
schedule:
10+
interval: daily

‎.github/workflows/bump.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: 'Automatic version updates'
2+
on:
3+
schedule:
4+
# minute hour dom month dow (UTC)
5+
- cron: '0 9 * * *'
6+
# enable manual trigger of version updates
7+
workflow_dispatch:
8+
9+
jobs:
10+
bump:
11+
uses: ffbuilds/.github/.github/workflows/bump.yml@main
12+
secrets:
13+
APP_ID: ${{ secrets.APP_ID }}
14+
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

‎.github/workflows/docker.yml‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
name: Create and publish a Docker image
3+
4+
on:
5+
workflow_dispatch:
6+
repository_dispatch:
7+
types: [rebuild]
8+
push:
9+
branches: [main]
10+
pull_request:
11+
branches: [main]
12+
13+
jobs:
14+
docker:
15+
uses: ffbuilds/.github/.github/workflows/docker.yml@main
16+
with:
17+
push_images: ${{ github.ref == 'refs/heads/main' && github.event_name != 'pull_request' }}
18+
secrets:
19+
APP_ID: ${{ secrets.APP_ID }}
20+
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
21+

‎.github/workflows/linter.yml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Lint Code Base
3+
4+
on:
5+
push:
6+
branches: [main]
7+
pull_request:
8+
branches: [main]
9+
10+
jobs:
11+
build:
12+
uses: ffbuilds/.github/.github/workflows/linter.yml@main

‎.hadolint.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
failure-threshold: error

‎.jscpd.json‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"threshold": 0,
3+
"ignore": [
4+
"**/.github/**"
5+
]
6+
}

‎Bumpfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Dockerfile

‎Dockerfile‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# syntax=docker/dockerfile:1
2+
3+
# bump: xeve /XEVE_VERSION=([\d.]+)/ https://github.com/mpeg5/xeve.git|*
4+
# bump: xeve after ./hashupdate Dockerfile XEVE $LATEST
5+
# bump: xeve link "CHANGELOG" https://github.com/mpeg5/xeve/releases/tag/v$LATEST
6+
ARG XEVE_VERSION=0.5.1
7+
ARG XEVE_URL="https://github.com/mpeg5/xeve/archive/refs/tags/v$XEVE_VERSION.tar.gz"
8+
ARG XEVE_SHA256=238c95ddd1a63105913d9354045eb329ad9002903a407b5cf1ab16bad324c245
9+
10+
# Must be specified
11+
ARG ALPINE_VERSION
12+
13+
FROM alpine:${ALPINE_VERSION} AS base
14+
15+
FROM base AS download
16+
ARG XEVE_URL
17+
ARG XEVE_SHA256
18+
ARG WGET_OPTS="--retry-on-host-error --retry-on-http-error=429,500,502,503 -nv"
19+
WORKDIR /tmp
20+
RUN \
21+
apk add --no-cache --virtual download \
22+
coreutils wget tar && \
23+
wget $WGET_OPTS -O xeve.tar.gz "$XEVE_URL" && \
24+
echo "$XEVE_SHA256 xeve.tar.gz" | sha256sum --status -c - && \
25+
mkdir xeve && \
26+
tar xf xeve.tar.gz -C xeve --strip-components=1 && \
27+
rm xeve.tar.gz && \
28+
apk del download
29+
30+
FROM base AS build
31+
COPY --from=download /tmp/xeve/ /tmp/xeve/
32+
ARG TARGETPLATFORM
33+
ARG XEVE_VERSION
34+
WORKDIR /tmp/xeve
35+
RUN \
36+
case ${TARGETPLATFORM} in \
37+
linux/arm/v*) \
38+
mkdir -p /usr/local/lib/pkgconfig /usr/local/include /usr/local/lib/xeve && \
39+
touch /usr/local/lib/pkgconfig/xeve.pc && \
40+
touch /usr/local/lib/libxeve.a && \
41+
touch /usr/local/include/xeve.h && \
42+
exit 0 \
43+
;; \
44+
esac && \
45+
apk add --no-cache --virtual build \
46+
build-base cmake pkgconf && \
47+
echo v$XEVE_VERSION > version.txt && \
48+
sed -i 's/mc_filter_bilin/xevem_mc_filter_bilin/' src_main/sse/xevem_mc_sse.c && \
49+
mkdir build && cd build && \
50+
cmake \
51+
-G"Unix Makefiles" \
52+
-DARM="$(if [ $(uname -m) = aarch64 ]; then echo TRUE; else echo FALSE; fi)" \
53+
-DCMAKE_BUILD_TYPE=Release \
54+
.. && \
55+
make -j$(nproc) install && \
56+
ln -sf /usr/local/lib/xeve/libxeve.a /usr/local/lib/libxeve.a && \
57+
pkg-config --exists --modversion --path xeve && \
58+
ar -t /usr/local/lib/libxeve.a && \
59+
readelf -h /usr/local/lib/libxeve.a && \
60+
apk del build
61+
62+
FROM scratch
63+
ARG XEVE_VERSION
64+
COPY --from=build /usr/local/lib/pkgconfig/xeve.pc /usr/local/lib/pkgconfig/xeve.pc
65+
COPY --from=build /usr/local/lib/libxeve.a /usr/local/lib/libxeve.a
66+
COPY --from=build /usr/local/include/ /usr/local/include/

‎LICENSE‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
This is free and unencumbered software released into the public domain.
2+
3+
Anyone is free to copy, modify, publish, use, compile, sell, or
4+
distribute this software, either in source code form or as a compiled
5+
binary, for any purpose, commercial or non-commercial, and by any
6+
means.
7+
8+
In jurisdictions that recognize copyright laws, the author or authors
9+
of this software dedicate any and all copyright interest in the
10+
software to the public domain. We make this dedication for the benefit
11+
of the public at large and to the detriment of our heirs and
12+
successors. We intend this dedication to be an overt act of
13+
relinquishment in perpetuity of all present and future rights to this
14+
software under copyright law.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22+
OTHER DEALINGS IN THE SOFTWARE.
23+
24+
For more information, please refer to <https://unlicense.org>

‎README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# static-libxeve
2+
Static build of libxeve

0 commit comments

Comments
 (0)