mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-09 16:11:20 +02:00
Add experimental MPV player backend (#161)
Experimental MPV player backend Related to #14, #22, & #85 You can switch to MPV in advanced settings and toggle using hardware decoding or not. This uses code and buildscripts from https://github.com/mpv-android/mpv-android, plus other third party libraries to build MPV
This commit is contained in:
parent
d7b333e519
commit
6be2662d4e
84 changed files with 3987 additions and 289 deletions
77
scripts/mpv/scripts/mpv-android.sh
Executable file
77
scripts/mpv/scripts/mpv-android.sh
Executable file
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
BUILD="$DIR/.."
|
||||
MPV_ANDROID="$DIR/../.."
|
||||
|
||||
. $BUILD/include/path.sh
|
||||
. $BUILD/include/depinfo.sh
|
||||
|
||||
if [ "$1" == "build" ]; then
|
||||
true
|
||||
elif [ "$1" == "clean" ]; then
|
||||
rm -rf $MPV_ANDROID/{app,.}/build $MPV_ANDROID/app/src/main/{libs,obj}
|
||||
exit 0
|
||||
else
|
||||
exit 255
|
||||
fi
|
||||
|
||||
[ -n "$ANDROID_SIGNING_KEY" ] && BUNDLE=1
|
||||
|
||||
nativeprefix () {
|
||||
if [ -f $BUILD/prefix/$1/lib/libmpv.so ]; then
|
||||
echo $BUILD/prefix/$1
|
||||
else
|
||||
echo >&2 "Warning: libmpv.so not found in native prefix for $1, support will be omitted"
|
||||
fi
|
||||
}
|
||||
|
||||
prefix32=$(nativeprefix "armv7l")
|
||||
prefix64=$(nativeprefix "arm64")
|
||||
prefix_x64=$(nativeprefix "x86_64")
|
||||
prefix_x86=$(nativeprefix "x86")
|
||||
|
||||
if [[ -z "$prefix32" && -z "$prefix64" && -z "$prefix_x64" && -z "$prefix_x86" ]]; then
|
||||
echo >&2 "Error: no mpv library detected."
|
||||
exit 255
|
||||
fi
|
||||
|
||||
PREFIX32=$prefix32 PREFIX64=$prefix64 PREFIX_X64=$prefix_x64 PREFIX_X86=$prefix_x86 \
|
||||
ndk-build -C app/src/main -j$cores
|
||||
|
||||
targets=(assembleDebug)
|
||||
if [ -z "$DONT_BUILD_RELEASE" ]; then
|
||||
targets+=(assembleRelease)
|
||||
[ -n "$BUNDLE" ] && targets+=(bundleRelease)
|
||||
fi
|
||||
./gradlew "${targets[@]}"
|
||||
|
||||
if [ -n "$ANDROID_SIGNING_KEY" ]; then
|
||||
cd "${MPV_ANDROID}/app/build/outputs/apk"
|
||||
apksigner=${ANDROID_HOME}/build-tools/${v_sdk_build_tools}/apksigner
|
||||
for v in default api29; do
|
||||
pushd $v
|
||||
# sign the universal debug APK
|
||||
"$apksigner" sign --ks "${ANDROID_SIGNING_KEY}" \
|
||||
--in debug/app-$v-universal-debug.apk --out debug/app-$v-universal-debug-signed.apk
|
||||
# but all of the release APKs
|
||||
for apk in release/*-unsigned.apk; do
|
||||
"$apksigner" sign --ks "${ANDROID_SIGNING_KEY}" \
|
||||
--in $apk --out ${apk/-unsigned/-signed}
|
||||
done
|
||||
popd
|
||||
done
|
||||
# and the bundle
|
||||
cd ../bundle
|
||||
if [ -n "$BUNDLE" ]; then
|
||||
if [ -z "$ANDROID_SIGNING_ALIAS" ]; then
|
||||
echo >&2 "Error: ANDROID_SIGNING_ALIAS must be set to use jarsigner"
|
||||
exit 1
|
||||
fi
|
||||
pushd defaultRelease
|
||||
jarsigner -keystore "${ANDROID_SIGNING_KEY}" -signedjar \
|
||||
app-default-release-signed.aab app-default-release.aab \
|
||||
"${ANDROID_SIGNING_ALIAS}"
|
||||
popd
|
||||
fi
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue