1 Star 0 Fork 79

longfeng/ohos_ijkplayer_1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
prebuild.sh 6.29 KB
一键复制 编辑 原始数据 按行查看 历史
刘亮亮 提交于 2024-07-19 10:11 . 实现音量设置及回调结果接口
#!/bin/bash
# Copyright (c) 2024 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 执行该脚本时需进入到脚本所在目录
ROOT_DIR=$(pwd)
API_VERSION=12 # 三方库对应API版本,用于记录SDK路径,必须和"compileSdkVersion"字段表示的API版本保持一致
SDK_DIR=$ROOT_DIR/../ohos-sdk-$API_VERSION/linux/$API_VERSION # SDK路径(流水线环境中SDK路径)
LYCIUM_TOOLS_URL=https://gitee.com/openharmony-sig/tpc_c_cplusplus.git
LYCIUM_ROOT_DIR=$ROOT_DIR/tpc_c_cplusplus
LYCIUM_TOOLS_DIR=$LYCIUM_ROOT_DIR/lycium
LYCIUM_THIRDPARTY_DIR=$LYCIUM_ROOT_DIR/thirdparty
DEPENDS_DIR=$ROOT_DIR/doc # 依赖库编译脚本在仓库中的位置
FFMPEG_NAME=FFmpeg-ff4.0 # 依赖库名
LIBYUV_NAME=libyuv-ijk # 依赖库名
SOUNDTOUCH_NAME=soundtouch-ijk # 依赖库名
OPESSL_NAME=openssl_1_1_1w # FFmpeg的依赖库名,需和依赖库一起安装
CI_OUTPUT_DIR=$ROOT_DIR/../out/tpc/ # hap/har安装目录
LIBS_NAME=("FFmpeg-ff4.0" "libyuv-ijk" "soundtouch-ijk" "openssl_1_1_1w")
PACKAGE_NAME=("FFmpeg-ff4.0-ijk0.8.8-20210426-001.tar.gz" "yuv-ijk-r0.2.1-dev.zip" "soundtouch-ijk-r0.1.2-dev.zip" "openssl-OpenSSL_1_1_1w.zip")
function prepare_lycium_tools()
{
local commands=("gcc" "make" "cmake" "pkg-config" "autoconf" "autoreconf" "automake" "patch" "libtool" "autopoint" "gperf" \
"tcl8.6-dev" "wget" "unzip" "gccgo-go" "flex " "bison" "premake4" "python3" "python3-pip" \
"ninja-build" "meson" "sox" "gfortran" "subversion" "build-essential" "module-assistant" " gcc-multilib" \
"g++-multilib" "libltdl7-dev" "cabextract" "libboost-all-dev" "libxml2-utils" "gettext" "libxml-libxml-perl" \
"libxml2" "libxml2-dev" "libxml-parser-perl" "texinfo" "libtool-bin" "xmlto" "po4a" "yasm" "nasm" "xutils-dev" \
"libx11-dev" "xtrans-dev" "gfortran-arm-linux-gnueabi" "gfortran-aarch64-linux-gnu")
apt update >> /dev/null
for cmd in ${commands[@]}
do
which $cmd >> /dev/null
if [ $? -ne 0 ]
then
echo "install $cmd"
apt install $cmd -y >> /dev/null
fi
done
}
function prepare_lycium()
{
if [ -d $LYCIUM_ROOT_DIR ]
then
rm -rf $LYCIUM_ROOT_DIR
fi
git clone $LYCIUM_TOOLS_URL -b support_x86 --depth=1
if [ $? -ne 0 ]
then
return 1
fi
cd $LYCIUM_TOOLS_DIR/Buildtools
tar -zxvf toolchain.tar.gz
if [ $? -ne 0 ]
then
echo "unpack sdk toolchain failed!!"
cd $OLDPWD
return 1
fi
cp toolchain/* $SDK_DIR/native/llvm/bin/
prepare_lycium_tools
ret=$?
cd $OLDPWD
return $ret
}
function copy_depends()
{
local dir=$1
local name=$2
if [ -d $LYCIUM_THIRDPARTY_DIR/$name ]
then
rm -rf $LYCIUM_THIRDPARTY_DIR/$name
fi
cp -arf $dir/$name $LYCIUM_THIRDPARTY_DIR/
}
function prepare_depends()
{
copy_depends $DEPENDS_DIR $LIBYUV_NAME
copy_depends $DEPENDS_DIR $SOUNDTOUCH_NAME
}
function check_sdk()
{
if [ ! -d $SDK_DIR ]
then
return 1
fi
export OHOS_SDK=$SDK_DIR
return 0
}
function check_copy_shasum()
{
local libpath=$1
local pack_name=$2
local libname=$3
cd $LYCIUM_THIRDPARTY_DIR/$libpath
if [ ! -f ./SHA512SUM ]
then
sha512sum $pack_name > ./SHA512SUM
fi
cp ./SHA512SUM $LYCIUM_TOOLS_DIR/usr/$libname/
cd $OLDPWD
}
function install_shasum()
{
check_copy_shasum $FFMPEG_NAME ${PACKAGE_NAME[0]} $FFMPEG_NAME
check_copy_shasum $LIBYUV_NAME ${PACKAGE_NAME[1]} yuv
check_copy_shasum $SOUNDTOUCH_NAME ${PACKAGE_NAME[2]} soundtouch
check_copy_shasum $OPESSL_NAME ${PACKAGE_NAME[3]} $OPESSL_NAME
}
function start_build()
{
local result=0
cd $LYCIUM_TOOLS_DIR
if [ $? -ne 0 ]
then
return 1
fi
bash build.sh $FFMPEG_NAME $LIBYUV_NAME $SOUNDTOUCH_NAME
result=$?
cd $OLDPWD
return $result
}
function install_depends()
{
local install_dir=$ROOT_DIR/ijkplayer/src/main/cpp/third_party/
cp -arf $LYCIUM_TOOLS_DIR/usr/$FFMPEG_NAME $install_dir/ffmpeg/ffmpeg
if [ $? -ne 0 ]
then
echo "FFmpeg build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/yuv $install_dir/yuv
if [ $? -ne 0 ]
then
echo "yuv build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/$OPESSL_NAME $install_dir/openssl
if [ $? -ne 0 ]
then
echo "FFmpeg depends openssl build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/soundtouch $install_dir/soundtouch
if [ $? -ne 0 ]
then
echo "soundtouch build failed!"
return 1
fi
if [ -d $CI_OUTPUT_DIR ]
then
cp -arf $LYCIUM_TOOLS_DIR/usr/$FFMPEG_NAME $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/yuv $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/$OPESSL_NAME $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/soundtouch $CI_OUTPUT_DIR
fi
return 0
}
function prebuild()
{
check_sdk
if [ $? -ne 0 ]
then
echo "ERROR: check_sdk failed!!!"
return 1
fi
prepare_lycium
if [ $? -ne 0 ]
then
echo "ERROR: prepare_lycium failed!!!"
return 1
fi
prepare_depends
start_build
if [ $? -ne 0 ]
then
echo "ERROR: start_build failed!!!"
return 1
fi
install_shasum
install_depends
if [ $? -ne 0 ]
then
echo "ERROR: install depends failed!!!"
return 1
fi
echo "prebuild success!!"
return 0
}
prebuild $*
ret=$?
echo "ret = $ret"
exit $ret
#EOF
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/longfengvs/ohos_ijkplayer_1.git
git@gitee.com:longfengvs/ohos_ijkplayer_1.git
longfengvs
ohos_ijkplayer_1
ohos_ijkplayer_1
master

搜索帮助