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
10 changes: 8 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ on:
branches:
- main
pull_request:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'

permissions:
contents: write
Expand Down Expand Up @@ -49,12 +55,12 @@ jobs:
- uses: actions/upload-artifact@v4
with:
name: artifact
path: ./output/*
path: /home/runner/work/libmpv-android-video-build/libmpv-android-video-build/buildscripts/*.jar
- uses: softprops/action-gh-release@v1
if: github.ref == 'refs/heads/main'
with:
draft: true
prerelease: false
tag_name: "vnext"
files: |
output/*
/home/runner/work/libmpv-android-video-build/libmpv-android-video-build/buildscripts/*.jar
70 changes: 30 additions & 40 deletions buildscripts/bundle_default.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,55 +30,45 @@ sudo chmod +x gradlew

unzip -o app/build/outputs/apk/release/app-release.apk -d app/build/outputs/apk/release

ln -sf "$(pwd)/app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/arm64-v8a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/armeabi-v7a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86_64"
cp app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so ../../prefix/arm64-v8a/usr/local/lib
cp app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so ../../prefix/armeabi-v7a/usr/local/lib
cp app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so ../../prefix/x86/usr/local/lib
cp app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so ../../prefix/x86_64/usr/local/lib

cd ../..

# --------------------------------------------------

cd deps/media_kit/media_kit_native_event_loop
mkdir -p temp/lib/arm64-v8a
mkdir -p temp/lib/armeabi-v7a
mkdir -p temp/lib/x86
mkdir -p temp/lib/x86_64

flutter create --org com.alexmercerind --template plugin_ffi --platforms=android .

if ! grep -q android "pubspec.yaml"; then
printf " android:\n ffiPlugin: true\n" >> pubspec.yaml
fi
cp prefix/arm64-v8a/usr/local/lib/*.so temp/lib/arm64-v8a/
cp prefix/armeabi-v7a/usr/local/lib/*.so temp/lib/armeabi-v7a/
cp prefix/x86/usr/local/lib/*.so temp/lib/x86/
cp prefix/x86_64/usr/local/lib/*.so temp/lib/x86_64/

flutter pub get
cd temp

cp -a ../../mpv/libmpv/. src/include/
FIXED_TIME="2025-01-01 00:00:00"

cd example
find "lib" -type d -exec touch -d "$FIXED_TIME" {} +
find "lib/arm64-v8a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/armeabi-v7a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86_64" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +

flutter clean
flutter build apk --release
md5sum lib/arm64-v8a/*.so
md5sum lib/armeabi-v7a/*.so
md5sum lib/x86/*.so
md5sum lib/x86_64/*.so

unzip -o build/app/outputs/apk/release/app-release.apk -d build/app/outputs/apk/release

cd build/app/outputs/apk/release/

# --------------------------------------------------
find lib/arm64-v8a -type f | sort | zip -r -X ../default-arm64-v8a.jar -@
find lib/armeabi-v7a -type f | sort | zip -r -X ../default-armeabi-v7a.jar -@
find lib/x86 -type f | sort | zip -r -X ../default-x86.jar -@
find lib/x86_64 -type f | sort | zip -r -X ../default-x86_64.jar -@

rm -r lib/*/libapp.so
rm -r lib/*/libflutter.so
cd ../

zip -r "default-arm64-v8a.jar" lib/arm64-v8a
zip -r "default-armeabi-v7a.jar" lib/armeabi-v7a
zip -r "default-x86.jar" lib/x86
zip -r "default-x86_64.jar" lib/x86_64

mkdir -p ../../../../../../../../../../output

cp *.jar ../../../../../../../../../../output

md5sum *.jar

cd ../../../../../../../../..

# --------------------------------------------------
pwd

zip -r debug-symbols-default.zip prefix/*/lib
cp debug-symbols-default.zip ../output
md5sum *.jar
85 changes: 37 additions & 48 deletions buildscripts/bundle_encoders-gpl.sh
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
# --------------------------------------------------
set -euxo pipefail

export ENCODERS_GPL=1

if [ -d deps ]; then
if [ ! -f "deps" ]; then
sudo rm -r deps
fi
if [ -d prefix ]; then
if [ ! -f "prefix" ]; then
sudo rm -r prefix
fi

