Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* text=auto
/scripts/*.sh text eol=lf
2 changes: 2 additions & 0 deletions .github/workflows/android-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
'https://repo.maven.apache.org/maven2/dev/ffmpegkit-maintained/ffmpeg-kit-https/7.1.6/ffmpeg-kit-https-7.1.6.aar' \
-o app/libs/ffmpeg-kit-https-7.1.6.aar
echo 'e80e5ee52248a3dcb1dda0524dd784fe4bbb212dcd4d575e82e15d21a002d860 app/libs/ffmpeg-kit-https-7.1.6.aar' | sha256sum --check
- name: Validate FFmpeg source build script
run: bash -n scripts/build_ffmpeg_source.sh
- name: Unit tests, lint and release build
run: bash gradlew --no-daemon :app:testDebugUnitTest :app:lintDebug :app:assembleRelease
- name: Check committed Room schemas
Expand Down
96 changes: 48 additions & 48 deletions scripts/build_ffmpeg_source.sh
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
OUT="$ROOT/build/compliance/ffmpeg-7.1.6"
mkdir -p "$OUT" "$ROOT/build"
BUILD_COMMIT="$(python3 -c 'import json, pathlib, sys; print(json.loads((pathlib.Path(sys.argv[1]) / "third_party/ffmpeg/source-build.json").read_text())["upstreamBuildCommit"])' "$ROOT")"
WORKSPACE="$(mktemp -d "$ROOT/build/ffmpeg-source-build.XXXXXX")"
SOURCE="$WORKSPACE/ffmpegkit"
trap 'printf "FFmpeg source build workspace: %s\n" "$WORKSPACE"' EXIT
git init -q "$SOURCE"
git -C "$SOURCE" remote add origin https://github.com/ffmpegkit-maintained/ffmpeg.git
git -C "$SOURCE" fetch --depth=1 origin "$BUILD_COMMIT"
git -C "$SOURCE" checkout --detach FETCH_HEAD
for patch in "$ROOT"/third_party/ffmpeg/patches/*.patch; do
git -C "$SOURCE" apply --unidiff-zero --check "$patch"
git -C "$SOURCE" apply --unidiff-zero "$patch"
done
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-}}"
if [[ -z "$ANDROID_SDK_ROOT" ]]; then
echo "ANDROID_SDK_ROOT or ANDROID_HOME must point to the Android SDK." >&2
exit 1
fi
if [[ -z "${ANDROID_NDK_ROOT:-}" ]]; then
ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk/26.2.11394342"
fi
export ANDROID_NDK_ROOT
if [[ ! -f "$ANDROID_NDK_ROOT/source.properties" ]]; then
echo "Android NDK r26c was not found at $ANDROID_NDK_ROOT." >&2
exit 1
fi
cd "$SOURCE/android-7.1-lts"
./android.sh --enable-gnutls --enable-gmp \
--enable-android-media-codec --enable-android-zlib \
--disable-arm-v7a --disable-arm-v7a-neon --disable-x86
AAR="$SOURCE/android-7.1-lts/prebuilt/bundle-android-aar/ffmpeg-kit/ffmpeg-kit.aar"
if [[ ! -s "$AAR" ]]; then
echo "The FFmpegKit source build did not produce an AAR." >&2
exit 1
fi
cp "$AAR" "$OUT/ffmpeg-kit-https-7.1.6.aar"
sha256sum "$OUT/ffmpeg-kit-https-7.1.6.aar"
#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
OUT="$ROOT/build/compliance/ffmpeg-7.1.6"
mkdir -p "$OUT" "$ROOT/build"

BUILD_COMMIT="$(python3 -c 'import json, pathlib, sys; print(json.loads((pathlib.Path(sys.argv[1]) / "third_party/ffmpeg/source-build.json").read_text())["upstreamBuildCommit"])' "$ROOT")"
WORKSPACE="$(mktemp -d "$ROOT/build/ffmpeg-source-build.XXXXXX")"
SOURCE="$WORKSPACE/ffmpegkit"
trap 'printf "FFmpeg source build workspace: %s\n" "$WORKSPACE"' EXIT

git init -q "$SOURCE"
git -C "$SOURCE" remote add origin https://github.com/ffmpegkit-maintained/ffmpeg.git
git -C "$SOURCE" fetch --depth=1 origin "$BUILD_COMMIT"
git -C "$SOURCE" checkout --detach FETCH_HEAD

for patch in "$ROOT"/third_party/ffmpeg/patches/*.patch; do
git -C "$SOURCE" apply --unidiff-zero --check "$patch"
git -C "$SOURCE" apply --unidiff-zero "$patch"
done

export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-}}"
if [[ -z "$ANDROID_SDK_ROOT" ]]; then
echo "ANDROID_SDK_ROOT or ANDROID_HOME must point to the Android SDK." >&2
exit 1
fi
if [[ -z "${ANDROID_NDK_ROOT:-}" ]]; then
ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk/26.2.11394342"
fi
export ANDROID_NDK_ROOT
if [[ ! -f "$ANDROID_NDK_ROOT/source.properties" ]]; then
echo "Android NDK r26c was not found at $ANDROID_NDK_ROOT." >&2
exit 1
fi

cd "$SOURCE/android-7.1-lts"
./android.sh --enable-gnutls --enable-gmp \
--enable-android-media-codec --enable-android-zlib \
--disable-arm-v7a --disable-arm-v7a-neon --disable-x86

AAR="$SOURCE/android-7.1-lts/prebuilt/bundle-android-aar/ffmpeg-kit/ffmpeg-kit.aar"
if [[ ! -s "$AAR" ]]; then
echo "The FFmpegKit source build did not produce an AAR." >&2
exit 1
fi
cp "$AAR" "$OUT/ffmpeg-kit-https-7.1.6.aar"
sha256sum "$OUT/ffmpeg-kit-https-7.1.6.aar"
Loading