mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +02:00
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
91 lines
1.9 KiB
Bash
Executable file
91 lines
1.9 KiB
Bash
Executable file
#!/bin/bash -e
|
|
|
|
# go to buildscripts root folder
|
|
cd "$( dirname "${BASH_SOURCE[0]}" )/.."
|
|
|
|
. ./include/depinfo.sh
|
|
|
|
msg() {
|
|
printf '==> %s\n' "$1"
|
|
}
|
|
|
|
fetch_prefix() {
|
|
if [[ "$CACHE_MODE" == folder ]]; then
|
|
local text=
|
|
if [ -f "$CACHE_FOLDER/id.txt" ]; then
|
|
text=$(cat "$CACHE_FOLDER/id.txt")
|
|
else
|
|
echo "Cache seems to be empty"
|
|
fi
|
|
printf 'Expecting "%s",\nfound "%s".\n' "$ci_tarball" "$text"
|
|
if [[ "$text" == "$ci_tarball" ]]; then
|
|
tar -xzf "$CACHE_FOLDER/data.tgz" -C prefix && return 0
|
|
fi
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
build_prefix() {
|
|
msg "Building the prefix ($ci_tarball)..."
|
|
|
|
msg "Fetching deps"
|
|
IN_CI=1 ./include/download-deps.sh
|
|
|
|
# build everything mpv depends on (but not mpv itself)
|
|
for x in ${dep_mpv[@]}; do
|
|
msg "Building $x"
|
|
./buildall.sh $x
|
|
done
|
|
|
|
if [[ "$CACHE_MODE" == folder && -w "$CACHE_FOLDER" ]]; then
|
|
msg "Compressing the prefix"
|
|
tar -cvzf "$CACHE_FOLDER/data.tgz" -C prefix .
|
|
echo "$ci_tarball" >"$CACHE_FOLDER/id.txt"
|
|
fi
|
|
}
|
|
|
|
export WGET="wget --progress=bar:force"
|
|
|
|
if [ "$1" = "export" ]; then
|
|
# export variable with unique cache identifier
|
|
echo "CACHE_IDENTIFIER=$ci_tarball"
|
|
exit 0
|
|
elif [ "$1" = "install" ]; then
|
|
# install deps
|
|
if [[ -n "$ANDROID_HOME" && -d "$ANDROID_HOME" ]]; then
|
|
msg "Linking existing SDK"
|
|
mkdir -p sdk
|
|
ln -sv "$ANDROID_HOME" sdk/android-sdk-linux
|
|
fi
|
|
|
|
msg "Fetching SDK + NDK"
|
|
IN_CI=1 ./include/download-sdk.sh
|
|
|
|
msg "Fetching mpv"
|
|
mkdir -p deps/mpv
|
|
$WGET https://github.com/mpv-player/mpv/archive/master.tar.gz -O master.tgz
|
|
tar -xzf master.tgz -C deps/mpv --strip-components=1
|
|
rm master.tgz
|
|
|
|
msg "Trying to fetch existing prefix"
|
|
mkdir -p prefix
|
|
fetch_prefix || build_prefix
|
|
exit 0
|
|
elif [ "$1" = "build" ]; then
|
|
# run build
|
|
:
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
msg "Building mpv"
|
|
./buildall.sh -n mpv || {
|
|
# show logfile if configure failed
|
|
[ ! -f deps/mpv/_build/config.h ] && cat deps/mpv/_build/meson-logs/meson-log.txt
|
|
exit 1
|
|
}
|
|
|
|
msg "Building mpv-android"
|
|
./buildall.sh -n
|
|
|
|
exit 0
|