From b84389419ae712f89afcc3ae747e5207b9548f87 Mon Sep 17 00:00:00 2001 From: Predidit <34627277+Predidit@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:09:15 +0800 Subject: [PATCH 1/3] fix: remove native event loop and fix path --- buildscripts/bundle_default.sh | 70 +++++++++++++++------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/buildscripts/bundle_default.sh b/buildscripts/bundle_default.sh index e53ba6e9..d4056e35 100755 --- a/buildscripts/bundle_default.sh +++ b/buildscripts/bundle_default.sh @@ -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 \ No newline at end of file From 5f9c917e98d991081345a9d22f5c0e64a17b44c5 Mon Sep 17 00:00:00 2001 From: Predidit <34627277+Predidit@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:11:21 +0800 Subject: [PATCH 2/3] feat: workflow dispatch --- .github/workflows/build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 321ad1c7..56e459b1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -5,6 +5,12 @@ on: branches: - main pull_request: + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' permissions: contents: write From 3cb8da4ed2bba9496bbf8620b60e6bee0508df6f Mon Sep 17 00:00:00 2001 From: Predidit <34627277+Predidit@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:43:48 +0800 Subject: [PATCH 3/3] fix: fix build && update media-kit-android-helper --- .github/workflows/build.yaml | 4 +- buildscripts/bundle_encoders-gpl.sh | 85 ++++++++++++--------------- buildscripts/bundle_full.sh | 72 ++++++++++------------- buildscripts/include/download-deps.sh | 2 +- 4 files changed, 71 insertions(+), 92 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 56e459b1..29db97b9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -55,7 +55,7 @@ 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: @@ -63,4 +63,4 @@ jobs: prerelease: false tag_name: "vnext" files: | - output/* + /home/runner/work/libmpv-android-video-build/libmpv-android-video-build/buildscripts/*.jar diff --git a/buildscripts/bundle_encoders-gpl.sh b/buildscripts/bundle_encoders-gpl.sh index fa3489e8..18f2b4c9 100755 --- a/buildscripts/bundle_encoders-gpl.sh +++ b/buildscripts/bundle_encoders-gpl.sh @@ -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 # -------------------------------------------------- @@ -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 \ No newline at end of file diff --git a/buildscripts/bundle_full.sh b/buildscripts/bundle_full.sh index 2c1d53d9..414a3167 100644 --- a/buildscripts/bundle_full.sh +++ b/buildscripts/bundle_full.sh @@ -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 # -------------------------------------------------- @@ -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 \ No newline at end of file diff --git a/buildscripts/include/download-deps.sh b/buildscripts/include/download-deps.sh index 82ab726e..11c1e409 100755 --- a/buildscripts/include/download-deps.sh +++ b/buildscripts/include/download-deps.sh @@ -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