./download.sh
./patch-encoders-gpl.sh
./patch.sh

# --------------------------------------------------

rm scripts/ffmpeg.sh
cp flavors/encoders-gpl.sh scripts/ffmpeg.sh
if [ ! -f "scripts/ffmpeg" ]; then
rm scripts/ffmpeg.sh
fi
cp flavors/default.sh scripts/ffmpeg.sh

# --------------------------------------------------

Expand All @@ -31,55 +30,45 @@ sudo chmod +x gradlew

unzip -o app/build/outputs/apk/release/app-release.apk -d app/build/outputs/apk/release

ln -sf "$(pwd)/app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/arm64-v8a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/armeabi-v7a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86_64"
cp app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so ../../prefix/arm64-v8a/usr/local/lib
cp app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so ../../prefix/armeabi-v7a/usr/local/lib
cp app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so ../../prefix/x86/usr/local/lib
cp app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so ../../prefix/x86_64/usr/local/lib

cd ../..

# --------------------------------------------------

cd deps/media_kit/media_kit_native_event_loop
mkdir -p temp/lib/arm64-v8a
mkdir -p temp/lib/armeabi-v7a
mkdir -p temp/lib/x86
mkdir -p temp/lib/x86_64

flutter create --org com.alexmercerind --template plugin_ffi --platforms=android .
cp prefix/arm64-v8a/usr/local/lib/*.so temp/lib/arm64-v8a/
cp prefix/armeabi-v7a/usr/local/lib/*.so temp/lib/armeabi-v7a/
cp prefix/x86/usr/local/lib/*.so temp/lib/x86/
cp prefix/x86_64/usr/local/lib/*.so temp/lib/x86_64/

if ! grep -q android "pubspec.yaml"; then
printf " android:\n ffiPlugin: true\n" >> pubspec.yaml
fi

flutter pub get
cd temp

cp -a ../../mpv/libmpv/. src/include/
FIXED_TIME="2025-01-01 00:00:00"

cd example
find "lib" -type d -exec touch -d "$FIXED_TIME" {} +
find "lib/arm64-v8a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/armeabi-v7a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86_64" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +

flutter clean
flutter build apk --release
md5sum lib/arm64-v8a/*.so
md5sum lib/armeabi-v7a/*.so
md5sum lib/x86/*.so
md5sum lib/x86_64/*.so

unzip -o build/app/outputs/apk/release/app-release.apk -d build/app/outputs/apk/release
find lib/arm64-v8a -type f | sort | zip -r -X ../encoders-gpl-arm64-v8a.jar -@
find lib/armeabi-v7a -type f | sort | zip -r -X ../encoders-gpl-armeabi-v7a.jar -@
find lib/x86 -type f | sort | zip -r -X ../encoders-gpl-x86.jar -@
find lib/x86_64 -type f | sort | zip -r -X ../encoders-gpl-x86_64.jar -@

cd build/app/outputs/apk/release/

# --------------------------------------------------
cd ../

rm -r lib/*/libapp.so
rm -r lib/*/libflutter.so

zip -r "encoders-gpl-arm64-v8a.jar" lib/arm64-v8a
zip -r "encoders-gpl-armeabi-v7a.jar" lib/armeabi-v7a
zip -r "encoders-gpl-x86.jar" lib/x86
zip -r "encoders-gpl-x86_64.jar" lib/x86_64

mkdir -p ../../../../../../../../../../output

cp *.jar ../../../../../../../../../../output

md5sum *.jar

cd ../../../../../../../../..

# --------------------------------------------------
pwd

zip -r debug-symbols-encoders-gpl.zip prefix/*/lib
cp debug-symbols-encoders-gpl.zip ../output
md5sum *.jar
72 changes: 31 additions & 41 deletions buildscripts/bundle_full.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ fi
if [ ! -f "scripts/ffmpeg" ]; then
rm scripts/ffmpeg.sh
fi
cp flavors/full.sh scripts/ffmpeg.sh
cp flavors/default.sh scripts/ffmpeg.sh

# --------------------------------------------------

Expand All @@ -30,55 +30,45 @@ sudo chmod +x gradlew

unzip -o app/build/outputs/apk/release/app-release.apk -d app/build/outputs/apk/release

