From a07df97c875cb842a750902edba86c1f5c111d68 Mon Sep 17 00:00:00 2001 From: xucaiming <719260170@qq.com> Date: Fri, 7 Jul 2023 17:37:54 +0800 Subject: [PATCH] add FFmpeg Signed-off-by: xucaiming <719260170@qq.com> --- thirdparty/lame/HPKBUILD | 72 ++++++++++++++ thirdparty/lame/OAT.xml | 20 ++++ thirdparty/lame/README.OpenSource | 11 +++ thirdparty/lame/README_zh.md | 12 +++ thirdparty/lame/SHA512SUM | 1 + thirdparty/lame/docs/hap_integrate.md | 90 ++++++++++++++++++ thirdparty/lame/docs/pic/lame_install_dir.png | Bin 0 -> 11095 bytes thirdparty/lame/docs/pic/lame_test.png | Bin 0 -> 15561 bytes thirdparty/lame/docs/pic/lame_usage.png | Bin 0 -> 26330 bytes 9 files changed, 206 insertions(+) create mode 100644 thirdparty/lame/HPKBUILD create mode 100644 thirdparty/lame/OAT.xml create mode 100644 thirdparty/lame/README.OpenSource create mode 100644 thirdparty/lame/README_zh.md create mode 100644 thirdparty/lame/SHA512SUM create mode 100644 thirdparty/lame/docs/hap_integrate.md create mode 100644 thirdparty/lame/docs/pic/lame_install_dir.png create mode 100644 thirdparty/lame/docs/pic/lame_test.png create mode 100644 thirdparty/lame/docs/pic/lame_usage.png diff --git a/thirdparty/lame/HPKBUILD b/thirdparty/lame/HPKBUILD new file mode 100644 index 00000000..6f7a0ca3 --- /dev/null +++ b/thirdparty/lame/HPKBUILD @@ -0,0 +1,72 @@ +# Contributor: liulihong +# Maintainer: liulihong + +pkgname=lame +pkgver=3.100 +pkgrel=0 +pkgdesc="LAME is an educational tool to be used for learning about MP3 encoding." +url="" +archs=("armeabi-v7a" "arm64-v8a") +license=("LGPLv2" "GPLv2") +depends=() +makedepends=() + +source="https://nchc.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz" +builddir=$pkgname-$pkgver +packagename=$builddir.tar.gz +buildtools="configure" + +source envset.sh +host= +prepare() { + mkdir -p $builddir/$ARCH-build + if [ $ARCH == "armeabi-v7a" ] + then + setarm32ENV + host=arm-linux + fi + if [ $ARCH == "arm64-v8a" ] + then + setarm64ENV + host=aarch64-linux + fi + cd $builddir + cd $OLDPWD +} + +build() { + + cd $builddir/$ARCH-build + ../configure "$@" --host=$host > `pwd`/build.log 2>&1 + make -j4 >> `pwd`/build.log 2>&1 + ret=$? + cd $OLDPWD + return $ret +} + +package() { + cd $builddir/$ARCH-build + make install >> `pwd`/build.log 2>&1 + cd $OLDPWD + unset host +} + +check() { + cd $builddir/$ARCH-build + make check >> `pwd`/build.log 2>&1 + cd $OLDPWD + if [ $ARCH == "armeabi-v7a" ] + then + unsetarm32ENV + fi + if [ $ARCH == "arm64-v8a" ] + then + unsetarm64ENV + fi + echo "The test must be on an OpenHarmony device!" + # 在构建目录下,执行make test +} + +cleanbuild() { + rm -rf ${PWD}/$builddir #${PWD}/packagename +} diff --git a/thirdparty/lame/OAT.xml b/thirdparty/lame/OAT.xml new file mode 100644 index 00000000..96937ea0 --- /dev/null +++ b/thirdparty/lame/OAT.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/lame/README.OpenSource b/thirdparty/lame/README.OpenSource new file mode 100644 index 00000000..b9e8fd24 --- /dev/null +++ b/thirdparty/lame/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "lame", + "License": "LGPLv2/GPLv2 license", + "License File": "LICENSES", + "Version Number": "3.100", + "Owner": "cmxud@isoftstone.com", + "Upstream URL": "https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz", + "Description": "lame is A high quality MP3 encoder" + } +] diff --git a/thirdparty/lame/README_zh.md b/thirdparty/lame/README_zh.md new file mode 100644 index 00000000..324aae2b --- /dev/null +++ b/thirdparty/lame/README_zh.md @@ -0,0 +1,12 @@ +# lame三方库说明 +## 功能简介 +lame是非常优秀的一种MP3编码器。 +## 使用约束 +- IDE版本:DevEco Studio 3.1 Beta2 +- SDK版本:ohos_sdk_public 3.2.11.9 (API Version 9 Release) +- 三方库版本:3.100 +- 当前适配的功能:MP3编码器 +- [LGPLv2/GPLv2 license](https://sourceforge.net/projects/lame/) + +## 集成方式 ++ [应用hap包集成](docs/hap_integrate.md) diff --git a/thirdparty/lame/SHA512SUM b/thirdparty/lame/SHA512SUM new file mode 100644 index 00000000..38f2cbae --- /dev/null +++ b/thirdparty/lame/SHA512SUM @@ -0,0 +1 @@ +0844b9eadb4aacf8000444621451277de365041cc1d97b7f7a589da0b7a23899310afd4e4d81114b9912aa97832621d20588034715573d417b2923948c08634b lame-3.100.tar.gz diff --git a/thirdparty/lame/docs/hap_integrate.md b/thirdparty/lame/docs/hap_integrate.md new file mode 100644 index 00000000..b06f8a9b --- /dev/null +++ b/thirdparty/lame/docs/hap_integrate.md @@ -0,0 +1,90 @@ +# lame集成到应用hap + +本库是在RK3568开发板上基于OpenHarmony3.2 Release版本的镜像验证的,如果是从未使用过RK3568,可以先查看[润和RK3568开发板标准系统快速上手](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/rk3568_helloworld)。 + +## 开发环境 + +- ubuntu20.04 +- [OpenHarmony3.2Release镜像](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2-Release%2Fdayu200_standard_arm32.tar.gz) +- [ohos_sdk_public 3.2.11.9 (API Version 9 Release)](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F3.2-Release%2Fohos-sdk-windows_linux-public.tar.gz) +- [DevEco Studio 3.1 Beta2](https://gitee.com/link?target=https%3A%2F%2Fcontentcenter-vali-drcn.dbankcdn.cn%2Fpvt_2%2FDeveloperAlliance_package_901_9%2Ff3%2Fv3%2FuJyuq3syQ2ak4hE1QZmAug%2Fdevecostudio-windows-3.1.0.400.zip%3FHW-CC-KV%3DV1%26HW-CC-Date%3D20230408T013335Z%26HW-CC-Expire%3D315360000%26HW-CC-Sign%3D96262721EDC9B34E6F62E66884AB7AE2A94C2A7B8C28D6F7FC891F46EB211A70) +- [准备三方库构建环境](../../../tools/README.md#编译环境准备) +- [准备三方库测试环境](../../../tools/README.md#ci环境准备) + +## 编译三方库 + +- 下载本仓库 + + ```shell + git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1 + ``` + +- 三方库目录结构 + + ```shell + tpc_c_cplusplus/thirdparty/lame #三方库lame的目录结构如下 + ├── docs #三方库相关文档的文件夹 + ├── HPKBUILD #构建脚本 + ├── SHA512SUM #三方库校验文件 + ├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息 + ├── README_zh.md + ``` + +- 将lame拷贝至tools/main目录下 + + ```shell + cd tpc_c_cplusplus + cp thirdparty/lame tools/main -rf + ``` + +- 在tools目录下编译三方库 + + 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) + + ```shell + cd tools + ./build.sh lame + ``` + +- 三方库头文件及生成的库 + + 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 + + ```shell + lame/arm64-v8a lame/armeabi-v7a + ``` +- [测试三方库](#测试三方库) + +## 应用中使用三方库 + +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 +   + + ![thirdparty_install_dir](pic/lame_install_dir.png) + +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 + + ```cmake + #将三方库加入工程中 + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/lame/${OHOS_ARCH}/lib/libmp3lame.so.0.0.0) + #将三方库的头文件加入工程中 + target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/lame/${OHOS_ARCH}/include) + ``` + + ![lame_usage](pic/lame_usage.png) + +## 测试三方库 + +三方库的测试使用原库自带的测试用例来做测试,[准备三方库测试环境](../../../tools/README.md#ci环境准备) + +进入到构建目录,执行如下命令make test(arm64-v8a-build为构建64位的目录,armeabi-v7a-build为构建32位的目录) + + + ![lame_test](pic/lame_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) +- [通过DevEco Studio开发一个NAPI工程](https://gitee.com/openharmony-sig/knowledge_demo_temp/blob/master/docs/napi_study/docs/hello_napi.md) diff --git a/thirdparty/lame/docs/pic/lame_install_dir.png b/thirdparty/lame/docs/pic/lame_install_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4fb17fa43af7194a659935f146e3cce3140d31 GIT binary patch literal 11095 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 literal 0 HcmV?d00001 diff --git a/thirdparty/lame/docs/pic/lame_test.png b/thirdparty/lame/docs/pic/lame_test.png new file mode 100644 index 0000000000000000000000000000000000000000..46d48c6e8986bd839a50690d5d6c3e14886f7ee4 GIT binary patch literal 15561 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 H|L}hSQuR3h literal 0 HcmV?d00001 diff --git a/thirdparty/lame/docs/pic/lame_usage.png b/thirdparty/lame/docs/pic/lame_usage.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed9ad19e0833cbedee9298fa2f6636f5bd9d0bb GIT binary patch literal 26330 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
*qL>?2l8X8pH>$;-xJB{~mdf^Ic>> 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 A;Q#;t literal 0 HcmV?d00001 -- Gitee