diff --git a/thirdparty/FFmpeg/HPKBUILD b/thirdparty/FFmpeg/HPKBUILD old mode 100644 new mode 100755 index de14ec9e1c486a8e04d050d63e171295e185de07..2b7d0bd5f810d863db5d8899245f143c677ab94a --- a/thirdparty/FFmpeg/HPKBUILD +++ b/thirdparty/FFmpeg/HPKBUILD @@ -6,8 +6,8 @@ pkgrel=0 pkgdesc="FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata." url="https://github.com/FFmpeg/FFmpeg/" archs=("armeabi-v7a" "arm64-v8a") -license="GPL2/GPL3/LGPL3" -depends=("openssl") +license=("GPL2" "GPL3" "LGPL3" "MIT" "X11" "BSD-styl") +depends=("rtmpdump" "openssl_1_0_2u") makedepends=() source="https://github.com/FFmpeg/$pkgname/archive/refs/tags/$pkgver.tar.gz" @@ -19,23 +19,26 @@ builddir=$pkgname-${pkgver} packagename=$builddir.tar.gz source envset.sh buildhost=true - +checktest=true arch= ldflags= prepare() { if [ $buildhost == true ] then + if [ $checktest == true ] + then tar -zxf $packagename cd $builddir - ./configure --enable-static --enable-shared --disable-doc --disable-htmlpages --target-os=linux --disable-optimizations --prefix=`pwd`/hostbuild > `pwd`/build.log 2>&1 - make -j4 >> `pwd`/build.log 2>&1 - make install >> `pwd`/build.log 2>&1 + ./configure --enable-static --enable-shared --disable-doc --disable-htmlpages --target-os=linux --disable-optimizations --prefix=`pwd`/hostbuild > $publicbuildlog 2>&1 + $MAKE >> $publicbuildlog 2>&1 + $MAKE install >> $publicbuildlog 2>&1 export LD_LIBRARY_PATH=`pwd`/hostbuild/lib:$LD_LIBRARY_PATH sed -i 's/include $(SRC_PATH)\/tests\/fate\/source.mak/#include $(SRC_PATH)\/tests\/fate\/source.mak/g' tests/Makefile - make check -j4 >> `pwd`/build.log 2>&1 + $MAKE check >> $publicbuildlog 2>&1 ret=$? buildhost=false cd $OLDPWD + fi fi mkdir $pkgname-$ARCH-build @@ -49,12 +52,14 @@ prepare() { setarm32ENV arch=arm ldflags="-L${OHOS_SDK}/native/sysroot/usr/lib/arm-linux-ohos" - fi - if [ $ARCH == "arm64-v8a" ] + elif [ $ARCH == "arm64-v8a" ] then setarm64ENV arch=aarch64 ldflags="-L${OHOS_SDK}/native/sysroot/usr/lib/aarch64-linux-ohos" + else + echo "${ARCH} not support" + return -1 fi return $ret @@ -62,26 +67,33 @@ prepare() { build() { cd $pkgname-$ARCH-build/$builddir - PKG_CONFIG_LIBDIR=$pkgconfigpath ./configure "$@" --enable-asm --enable-cross-compile --enable-openssl --enable-neon --disable-vulkan --disable-x86asm --enable-static --enable-shared --disable-doc --disable-htmlpages --target-os=linux --disable-optimizations --arch=$arch --cc=${CC} --ld=${CC} --strip=${STRIP} --host-cc="${CC}" --host-ld="${CC}" --host-os=linux --host-ldflags=${ldflags} --sysroot=${OHOS_SDK}/native/sysroot > `pwd`/build.log 2>&1 - make -j4 >> `pwd`/build.log 2>&1 + PKG_CONFIG_LIBDIR="${pkgconfigpath}" ./configure "$@" --enable-neon --enable-asm --enable-network \ + --disable-vulkan --enable-cross-compile --enable-librtmp --disable-x86asm --enable-openssl --enable-protocols \ + --enable-static --enable-shared --disable-doc --disable-htmlpages --target-os=linux --arch=$arch \ + --cc=${CC} --ld=${CC} --strip=${STRIP} --host-cc="${CC}" --host-ld="${CC}" --host-os=linux \ + --host-ldflags=${ldflags} --sysroot=${OHOS_SDK}/native/sysroot > $buildlog 2>&1 + $MAKE >> $buildlog 2>&1 ret=$? cd $OLDPWD return $ret } + package() { cd $pkgname-$ARCH-build/$builddir - make install >> `pwd`/build.log 2>&1 + $MAKE install >> $buildlog 2>&1 cd $OLDPWD + unset arch + unset ldflags if [ $ARCH == "armeabi-v7a" ] then unsetarm32ENV - fi - if [ $ARCH == "arm64-v8a" ] + elif [ $ARCH == "arm64-v8a" ] then unsetarm64ENV + else + echo "${ARCH} not support" + return -1 fi - unset arch - unset ldflags } checktestfiles() { cd $pkgname-$ARCH-build/$builddir/tests/ref @@ -115,6 +127,10 @@ copyhostbin() { } check() { + if [ $checktest == false ] + then + return 0 + fi cd $pkgname-$ARCH-build/$builddir # disable running cmd sed -i 's/ $(Q)$(SRC_PATH)\/tests\/fate-run.sh/# $(Q)$(SRC_PATH)\/tests\/fate-run.sh/g' tests/Makefile @@ -130,7 +146,7 @@ check() { ret=0 while true do - make check -j4 >> `pwd`/build.log 2>&1 + $MAKE check >> $buildlog 2>&1 if [ $? -eq 0 ] then break; @@ -173,6 +189,6 @@ check() { } # 清理环境 -cleanbuild(){ +cleanbuild() { rm -rf ${PWD}/${builddir} ${PWD}/$pkgname-arm64-v8a-build ${PWD}/$pkgname-armeabi-v7a-build #${PWD}/$packagename } diff --git a/thirdparty/FFmpeg/docs/hap_integrate.md b/thirdparty/FFmpeg/docs/hap_integrate.md index 63f715de97522a89270b217241234ef1ded41e63..3c7629547c9a32c84d6fbc8f68ed5ae7473964b8 100644 --- a/thirdparty/FFmpeg/docs/hap_integrate.md +++ b/thirdparty/FFmpeg/docs/hap_integrate.md @@ -56,7 +56,7 @@ ![thirdparty_install_dir](pic/FFmpeg_install_dir.png) -- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 +- 在最外层(cpp目录下)CMakeLists.txt中添加如下语句,libz.a需要自己编译仓库里面的 ```cmake #将三方库加入工程中 @@ -67,11 +67,15 @@ target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/FFmpeg/${OHOS_ARCH}/lib/libavutil.a) target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/FFmpeg/${OHOS_ARCH}/lib/libswresample.a) target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/FFmpeg/${OHOS_ARCH}/lib/libswscale.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib/${OHOS_ARCH}/lib/libz.a) + + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl_1_0_2u/${OHOS_ARCH}/lib/libcrypto.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl_1_0_2u/${OHOS_ARCH}/lib/libssl.a) + target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/rtmpdump/${OHOS_ARCH}/lib/librtmp.a) #将三方库的头文件加入工程中 target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/FFmpeg/${OHOS_ARCH}/include) ``` - - ![FFmpeg_usage](pic/FFmpeg_usage.png) + ## 测试三方库 diff --git a/thirdparty/FFmpeg/docs/pic/FFmpeg_install_dir.png b/thirdparty/FFmpeg/docs/pic/FFmpeg_install_dir.png index 2c128490c06c534271006e78b3c6d668dd05b712..d46de79e1645eeb7a81165d3e3d24b636b3a9173 100644 Binary files a/thirdparty/FFmpeg/docs/pic/FFmpeg_install_dir.png and b/thirdparty/FFmpeg/docs/pic/FFmpeg_install_dir.png differ