From 787d4248786c118903daa5395bec1300bb26c691 Mon Sep 17 00:00:00 2001 From: NEU-lab <2942375747@qq.com> Date: Tue, 8 Oct 2024 15:44:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?libsamplerate-0.2.2:=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: NEU-lab <2942375747@qq.com> --- thirdparty/libsamplerate-0.2.2/HPKBUILD | 61 ++++++++++++++ thirdparty/libsamplerate-0.2.2/HPKCHECK | 33 ++++++++ .../libsamplerate-0.2.2/README.OpenSource | 11 +++ thirdparty/libsamplerate-0.2.2/README_zh.md | 9 ++ thirdparty/libsamplerate-0.2.2/SHA512SUM | 1 + .../libsamplerate-0.2.2/docs/hap_integrate.md | 78 ++++++++++++++++++ .../docs/pic/libsamplerate_install_dir.png | Bin 0 -> 11829 bytes .../docs/pic/libsamplerate_test.png | Bin 0 -> 61625 bytes 8 files changed, 193 insertions(+) create mode 100644 thirdparty/libsamplerate-0.2.2/HPKBUILD create mode 100644 thirdparty/libsamplerate-0.2.2/HPKCHECK create mode 100644 thirdparty/libsamplerate-0.2.2/README.OpenSource create mode 100644 thirdparty/libsamplerate-0.2.2/README_zh.md create mode 100644 thirdparty/libsamplerate-0.2.2/SHA512SUM create mode 100644 thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md create mode 100644 thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_install_dir.png create mode 100644 thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_test.png diff --git a/thirdparty/libsamplerate-0.2.2/HPKBUILD b/thirdparty/libsamplerate-0.2.2/HPKBUILD new file mode 100644 index 00000000..c0861ddb --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/HPKBUILD @@ -0,0 +1,61 @@ +# Copyright (c) 2023 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. + +# Contributor: wangjialun<2271411@stu.neu.edu.cn>, zhangqian<2371418@stu.neu.edu.cn>, wangyihao<2471389@stu.neu.edu.cn>, wangying +# Maintainer: wangyihao<2471389@stu.neu.edu.cn>, wangjialun<2271411@stu.neu.edu.cn>, zhangqian<2371418@stu.neu.edu.cn>, wangying + +pkgname=libsamplerate-0.2.2 +pkgver=0.2.2 +pkgrel=0 +pkgdesc="libsamplerate is a library for performing sample rate conversion of audio data." +url="https://github.com/libsndfile/libsamplerate/tree/0.2.2" +archs=("armeabi-v7a" "arm64-v8a") +license=("BSD-2-Clause license") +depends=() +makedepends=() +source="https://github.com/libsndfile/libsamplerate/archive/refs/tags/0.2.2.zip" + +downloadpackage=true +autounpack=true +buildtools=cmake + +builddir=libsamplerate-0.2.2 +packagename=libsamplerate-0.2.2.zip + +# 为编译设置环境,如设置环境变量,创建编译目录等 +prepare() { + mkdir -p $builddir/$ARCH-build +} + +build() { + cd $builddir + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DCMAKE_C_FLAGS="-Wno-unused-command-line-argument" \ + -DCMAKE_CXX_FLAGS="-Wno-unused-command-line-argument" -B$ARCH-build -S./ > $buildlog 2>&1 + $MAKE VERBOSE=1 -C $ARCH-build >> $buildlog 2>&1 + ret=$? + cd $OLDPWD + return $ret +} +package() { + cd $builddir + $MAKE -C $ARCH-build install >> $buildlog 2>&1 + cd $OLDPWD +} + +check() { + echo "The test must be on an OpenHarmony device!" +} + +cleanbuild() { + rm -rf ${PWD}/$builddir +} \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/HPKCHECK b/thirdparty/libsamplerate-0.2.2/HPKCHECK new file mode 100644 index 00000000..45087f23 --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/HPKCHECK @@ -0,0 +1,33 @@ +# Copyright (c) 2023 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. + +# Contributor: wangjialun<2271411@stu.neu.edu.cn>, zhangqian<2371418@stu.neu.edu.cn>, wangyihao<2471389@stu.neu.edu.cn>, wangying +# Maintainer: wangyihao<2471389@stu.neu.edu.cn>, wangjialun<2271411@stu.neu.edu.cn>, zhangqian<2371418@stu.neu.edu.cn>, wangying + +source HPKBUILD > /dev/null 2>&1 # 导入HPKBUILD文件 +logfile=${LYCIUM_THIRDPARTY_ROOT}/${pkgname}/${pkgname}_${OHOS_SDK_VER}_test.log + + +# 在OH环境执行测试的接口 +openharmonycheck() { + res=0 + cd ${builddir}/${ARCH}-build # 进入到测试目录 + ctest > $logfile 2>&1 + res=$? + if [ $res -ne 0 ];then + mkdir ${LYCIUM_FAULT_PATH}/${pkgname} + cp Testing/Temporary/LastTest.log ${LYCIUM_FAULT_PATH}/${pkgname}/ + fi + cd $OLDPWD + return $res +} \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/README.OpenSource b/thirdparty/libsamplerate-0.2.2/README.OpenSource new file mode 100644 index 00000000..ecd238a1 --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "libsamplerate-0.2.2", + "License": "BSD-2-Clause license", + "License File": "https://github.com/libsndfile/libsamplerate/blob/master/COPYING", + "Version Number": "0.2.2", + "Owner": "2942375747@qq.com", + "Upstream URL": "https://github.com/libsndfile/libsamplerate", + "Description": "libsamplerate is a library for performing sample rate conversion of audio data." + } +] \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/README_zh.md b/thirdparty/libsamplerate-0.2.2/README_zh.md new file mode 100644 index 00000000..1ec445a4 --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/README_zh.md @@ -0,0 +1,9 @@ +# libsamplerate-0.2.2三方库说明 +## 功能简介 +libsamplerate是一个用于执行音频数据采样率转换的库。 +## 三方库版本: +- 0.2.2 +## 使用约束: +- [IDE和SDK版本](../../docs/constraint.md) +## 集成方式 ++ [应用hap包集成](docs/hap_integrate.md) \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/SHA512SUM b/thirdparty/libsamplerate-0.2.2/SHA512SUM new file mode 100644 index 00000000..23457d28 --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/SHA512SUM @@ -0,0 +1 @@ +dedd072bc83ccebfe1a33e8a3fb3f72559bfd36282b958b1d5463b786f2325f684137580db38d91f0f4f5345a1da3e9e1c4a1695e303182e57d542c085db829f libsamplerate-0.2.2.zip \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md new file mode 100644 index 00000000..d6986e2b --- /dev/null +++ b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md @@ -0,0 +1,78 @@ +# libsamplerate集成到应用hap + +本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 + +## 开发环境 + +- [开发环境准备](../../../docs/hap_integrate_environment.md) + +## 编译三方库 + +- 下载本仓库 + + ```shell + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` + +- 三方库目录结构 + + ```shell + tpc_c_cplusplus/thirdparty/libsamplerate-0.2.2 #三方库libsamplerate-0.2.2的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── HPKCHECK #测试脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md #三方库简介 + ``` + +- 在lycium目录下编译三方库 + + 编译环境的搭建参考[准备三方库构建环境](../../../lycium/README.md#1编译环境准备) + + ```shell + cd lycium + ./build.sh libsamplerate-0.2.2 + ``` + +- 三方库头文件及生成的库 + + 在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ```shell + libsamplerate-0.2.2/arm64-v8a libsamplerate-0.2.2/armeabi-v7a + ``` + +- [测试三方库](#测试三方库) + +- 编译出可执行的文件进行测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件拷贝到该目录下,如下图所示: +   + +  ![thirdparty_install_dir](pic/libsamplerate_install_dir.png) + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + + ```shell + #将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libsamplerate/${OHOS_ARCH}/lib/libsamplerate.a) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libsamplerate/${OHOS_ARCH}/include) + ``` + +## 测试三方库 +进入到构建目录运行测试用例(注意arm64-v8a为构建64位的目录,armeabi-v7a为构建32位的目录)。执行结果如图所示 + +```shell + cd /data/tpc_c_cplusplus/thirdparty/libsamplerate-0.2.2/libsamplerate-0.2.2/arm64-v8a-build/ + ./ctest +``` + ![libsamplerate_test](pic/libsamplerate_test.png) + +## 参考资料 + +- [润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld) +- [OpenHarmony三方库地址](https://gitee.com/openharmony-tpc) +- [OpenHarmony知识体系](https://gitee.com/openharmony-sig/knowledge) \ No newline at end of file diff --git a/thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_install_dir.png b/thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_install_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..aa39736eb36390daefe9f938ff1bbc0d526e4484 GIT binary patch literal 11829 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 Rz^mRM6T=IqOHN(8|6i1z1>67t literal 0 HcmV?d00001 diff --git a/thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_test.png b/thirdparty/libsamplerate-0.2.2/docs/pic/libsamplerate_test.png new file mode 100644 index 0000000000000000000000000000000000000000..3c29444a23a0c788f294192c54c2051c72c62b35 GIT binary patch literal 61625 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 Date: Thu, 17 Oct 2024 15:51:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?hap=5Fintegrate.md=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: NEU-lab <2942375747@qq.com> --- thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md index d6986e2b..ccf9f1ad 100644 --- a/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md +++ b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md @@ -45,7 +45,7 @@ - [测试三方库](#测试三方库) -- 编译出可执行的文件进行测试,[准备三方库测试环境](../../../lycium/README.md#3ci环境准备) + ## 应用中使用三方库 - 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件拷贝到该目录下,如下图所示: @@ -63,11 +63,12 @@ ``` ## 测试三方库 +- 编译出可执行的文件,使用原库自带的测试用例来做测试 [准备三方库测试环境](../../../lycium/README.md#3ci环境准备) 进入到构建目录运行测试用例(注意arm64-v8a为构建64位的目录,armeabi-v7a为构建32位的目录)。执行结果如图所示 ```shell cd /data/tpc_c_cplusplus/thirdparty/libsamplerate-0.2.2/libsamplerate-0.2.2/arm64-v8a-build/ - ./ctest + ctest ```  ![libsamplerate_test](pic/libsamplerate_test.png) -- Gitee From 59afd4cb036879b3580dc5b05a288334d191f8e8 Mon Sep 17 00:00:00 2001 From: NEU-lab <2942375747@qq.com> Date: Tue, 29 Oct 2024 16:12:35 +0800 Subject: [PATCH 3/3] change .md Signed-off-by: NEU-lab <2942375747@qq.com> --- thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md index ccf9f1ad..ef939c2b 100644 --- a/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md +++ b/thirdparty/libsamplerate-0.2.2/docs/hap_integrate.md @@ -48,7 +48,7 @@ ## 应用中使用三方库 -- 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件拷贝到该目录下,如下图所示: +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的头文件和静态库文件拷贝到该目录下,如下图所示:    ![thirdparty_install_dir](pic/libsamplerate_install_dir.png) -- Gitee