ln -sf "$(pwd)/app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/arm64-v8a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/armeabi-v7a"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86"
ln -sf "$(pwd)/app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so" "../../../libmpv/src/main/jniLibs/x86_64"
cp app/build/outputs/apk/release/lib/arm64-v8a/libmediakitandroidhelper.so ../../prefix/arm64-v8a/usr/local/lib
cp app/build/outputs/apk/release/lib/armeabi-v7a/libmediakitandroidhelper.so ../../prefix/armeabi-v7a/usr/local/lib
cp app/build/outputs/apk/release/lib/x86/libmediakitandroidhelper.so ../../prefix/x86/usr/local/lib
cp app/build/outputs/apk/release/lib/x86_64/libmediakitandroidhelper.so ../../prefix/x86_64/usr/local/lib

cd ../..

# --------------------------------------------------

cd deps/media_kit/media_kit_native_event_loop
mkdir -p temp/lib/arm64-v8a
mkdir -p temp/lib/armeabi-v7a
mkdir -p temp/lib/x86
mkdir -p temp/lib/x86_64

flutter create --org com.alexmercerind --template plugin_ffi --platforms=android .

if ! grep -q android "pubspec.yaml"; then
printf " android:\n ffiPlugin: true\n" >> pubspec.yaml
fi
cp prefix/arm64-v8a/usr/local/lib/*.so temp/lib/arm64-v8a/
cp prefix/armeabi-v7a/usr/local/lib/*.so temp/lib/armeabi-v7a/
cp prefix/x86/usr/local/lib/*.so temp/lib/x86/
cp prefix/x86_64/usr/local/lib/*.so temp/lib/x86_64/

flutter pub get
cd temp

cp -a ../../mpv/libmpv/. src/include/
FIXED_TIME="2025-01-01 00:00:00"

cd example
find "lib" -type d -exec touch -d "$FIXED_TIME" {} +
find "lib/arm64-v8a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/armeabi-v7a" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +
find "lib/x86_64" -type f -name "*.so" -exec touch -d "$FIXED_TIME" {} +

flutter clean
flutter build apk --release
md5sum lib/arm64-v8a/*.so
md5sum lib/armeabi-v7a/*.so
md5sum lib/x86/*.so
md5sum lib/x86_64/*.so

unzip -o build/app/outputs/apk/release/app-release.apk -d build/app/outputs/apk/release

cd build/app/outputs/apk/release/

# --------------------------------------------------
find lib/arm64-v8a -type f | sort | zip -r -X ../full-arm64-v8a.jar -@
find lib/armeabi-v7a -type f | sort | zip -r -X ../full-armeabi-v7a.jar -@
find lib/x86 -type f | sort | zip -r -X ../full-x86.jar -@
find lib/x86_64 -type f | sort | zip -r -X ../full-x86_64.jar -@

rm -r lib/*/libapp.so
rm -r lib/*/libflutter.so
cd ../

zip -r "full-arm64-v8a.jar" lib/arm64-v8a
zip -r "full-armeabi-v7a.jar" lib/armeabi-v7a
zip -r "full-x86.jar" lib/x86
zip -r "full-x86_64.jar" lib/x86_64

mkdir -p ../../../../../../../../../../output

cp *.jar ../../../../../../../../../../output

md5sum *.jar

cd ../../../../../../../../..

# --------------------------------------------------
pwd

zip -r debug-symbols-full.zip prefix/*/lib
cp debug-symbols-full.zip ../output
md5sum *.jar
2 changes: 1 addition & 1 deletion buildscripts/include/download-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ HEREDOC
[ ! -d fftools_ffi ] && git clone --depth 1 --branch main https://github.com/moffatman/fftools-ffi.git fftools_ffi

# media-kit-android-helper
[ ! -d media-kit-android-helper ] && git clone --depth 1 --branch fix/no-dup-fd https://github.com/media-kit/media-kit-android-helper.git
[ ! -d media-kit-android-helper ] && git clone --branch main https://github.com/media-kit/media-kit-android-helper.git && cd media-kit-android-helper && git reset --hard 42054e5d479f39ccbb0ae604862e2bcaf59b74c2 && cd ..

# media_kit
[ ! -d media_kit ] && git clone --depth 1 --single-branch --branch main https://github.com/alexmercerind/media_kit.git
Expand Down